diff --git a/.travis.yml b/.travis.yml index a032b34aef7d..8982ca770396 100644 --- a/.travis.yml +++ b/.travis.yml @@ -88,10 +88,10 @@ script: after_success: # push a snapshot version to maven repo - - if [ $SONATYPE_USERNAME ] && [ -z $TRAVIS_TAG ] && [ "$TRAVIS_BRANCH" = "master" ]; then - mvn clean deploy --settings .travis/settings.xml; - echo "Finished mvn clean deploy for $TRAVIS_BRANCH"; - fi; + #- if [ $SONATYPE_USERNAME ] && [ -z $TRAVIS_TAG ] && [ "$TRAVIS_BRANCH" = "master" ]; then + # mvn clean deploy --settings .travis/settings.xml; + # echo "Finished mvn clean deploy for $TRAVIS_BRANCH"; + # fi; env: - DOCKER_GENERATOR_IMAGE_NAME=swaggerapi/swagger-generator DOCKER_CODEGEN_CLI_IMAGE_NAME=swaggerapi/swagger-codegen-cli diff --git a/README.md b/README.md index e553fedf9ef3..525c37e63a34 100644 --- a/README.md +++ b/README.md @@ -229,6 +229,8 @@ docker run --rm -v ${PWD}:/local swaggerapi/swagger-codegen-cli generate \ -o /local/out/go ``` +(On Windows replace `${PWD}` with `%CD%`) + The generated code will be located under `./out/go` in the current directory. ## Getting Started diff --git a/bin/dart-jaguar-petstore.sh b/bin/dart-jaguar-petstore.sh new file mode 100755 index 000000000000..2da9ef0746c6 --- /dev/null +++ b/bin/dart-jaguar-petstore.sh @@ -0,0 +1,49 @@ +#!/bin/sh + +SCRIPT="$0" + +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/swagger-codegen-cli/target/swagger-codegen-cli.jar" + +if [ ! -f "$executable" ] +then + mvn 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" + +# Generate client +ags="$@ generate -t modules/swagger-codegen/src/main/resources/dart-jaguar -i modules/swagger-codegen/src/test/resources/2_0/petstore.yaml -l dart-jaguar -o samples/client/petstore/dart-jaguar/swagger -DhideGenerationTimestamp=true" +java $JAVA_OPTS -jar $executable $ags + +# Generate non-browserClient and put it to the flutter sample app +ags="$@ generate -t modules/swagger-codegen/src/main/resources/dart-jaguar -i modules/swagger-codegen/src/test/resources/2_0/petstore.yaml -l dart-jaguar -o samples/client/petstore/dart-jaguar/flutter_petstore/swagger -DhideGenerationTimestamp=true" +java $JAVA_OPTS -jar $executable $ags + +# There is a proposal to allow importing different libraries depending on the environment: +# https://github.com/munificent/dep-interface-libraries +# When this is implemented there will only be one library. + +# The current petstore test will then work for both: the browser library and the vm library. + +cd samples/client/petstore/dart-jaguar/swagger +pub get +pub run build_runner build --delete-conflicting-outputs +cd ../flutter_petstore/swagger +pub get +pub run build_runner build --delete-conflicting-outputs diff --git a/bin/python-flask-petstore-python2.sh b/bin/python-flask-petstore-python2.sh index ce6aea3454d0..44e58e1b962b 100755 --- a/bin/python-flask-petstore-python2.sh +++ b/bin/python-flask-petstore-python2.sh @@ -27,7 +27,7 @@ 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/swagger-codegen/src/test/resources/2_0/petstore.yaml -l python-flask -o samples/server/petstore/flaskConnexion-python2 -DsupportPython2=true" -ags="$@ generate -t modules/swagger-codegen/src/main/resources/flaskConnexion -i modules/swagger-codegen/src/test/resources/2_0/petstore.yaml -l python-flask -o samples/server/petstore/flaskConnexion-python2 -c bin/supportPython2.json -D service" +ags="$@ generate -t modules/swagger-codegen/src/main/resources/flaskConnexion -i modules/swagger-codegen/src/test/resources/2_0/petstore-flask.yaml -l python-flask -o samples/server/petstore/flaskConnexion-python2 -c bin/supportPython2.json -D service" rm -rf samples/server/petstore/flaskConnexion-python2/* java $JAVA_OPTS -jar $executable $ags diff --git a/bin/python-flask-petstore.sh b/bin/python-flask-petstore.sh index 9bec96aaecc6..f9f2b63aa943 100755 --- a/bin/python-flask-petstore.sh +++ b/bin/python-flask-petstore.sh @@ -26,7 +26,7 @@ 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 -t modules/swagger-codegen/src/main/resources/flaskConnexion -i modules/swagger-codegen/src/test/resources/2_0/petstore.yaml -l python-flask -o samples/server/petstore/flaskConnexion -Dservice" +ags="$@ generate -t modules/swagger-codegen/src/main/resources/flaskConnexion -i modules/swagger-codegen/src/test/resources/2_0/petstore-flask.yaml -l python-flask -o samples/server/petstore/flaskConnexion -Dservice" rm -rf samples/server/petstore/flaskConnexion/* java $JAVA_OPTS -jar $executable $ags diff --git a/bin/windows/dart-client-petstore.bat b/bin/windows/dart-client-petstore.bat new file mode 100755 index 000000000000..6c240658f9a8 --- /dev/null +++ b/bin/windows/dart-client-petstore.bat @@ -0,0 +1,12 @@ +set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar + +If Not Exist %executable% ( + mvn clean package +) + +REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M -DloggerPath=conf/log4j.properties +set ags=generate -i modules\swagger-codegen\src\test\resources\2_0\petstore.yaml -l dart-jaguar -o samples\client\petstore\dart-jaguar\swagger -DhideGenerationTimestamp=true -DbrowserClient=false +java %JAVA_OPTS% -jar %executable% %ags% + +set ags=generate -i modules\swagger-codegen\src\test\resources\2_0\petstore.yaml -l dart-jaguar -o samples\client\petstore\dart-jaguar\flutter_petstore\swagger -DhideGenerationTimestamp=true +java %JAVA_OPTS% -jar %executable% %ags% diff --git a/circle.yml b/circle.yml.disabled similarity index 100% rename from circle.yml rename to circle.yml.disabled diff --git a/modules/swagger-codegen-maven-plugin/examples/java-client.xml b/modules/swagger-codegen-maven-plugin/examples/java-client.xml index e968acab8aa2..5fa1f8755de0 100644 --- a/modules/swagger-codegen-maven-plugin/examples/java-client.xml +++ b/modules/swagger-codegen-maven-plugin/examples/java-client.xml @@ -118,7 +118,7 @@ - 1.5.20 + 1.5.21 2.25.1 2.9.5 2.7 diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenOperation.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenOperation.java index d0ccfa21abca..e5e0cf89597a 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenOperation.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenOperation.java @@ -18,7 +18,7 @@ public class CodegenOperation { isResponseBinary = false, isResponseFile = false, hasReference = false, isRestfulIndex, isRestfulShow, isRestfulCreate, isRestfulUpdate, isRestfulDestroy, isRestful, isDeprecated; - public String path, operationId, returnType, httpMethod, returnBaseType, + public String path, testPath, operationId, returnType, httpMethod, returnBaseType, returnContainer, summary, unescapedNotes, notes, baseName, defaultResponse, discriminator; public List> consumes, produces, prioritizedContentTypes; public CodegenParameter bodyParam; diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenParameter.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenParameter.java index 3fc8588f02c3..48dc0688f351 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenParameter.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenParameter.java @@ -13,6 +13,7 @@ public class CodegenParameter { collectionFormat, description, unescapedDescription, baseType, defaultValue, enumName; public String example; // example value (x-example) + public String testExample; public String jsonSchema; public boolean isString, isNumeric, isInteger, isLong, isNumber, isFloat, isDouble, isByteArray, isBinary, isBoolean, isDate, isDateTime, isUuid; public boolean isListContainer, isMapContainer; @@ -116,6 +117,7 @@ public CodegenParameter copy() { output.jsonSchema = this.jsonSchema; output.defaultValue = this.defaultValue; output.example = this.example; + output.testExample = this.testExample; output.isEnum = this.isEnum; if (this._enum != null) { output._enum = new ArrayList(this._enum); diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java index d97ef392b016..c8babe971fc8 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java @@ -2191,7 +2191,7 @@ public CodegenOperation fromOperation(String path, op.returnBaseType = cm.baseType; } } - op.examples = new ExampleGenerator(definitions).generate(methodResponse.getExamples(), operation.getProduces(), responseProperty); + op.examples = getExamples(definitions, methodResponse.getExamples(), operation.getProduces(), responseProperty); op.defaultResponse = toDefaultValue(responseProperty); op.returnType = cm.datatype; op.hasReference = definitions != null && definitions.containsKey(op.returnBaseType); @@ -2272,7 +2272,7 @@ public CodegenOperation fromOperation(String path, bodyParam = p; bodyParams.add(p.copy()); if(definitions != null) { - op.requestBodyExamples = new ExampleGenerator(definitions).generate(null, operation.getConsumes(), bodyParam.dataType); + op.requestBodyExamples = getExamples(definitions, null, consumes, bodyParam.dataType); } } else if (param instanceof FormParameter) { formParams.add(p.copy()); @@ -2332,6 +2332,8 @@ public int compare(CodegenParameter one, CodegenParameter another) { op.isRestfulDestroy = op.isRestfulDestroy(); op.isRestful = op.isRestful(); + configureDataForTestTemplate(op); + return op; } @@ -3816,6 +3818,15 @@ public boolean convertPropertyToBoolean(String propertyKey) { return booleanValue; } + protected List> getExamples(Map definitions, Map examples, List mediaTypes, Object object) { + if (object instanceof Property) { + Property responseProperty = (Property) object; + return new ExampleGenerator(definitions).generate(examples, mediaTypes, responseProperty); + } + // this must be a model name instead + return new ExampleGenerator(definitions).generate(examples, mediaTypes, object.toString()); + } + public void writePropertyBack(String propertyKey, boolean value) { additionalProperties.put(propertyKey, value); } @@ -3837,4 +3848,54 @@ protected void addSwitch(String key, String description, Boolean defaultValue) { option.defaultValue(defaultValue.toString()); cliOptions.add(option); } + + protected void configureDataForTestTemplate(CodegenOperation codegenOperation) { + final String httpMethod = codegenOperation.httpMethod; + String path = codegenOperation.path; + if ("GET".equalsIgnoreCase(httpMethod)) { + codegenOperation.vendorExtensions.put("x-is-get-method", Boolean.TRUE); + } + if ("POST".equalsIgnoreCase(httpMethod)) { + codegenOperation.vendorExtensions.put("x-is-post-method", Boolean.TRUE); + } + if ("PUT".equalsIgnoreCase(httpMethod)) { + codegenOperation.vendorExtensions.put("x-is-put-method", Boolean.TRUE); + } + if ("DELETE".equalsIgnoreCase(httpMethod)) { + codegenOperation.vendorExtensions.put("x-is-delete-method", Boolean.TRUE); + } + if ("HEAD".equalsIgnoreCase(httpMethod)) { + codegenOperation.vendorExtensions.put("x-is-head-method", Boolean.TRUE); + } + if ("TRACE".equalsIgnoreCase(httpMethod)) { + codegenOperation.vendorExtensions.put("x-is-trace-method", Boolean.TRUE); + } + if ("PATCH".equalsIgnoreCase(httpMethod)) { + codegenOperation.vendorExtensions.put("x-is-head-method", Boolean.TRUE); + } + if ("OPTIONS".equalsIgnoreCase(httpMethod)) { + codegenOperation.vendorExtensions.put("x-is-options-method", Boolean.TRUE); + } + if (path.contains("{")) { + while(path.contains("{")) { + final String pathParam = path.substring(path.indexOf("{"), path.indexOf("}") + 1); + final String paramName = pathParam.replace("{", StringUtils.EMPTY).replace("}", StringUtils.EMPTY); + + CodegenParameter codegenParameter = null; + + for (CodegenParameter parameter : codegenOperation.pathParams) { + if (parameter.baseName.equalsIgnoreCase(paramName)) { + codegenParameter = parameter; + break; + } + } + + if (codegenParameter == null || codegenParameter.testExample == null) { + return; + } + path = path.replace(pathParam, codegenParameter.testExample); + } + } + codegenOperation.testPath = path; + } } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractJavaCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractJavaCodegen.java index e2a6f10b5385..822186ff1c33 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractJavaCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractJavaCodegen.java @@ -779,6 +779,7 @@ public void setParameterExampleValue(CodegenParameter p) { if (example == null) { example = p.paramName + "_example"; } + p.testExample = example; example = "\"" + escapeText(example) + "\""; } else if ("Integer".equals(type) || "Short".equals(type)) { if (example == null) { @@ -788,15 +789,18 @@ public void setParameterExampleValue(CodegenParameter p) { if (example == null) { example = "56"; } + p.testExample = example; example = example + "L"; } else if ("Float".equals(type)) { if (example == null) { example = "3.4"; } + p.testExample = example; example = example + "F"; } else if ("Double".equals(type)) { example = "3.4"; example = example + "D"; + p.testExample = example; } else if ("Boolean".equals(type)) { if (example == null) { example = "true"; @@ -813,6 +817,10 @@ public void setParameterExampleValue(CodegenParameter p) { example = "new " + type + "()"; } + if (p.testExample == null) { + p.testExample = example; + } + if (example == null) { example = "null"; } else if (Boolean.TRUE.equals(p.isListContainer)) { diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/DartJaguarClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/DartJaguarClientCodegen.java new file mode 100644 index 000000000000..0e836efef8c0 --- /dev/null +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/DartJaguarClientCodegen.java @@ -0,0 +1,191 @@ +package io.swagger.codegen.languages; + +import com.samskivert.mustache.Mustache; +import com.samskivert.mustache.Template; +import io.swagger.codegen.*; +import io.swagger.models.properties.ArrayProperty; +import io.swagger.models.properties.MapProperty; +import io.swagger.models.properties.Property; +import org.apache.commons.lang3.StringUtils; + +import java.io.File; +import java.io.IOException; +import java.io.StringWriter; +import java.io.Writer; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +public class DartJaguarClientCodegen extends DartClientCodegen { + private static Set modelToIgnore = new HashSet<>(); + static { + modelToIgnore.add("datetime"); + modelToIgnore.add("list"); + modelToIgnore.add("map"); + modelToIgnore.add("file"); + } + public DartJaguarClientCodegen() { + super(); + browserClient = false; + outputFolder = "generated-code/dart-jaguar"; + embeddedTemplateDir = templateDir = "dart-jaguar"; + } + + @Override + public String getName() { + return "dart-jaguar"; + } + + @Override + public String getHelp() { + return "Generates a Dart Jaguar client library."; + } + + @Override + public String toDefaultValue(Property p) { + if (p instanceof MapProperty) { + return "const {}"; + } else if (p instanceof ArrayProperty) { + return "const []"; + } + return super.toDefaultValue(p); + } + + @Override + public void processOpts() { + if (additionalProperties.containsKey(PUB_NAME)) { + this.setPubName((String) additionalProperties.get(PUB_NAME)); + } else { + //not set, use to be passed to template + additionalProperties.put(PUB_NAME, pubName); + } + + if (additionalProperties.containsKey(PUB_VERSION)) { + this.setPubVersion((String) additionalProperties.get(PUB_VERSION)); + } else { + //not set, use to be passed to template + additionalProperties.put(PUB_VERSION, pubVersion); + } + + if (additionalProperties.containsKey(PUB_DESCRIPTION)) { + this.setPubDescription((String) additionalProperties.get(PUB_DESCRIPTION)); + } else { + //not set, use to be passed to template + additionalProperties.put(PUB_DESCRIPTION, pubDescription); + } + + if (additionalProperties.containsKey(USE_ENUM_EXTENSION)) { + this.setUseEnumExtension(convertPropertyToBooleanAndWriteBack(USE_ENUM_EXTENSION)); + } else { + // Not set, use to be passed to template. + additionalProperties.put(USE_ENUM_EXTENSION, useEnumExtension); + } + + if (additionalProperties.containsKey(CodegenConstants.SOURCE_FOLDER)) { + this.setSourceFolder((String) additionalProperties.get(CodegenConstants.SOURCE_FOLDER)); + } + + // make api and model doc path available in mustache template + additionalProperties.put("apiDocPath", apiDocPath); + additionalProperties.put("modelDocPath", modelDocPath); + + final String libFolder = sourceFolder + File.separator + "lib"; + + supportingFiles.add(new SupportingFile("pubspec.mustache", "", "pubspec.yaml")); + supportingFiles.add(new SupportingFile("analysis_options.mustache", "", "analysis_options.yaml")); + supportingFiles.add(new SupportingFile("apilib.mustache", libFolder, "api.dart")); + + supportingFiles.add(new SupportingFile("git_push.sh.mustache", "", "git_push.sh")); + supportingFiles.add(new SupportingFile("gitignore.mustache", "", ".gitignore")); + supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); + + final String authFolder = sourceFolder + File.separator + "lib" + File.separator + "auth"; + supportingFiles.add(new SupportingFile("auth/api_key_auth.mustache", authFolder, "api_key_auth.dart")); + supportingFiles.add(new SupportingFile("auth/basic_auth.mustache", authFolder, "basic_auth.dart")); + supportingFiles.add(new SupportingFile("auth/oauth.mustache", authFolder, "oauth.dart")); + supportingFiles.add(new SupportingFile("auth/auth.mustache", authFolder, "auth.dart")); + } + + + @Override + public Map postProcessModels(Map objs) { + objs = super.postProcessModels(objs); + List models = (List) objs.get("models"); + for (Object _mo : models) { + Map mo = (Map) _mo; + Set modelImports = new HashSet<>(); + CodegenModel cm = (CodegenModel) mo.get("model"); + for (String modelImport : cm.imports) { + if(!modelToIgnore.contains(modelImport.toLowerCase())) { + modelImports.add(underscore(modelImport)); + } + } + cm.imports = modelImports; + cm.vendorExtensions.put("hasVars", cm.vars.size() > 0); + } + //objs.put("modelImports", modelImports); + return objs; + } + + @Override + public Map postProcessOperations(Map objs) { + objs = super.postProcessOperations(objs); + Map operations = (Map) objs.get("operations"); + List operationList = (List) operations.get("operation"); + + Set modelImports = new HashSet<>(); + + for (CodegenOperation op : operationList) { + op.httpMethod = StringUtils.capitalize(op.httpMethod.toLowerCase()); + boolean isJson = true; //default to JSON + boolean isForm = false; + boolean isMultipart = false; + if(op.consumes != null) { + for (Map consume : op.consumes) { + if (consume.containsKey("mediaType")) { + String type = consume.get("mediaType"); + isJson = type.equalsIgnoreCase("application/json"); + isForm = type.equalsIgnoreCase("application/x-www-form-urlencoded"); + isMultipart = type.equalsIgnoreCase("multipart/form-data"); + break; + } + } + } + + op.vendorExtensions.put("isJson", isJson); + op.vendorExtensions.put("isForm", isForm); + op.vendorExtensions.put("isMultipart", isMultipart); + + Set imports = new HashSet<>(); + for (String item : op.imports) { + if(!modelToIgnore.contains(item.toLowerCase())) { + imports.add(underscore(item)); + } + } + modelImports.addAll(imports); + op.imports = imports; + + String[] items = op.path.split("/", -1); + String jaguarPath = ""; + + for (int i = 0; i < items.length; ++i) { + if (items[i].matches("^\\{(.*)\\}$")) { // wrap in {} + jaguarPath = jaguarPath + ":" + items[i].replace("{", "").replace("}", ""); + } else { + jaguarPath = jaguarPath + items[i]; + } + + if (i != items.length -1) { + jaguarPath = jaguarPath + "/"; + } + } + + op.path = jaguarPath; + } + + objs.put("modelImports", modelImports); + + return objs; + } +} diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SpringCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SpringCodegen.java index 470b4d389f9a..b5b3f9c9ef88 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SpringCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SpringCodegen.java @@ -53,7 +53,6 @@ public class SpringCodegen extends AbstractJavaCodegen public SpringCodegen() { super(); outputFolder = "generated-code/javaSpring"; - apiTestTemplateFiles.clear(); // TODO: add test template embeddedTemplateDir = templateDir = "JavaSpring"; apiPackage = "io.swagger.api"; modelPackage = "io.swagger.model"; @@ -254,6 +253,7 @@ public void processOpts() { additionalProperties.put(SINGLE_CONTENT_TYPES, "true"); this.setSingleContentTypes(true); } + apiTestTemplateFiles.clear(); } else { apiTemplateFiles.put("apiController.mustache", "Controller.java"); supportingFiles.add(new SupportingFile("apiException.mustache", @@ -557,6 +557,14 @@ public String toApiName(String name) { return camelize(name) + "Api"; } + @Override + public String toApiTestFilename(String name) { + if(library.equals(SPRING_MVC_LIBRARY)) { + return toApiName(name) + "ControllerIT"; + } + return toApiName(name) + "ControllerIntegrationTest"; + } + @Override public void setParameterExampleValue(CodegenParameter p) { String type = p.baseType; diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SwaggerGenerator.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SwaggerGenerator.java index 6cef76b83f4f..84a43f52672b 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SwaggerGenerator.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SwaggerGenerator.java @@ -1,8 +1,13 @@ package io.swagger.codegen.languages; import java.io.File; +import java.util.List; +import java.util.Map; import io.swagger.codegen.CliOption; +import io.swagger.codegen.CodegenConstants; +import io.swagger.models.Model; +import io.swagger.models.properties.Property; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -81,7 +86,15 @@ public void setOutputFile(String outputFile) { public String escapeQuotationMark(String input) { // just return the original string return input; - } + } + + @Override + protected List> getExamples(Map definitions, Map examples, List produces, Object object) { + if (examples == null || examples.isEmpty()) { + return null; + } + return super.getExamples(definitions, examples, produces, object); + } @Override public String escapeUnsafeCharacters(String input) { diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SwaggerYamlGenerator.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SwaggerYamlGenerator.java index 736be4b110fb..07a1f03f054a 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SwaggerYamlGenerator.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SwaggerYamlGenerator.java @@ -9,16 +9,19 @@ import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator; import io.swagger.codegen.*; import io.swagger.jackson.mixin.ResponseSchemaMixin; +import io.swagger.models.Model; import io.swagger.models.Response; import io.swagger.models.Swagger; import io.swagger.util.DeserializationModule; -import io.swagger.util.Yaml; +import io.swagger.util.ReferenceSerializationConfigurer; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; +import java.util.List; +import java.util.Map; public class SwaggerYamlGenerator extends DefaultCodegen implements CodegenConfig { @@ -97,7 +100,15 @@ public String escapeQuotationMark(String input) { public String escapeUnsafeCharacters(String input) { // just return the original string return input; - } + } + + @Override + protected List> getExamples(Map definitions, Map examples, List produces, Object object) { + if (examples == null || examples.isEmpty()) { + return null; + } + return super.getExamples(definitions, examples, produces, object); + } private void configureMapper(ObjectMapper mapper) { Module deserializerModule = new DeserializationModule(true, true); @@ -107,5 +118,6 @@ private void configureMapper(ObjectMapper mapper) { mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); mapper.addMixIn(Response.class, ResponseSchemaMixin.class); + ReferenceSerializationConfigurer.serializeAsComputedRef(mapper); } } diff --git a/modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-boot/api_test.mustache b/modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-boot/api_test.mustache new file mode 100644 index 000000000000..525c6b4225e5 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-boot/api_test.mustache @@ -0,0 +1,38 @@ +package {{package}}; +{{#imports}}import {{import}}; +{{/imports}} +import java.util.*; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; + +import static org.junit.Assert.assertEquals; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class {{classname}}ControllerIntegrationTest { +@Autowired +private {{classname}} api; +{{#operations}} + {{#operation}} + @Test + public void {{operationId}}Test() throws Exception { + {{#allParams}} + {{^isFile}} + {{{dataType}}} {{paramName}} = {{{example}}}; + {{/isFile}} + {{#isFile}} + org.springframework.web.multipart.MultipartFile {{paramName}} = null; + {{/isFile}} + {{/allParams}} + ResponseEntity<{{>returnTypes}}> responseEntity = api.{{operationId}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); + assertEquals(HttpStatus.NOT_IMPLEMENTED, responseEntity.getStatusCode()); + } + {{/operation}} +{{/operations}} +} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-boot/pom.mustache b/modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-boot/pom.mustache index 076073d099ec..2b91afb41cec 100644 --- a/modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-boot/pom.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-boot/pom.mustache @@ -91,6 +91,11 @@ javax.validation validation-api -{{/useBeanValidation}} +{{/useBeanValidation}} + + org.springframework.boot + spring-boot-starter-test + test + diff --git a/modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-mvc/api_test.mustache b/modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-mvc/api_test.mustache new file mode 100644 index 000000000000..24a921949f17 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-mvc/api_test.mustache @@ -0,0 +1,29 @@ +package {{package}}; +{{#imports}}import {{import}}; +{{/imports}} +import java.util.*; +import org.apache.http.HttpResponse; +import org.apache.http.client.HttpClient; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.HttpClientBuilder; +import org.testng.annotations.Test; +import static org.junit.Assert.assertEquals; +/** +* Test class to verify that GET endpoints on generated project are reached. +*/ +public class {{classname}}ControllerIT { + + {{#operations}} + {{#operation}} + {{#vendorExtensions.x-is-get-method}} + @Test + public void {{operationId}}Test() throws Exception { + final String requestURL = "http://localhost:8002{{^contextPath}}/{{/contextPath}}{{#contextPath}}{{contextPath}}{{/contextPath}}{{testPath}}{{#hasQueryParams}}?{{/hasQueryParams}}{{#queryParams}}{{paramName}}={{testExample}}{{#hasMore}}&{{/hasMore}}{{/queryParams}}"; + final HttpClient client = HttpClientBuilder.create().build(); + final HttpResponse response = client.execute(new HttpGet(requestURL)); + assertEquals(response.getStatusLine().getStatusCode(), 501); + } + {{/vendorExtensions.x-is-get-method}} + {{/operation}} + {{/operations}} +} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-mvc/pom.mustache b/modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-mvc/pom.mustache index c71738221b80..97a7f563dfe9 100644 --- a/modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-mvc/pom.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-mvc/pom.mustache @@ -160,7 +160,33 @@ 1.1.0.Final provided -{{/useBeanValidation}} +{{/useBeanValidation}} + + org.testng + testng + 6.8.8 + test + + + junit + junit + + + snakeyaml + org.yaml + + + bsh + org.beanshell + + + + + org.apache.httpcomponents + httpclient + 4.5.2 + test + {{#java8}}1.8{{/java8}}{{^java8}}1.7{{/java8}} diff --git a/modules/swagger-codegen/src/main/resources/Javascript/es6/package.mustache b/modules/swagger-codegen/src/main/resources/Javascript/es6/package.mustache index 997c5e240558..56376a1eede0 100644 --- a/modules/swagger-codegen/src/main/resources/Javascript/es6/package.mustache +++ b/modules/swagger-codegen/src/main/resources/Javascript/es6/package.mustache @@ -13,7 +13,7 @@ "dependencies": { "babel": "^6.23.0", "babel-cli": "^6.26.0", - "superagent": "3.5.2" + "superagent": "3.7.0" }, "devDependencies": { "babel-core": "6.26.0", diff --git a/modules/swagger-codegen/src/main/resources/Javascript/package.mustache b/modules/swagger-codegen/src/main/resources/Javascript/package.mustache index 79d0d8f67214..b40c7cc8fb82 100644 --- a/modules/swagger-codegen/src/main/resources/Javascript/package.mustache +++ b/modules/swagger-codegen/src/main/resources/Javascript/package.mustache @@ -11,7 +11,7 @@ "fs": false }, "dependencies": { - "superagent": "3.5.2" + "superagent": "3.7.0" }, "devDependencies": { "mocha": "~2.3.4", diff --git a/modules/swagger-codegen/src/main/resources/META-INF/services/io.swagger.codegen.CodegenConfig b/modules/swagger-codegen/src/main/resources/META-INF/services/io.swagger.codegen.CodegenConfig index db374ce9dabe..d8fd0cbaa36e 100644 --- a/modules/swagger-codegen/src/main/resources/META-INF/services/io.swagger.codegen.CodegenConfig +++ b/modules/swagger-codegen/src/main/resources/META-INF/services/io.swagger.codegen.CodegenConfig @@ -12,6 +12,7 @@ io.swagger.codegen.languages.ConfluenceWikiGenerator io.swagger.codegen.languages.CppRestClientCodegen io.swagger.codegen.languages.CsharpDotNet2ClientCodegen io.swagger.codegen.languages.DartClientCodegen +io.swagger.codegen.languages.DartJaguarClientCodegen io.swagger.codegen.languages.ElixirClientCodegen io.swagger.codegen.languages.ElmClientCodegen io.swagger.codegen.languages.EiffelClientCodegen diff --git a/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache b/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache index 77c92cbaf0c7..9ea9598b7c80 100644 --- a/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache +++ b/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache @@ -140,7 +140,11 @@ void {{classname}}::fromJson(web::json::value& val) {{^required}} if(val.has_field(utility::conversions::to_string_t("{{baseName}}"))) { - {{setter}}(ModelBase::{{baseType}}FromJson(val[utility::conversions::to_string_t("{{baseName}}")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("{{baseName}}")]; + if(!fieldValue.is_null()) + { + {{setter}}(ModelBase::{{baseType}}FromJson(fieldValue)); + } } {{/required}} {{#required}} @@ -242,22 +246,23 @@ void {{classname}}::fromJson(web::json::value& val) {{^required}} if(val.has_field(utility::conversions::to_string_t("{{baseName}}"))) { - {{#isString}} - {{setter}}(ModelBase::stringFromJson(val[utility::conversions::to_string_t("{{baseName}}")])); - {{/isString}} - {{^isString}} - {{#isDateTime}} - {{setter}}(ModelBase::dateFromJson(val[utility::conversions::to_string_t("{{baseName}}")])); - {{/isDateTime}} - {{^isDateTime}} - if(!val[utility::conversions::to_string_t("{{baseName}}")].is_null()) + web::json::value& fieldValue = val[utility::conversions::to_string_t("{{baseName}}")]; + if(!fieldValue.is_null()) { + {{#isString}} + {{setter}}(ModelBase::stringFromJson(fieldValue)); + {{/isString}} + {{^isString}} + {{#isDateTime}} + {{setter}}(ModelBase::dateFromJson(fieldValue)); + {{/isDateTime}} + {{^isDateTime}} {{{datatype}}} newItem({{{defaultValue}}}); - newItem->fromJson(val[utility::conversions::to_string_t("{{baseName}}")]); + newItem->fromJson(fieldValue); {{setter}}( newItem ); + {{/isDateTime}} + {{/isString}} } - {{/isDateTime}} - {{/isString}} } {{/required}} {{#required}} diff --git a/modules/swagger-codegen/src/main/resources/dart-jaguar/README.mustache b/modules/swagger-codegen/src/main/resources/dart-jaguar/README.mustache new file mode 100644 index 000000000000..8887881dc355 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/dart-jaguar/README.mustache @@ -0,0 +1,142 @@ +# {{pubName}} +{{#appDescription}} +{{{appDescription}}} +{{/appDescription}} + +This Dart package is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: + +- API version: {{appVersion}} +{{#artifactVersion}} +- Package version: {{artifactVersion}} +{{/artifactVersion}} +{{^hideGenerationTimestamp}} +- Build date: {{generatedDate}} +{{/hideGenerationTimestamp}} +- Build package: {{generatorClass}} +{{#infoUrl}} +For more information, please visit [{{{infoUrl}}}]({{{infoUrl}}}) +{{/infoUrl}} + +## Requirements + +Dart 2 or later OR Flutter 0.7.0 or later. + +Once your code is generated, you need to run the build_runner command to let Jaguar implement your API: + +```sh +flutter packages pub run build_runner build +or +pub run build_runner build +``` + +## Installation & Usage + +### Github +If this Dart package is published to Github, please include the following in pubspec.yaml +``` +name: {{pubName}} +version: {{pubVersion}} +description: {{pubDescription}} +dependencies: + {{pubName}}: + git: https://github.com/{{gitUserId}}/{{gitRepoId}}.git + version: 'any' +``` + +### Local +To use the package in your local drive, please include the following in pubspec.yaml +``` +dependencies: + {{pubName}}: + path: /path/to/{{pubName}} +``` + +## Tests + +TODO + +## Getting Started + +Please follow the [installation procedure](#installation--usage) and then run the following: + +```dart +import 'package:{{pubName}}/api.dart'; +{{#apiInfo}}{{#apis}}{{#-first}}{{#operations}}{{#operation}}{{#-first}} +{{#hasAuthMethods}} +{{#authMethods}} +{{#isBasic}} +// TODO Configure HTTP basic authorization: {{{name}}} +//{{pubName}}.api.Configuration.username = 'YOUR_USERNAME'; +//{{pubName}}.api.Configuration.password = 'YOUR_PASSWORD'; +{{/isBasic}} +{{#isApiKey}} +// TODO Configure API key authorization: {{{name}}} +//{{pubName}}.api.Configuration.apiKey{'{{{keyParamName}}}'} = 'YOUR_API_KEY'; +// uncomment below to setup prefix (e.g. Bearer) for API key, if needed +//{{pubName}}.api.Configuration.apiKeyPrefix{'{{{keyParamName}}}'} = "Bearer"; +{{/isApiKey}} +{{#isOAuth}} +// TODO Configure OAuth2 access token for authorization: {{{name}}} +//{{pubName}}.api.Configuration.accessToken = 'YOUR_ACCESS_TOKEN'; +{{/isOAuth}} +{{/authMethods}} +{{/hasAuthMethods}} + +final swaggerGen = SwaggerGen(); +var api_instance = swaggerGen.get{{classname}}(); +{{#allParams}} +var {{paramName}} = {{#isListContainer}}[{{/isListContainer}}{{#isBodyParam}}new {{dataType}}(){{/isBodyParam}}{{^isBodyParam}}{{{example}}}{{/isBodyParam}}{{#isListContainer}}]{{/isListContainer}}; // {{{dataType}}} | {{{description}}} +{{/allParams}} + +try { + {{#returnType}}var result = {{/returnType}}api_instance.{{{operationId}}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); + {{#returnType}} + print(result); + {{/returnType}} +} catch (e) { + print("Exception when calling {{classname}}->{{operationId}}: $e\n"); +} +{{/-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 + +{{#models}}{{#model}} - [{{{classname}}}]({{modelDocPath}}/{{{classname}}}.md) +{{/model}}{{/models}} + +## 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}} + +## Author + +{{#apiInfo}}{{#apis}}{{^hasMore}}{{infoEmail}} +{{/hasMore}}{{/apis}}{{/apiInfo}} + diff --git a/modules/swagger-codegen/src/main/resources/dart-jaguar/analysis_options.mustache b/modules/swagger-codegen/src/main/resources/dart-jaguar/analysis_options.mustache new file mode 100644 index 000000000000..518eb901a6ff --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/dart-jaguar/analysis_options.mustache @@ -0,0 +1,2 @@ +analyzer: + strong-mode: true \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/dart-jaguar/api.mustache b/modules/swagger-codegen/src/main/resources/dart-jaguar/api.mustache new file mode 100644 index 000000000000..762cb6a0fb11 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/dart-jaguar/api.mustache @@ -0,0 +1,53 @@ +import 'package:jaguar_retrofit/annotations/annotations.dart'; +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; +import 'package:jaguar_serializer/jaguar_serializer.dart'; +import 'package:jaguar_serializer/src/repo/repo.dart'; +import 'dart:async'; + +{{#operations}} +{{#modelImports}}import 'package:{{pubName}}/model/{{.}}.dart'; +{{/modelImports}} + + +part '{{classFilename}}.jretro.dart'; + +@GenApiClient() +class {{classname}} extends _${{classname}}Client implements ApiClient { + final Route base; + final SerializerRepo serializers; + + {{classname}}({this.base, this.serializers}); + + {{#operation}} + /// {{summary}} + /// + /// {{notes}} + @{{httpMethod}}Req(path: "{{path}}"{{#hasAuthMethods}}, metadata: {"auth": [{{#authMethods}} {"type": "{{type}}", "name": "{{name}}"{{#isApiKey}}, "keyName": "{{keyParamName}}", "where": "{{#isKeyInQuery}}query{{/isKeyInQuery}}{{#isKeyInHeader}}header{{/isKeyInHeader}}"{{/isApiKey}} }{{#hasMore}}, {{/hasMore}}{{/authMethods}}]}{{/hasAuthMethods}}) + Future<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}> {{nickname}}( + {{#pathParams}} + @PathParam("{{baseName}}") {{dataType}} {{paramName}}{{#hasMore}}, {{/hasMore}} + {{/pathParams}} + {{#headerParams}} + {{#-first}}{{#hasPathParams}},{{/hasPathParams}}{{/-first}} + @Header("{{baseName}}") {{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}} + {{/headerParams}} + {{#queryParams}} + {{#-first}}{{#hasHeaderParams}},{{/hasHeaderParams}}{{^hasHeaderParams}}{{#hasPathParams}},{{/hasPathParams}}{{/hasHeaderParams}}{{/-first}} + @QueryParam("{{baseName}}") {{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}} + {{/queryParams}} + {{#vendorExtensions}} + {{#formParams}} + {{#-first}}{{#hasQueryParams}},{{/hasQueryParams}}{{^hasQueryParams}}{{#hasHeaderParams}},{{/hasHeaderParams}}{{/hasQueryParams}}{{^hasQueryParams}}{{^hasHeaderParams}}{{#hasPathParams}},{{/hasPathParams}}{{/hasHeaderParams}}{{/hasQueryParams}}{{/-first}} + {{#isJson}}@AsJson() {{/isJson}}{{#isForm}}@AsFormField() {{/isForm}}{{#isMultipart}}@AsMultipartField() {{/isMultipart}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}} + {{/formParams}} + {{#bodyParam}} + {{#hasFormParams}},{{/hasFormParams}}{{^hasFormParams}}{{#hasQueryParams}},{{/hasQueryParams}}{{/hasFormParams}}{{^hasFormParams}}{{^hasQueryParams}}{{#hasHeaderParams}},{{/hasHeaderParams}}{{/hasQueryParams}}{{/hasFormParams}}{{^hasFormParams}}{{^hasQueryParams}}{{^hasHeaderParams}}{{#hasPathParams}},{{/hasPathParams}}{{/hasHeaderParams}}{{/hasQueryParams}}{{/hasFormParams}} + {{#isJson}}@AsJson() {{/isJson}}{{#isForm}}@AsForm() {{/isForm}}{{#isMultipart}}@AsMultipart() {{/isMultipart}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}} + {{/bodyParam}} + {{/vendorExtensions}} + ); + + {{/operation}} + +} +{{/operations}} diff --git a/modules/swagger-codegen/src/main/resources/dart-jaguar/api_doc.mustache b/modules/swagger-codegen/src/main/resources/dart-jaguar/api_doc.mustache new file mode 100644 index 000000000000..e723114f18c1 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/dart-jaguar/api_doc.mustache @@ -0,0 +1,86 @@ +# {{pubName}}.api.{{classname}}{{#description}} +{{description}}{{/description}} + +## Load the API package +```dart +import 'package:{{pubName}}/api.dart'; +``` + +All URIs are relative to *{{basePath}}* + +Method | HTTP request | Description +------------- | ------------- | ------------- +{{#operations}}{{#operation}}[**{{operationId}}**]({{classname}}.md#{{operationId}}) | **{{httpMethod}}** {{path}} | {{#summary}}{{summary}}{{/summary}} +{{/operation}}{{/operations}} + +{{#operations}} +{{#operation}} +# **{{{operationId}}}** +> {{#returnType}}{{{returnType}}} {{/returnType}}{{{operationId}}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) + +{{{summary}}}{{#notes}} + +{{{notes}}}{{/notes}} + +### Example +```dart +import 'package:{{pubName}}/api.dart'; +{{#hasAuthMethods}} +{{#authMethods}} +{{#isBasic}} +// TODO Configure HTTP basic authorization: {{{name}}} +//{{pubName}}.api.Configuration.username = 'YOUR_USERNAME'; +//{{pubName}}.api.Configuration.password = 'YOUR_PASSWORD'; +{{/isBasic}} +{{#isApiKey}} +// TODO Configure API key authorization: {{{name}}} +//{{pubName}}.api.Configuration.apiKey{'{{{keyParamName}}}'} = 'YOUR_API_KEY'; +// uncomment below to setup prefix (e.g. Bearer) for API key, if needed +//{{pubName}}.api.Configuration.apiKeyPrefix{'{{{keyParamName}}}'} = "Bearer"; +{{/isApiKey}} +{{#isOAuth}} +// TODO Configure OAuth2 access token for authorization: {{{name}}} +//{{pubName}}.api.Configuration.accessToken = 'YOUR_ACCESS_TOKEN'; +{{/isOAuth}} +{{/authMethods}} +{{/hasAuthMethods}} + +var api_instance = new {{classname}}(); +{{#allParams}} +var {{paramName}} = {{#isListContainer}}[{{/isListContainer}}{{#isBodyParam}}new {{dataType}}(){{/isBodyParam}}{{^isBodyParam}}{{{example}}}{{/isBodyParam}}{{#isListContainer}}]{{/isListContainer}}; // {{{dataType}}} | {{{description}}} +{{/allParams}} + +try { + {{#returnType}}var result = {{/returnType}}api_instance.{{{operationId}}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); + {{#returnType}} + print(result); + {{/returnType}} +} catch (e) { + print("Exception when calling {{classname}}->{{operationId}}: $e\n"); +} +``` + +### 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}}**]({{baseType}}.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/swagger-codegen/src/main/resources/dart-jaguar/apilib.mustache b/modules/swagger-codegen/src/main/resources/dart-jaguar/apilib.mustache new file mode 100644 index 000000000000..80ac7107a36e --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/dart-jaguar/apilib.mustache @@ -0,0 +1,75 @@ +library {{pubName}}.api; + +import 'package:http/http.dart'; +import 'package:jaguar_serializer/jaguar_serializer.dart'; +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; +import 'package:{{pubName}}/auth/api_key_auth.dart'; +import 'package:{{pubName}}/auth/basic_auth.dart'; +import 'package:{{pubName}}/auth/oauth.dart'; + +{{#apiInfo}}{{#apis}}import 'package:{{pubName}}/api/{{classFilename}}.dart'; +{{/apis}}{{/apiInfo}} +{{#models}}{{#model}}import 'package:{{pubName}}/model/{{classFilename}}.dart'; +{{/model}}{{/models}} + +final jsonJaguarRepo = JsonRepo() +{{#models}}{{#model}}..add({{classname}}Serializer()) +{{/model}}{{/models}}; + +final _defaultInterceptors = [OAuthInterceptor(), BasicAuthInterceptor(), ApiKeyAuthInterceptor()]; + +class JaguarApiGen { + List interceptors; + String basePath = "{{basePath}}"; + Route _baseRoute; + + /** + * Add custom global interceptors, put overrideInterceptors to true to set your interceptors only (auth interceptors will not be added) + */ + JaguarApiGen({List interceptors, bool overrideInterceptors = false, String baseUrl}) { + _baseRoute = Route(baseUrl ?? basePath).withClient(globalClient ?? IOClient()); + if(interceptors == null) { + this.interceptors = _defaultInterceptors; + } + else if(overrideInterceptors){ + this.interceptors = interceptors; + } + else { + this.interceptors = List.from(_defaultInterceptors)..addAll(interceptors); + } + + this.interceptors.forEach((interceptor) { + _baseRoute.before(interceptor.before); + _baseRoute.after(interceptor.after); + }); + } + + void setOAuthToken(String name, String token) { + (_defaultInterceptors[0] as OAuthInterceptor).tokens[name] = token; + } + + void setBasicAuth(String name, String username, String password) { + (_defaultInterceptors[1] as BasicAuthInterceptor).authInfo[name] = BasicAuthInfo(username, password); + } + + void setApiKey(String name, String apiKey) { + (_defaultInterceptors[2] as ApiKeyAuthInterceptor).apiKeys[name] = apiKey; + } + + {{#apiInfo}}{{#apis}} + /** + * Get {{classname}} instance, base route and serializer can be overridden by a given but be careful, + * by doing that all interceptors will not be executed + */ + {{classname}} get{{classname}}({Route base, SerializerRepo serializers}) { + if(base == null) { + base = _baseRoute; + } + if(serializers == null) { + serializers = jsonJaguarRepo; + } + return {{classname}}(base: base, serializers: serializers); + } + + {{/apis}}{{/apiInfo}} +} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/dart-jaguar/auth/api_key_auth.mustache b/modules/swagger-codegen/src/main/resources/dart-jaguar/auth/api_key_auth.mustache new file mode 100644 index 000000000000..feb0ba65712b --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/dart-jaguar/auth/api_key_auth.mustache @@ -0,0 +1,33 @@ +import 'dart:async'; +import 'package:{{pubName}}/auth/auth.dart'; +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; + +class ApiKeyAuthInterceptor extends AuthInterceptor { + Map apiKeys = {}; + + @override + FutureOr before(RouteBase route) { + final authInfo = getAuthInfo(route, "apiKey"); + for (var info in authInfo) { + final authName = info["name"]; + final authKeyName = info["keyName"]; + final authWhere = info["where"]; + final apiKey = apiKeys[authName]; + if(apiKey != null) { + if(authWhere == 'query'){ + route.query(authKeyName, apiKey); + } + else { + route.header(authKeyName, apiKey); + } + break; + } + } + return super.before(route); + } + + @override + FutureOr after(StringResponse response) { + return Future.value(response); + } +} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/dart-jaguar/auth/auth.mustache b/modules/swagger-codegen/src/main/resources/dart-jaguar/auth/auth.mustache new file mode 100644 index 000000000000..477fbbf83743 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/dart-jaguar/auth/auth.mustache @@ -0,0 +1,23 @@ +import 'dart:async'; + +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; + +abstract class AuthInterceptor extends Interceptor { + /* + * Get auth information on given route for the given type + * Can return null if type is not present on auth data or if route doesn't need authentication + */ + List> getAuthInfo(RouteBase route, String type) { + if (route.metadataMap.containsKey("auth")) { + final auth = route.metadataMap["auth"]; + List> results = []; + for (var info in auth) { + if(info["type"] == type) { + results.add(info); + } + } + return results; + } + return []; + } +} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/dart-jaguar/auth/basic_auth.mustache b/modules/swagger-codegen/src/main/resources/dart-jaguar/auth/basic_auth.mustache new file mode 100644 index 000000000000..962be36d664a --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/dart-jaguar/auth/basic_auth.mustache @@ -0,0 +1,34 @@ +import 'dart:async'; +import 'package:{{pubName}}/auth/auth.dart'; +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; + +class BasicAuthInfo { + final String username; + final String password; + + const BasicAuthInfo(this.username, this.password); + +} + +class BasicAuthInterceptor extends AuthInterceptor { + Map authInfo = {}; + + @override + FutureOr before(RouteBase route) { + final metadataAuthInfo = getAuthInfo(route, "basic"); + for (var info in metadataAuthInfo) { + final authName = info["name"]; + final basicAuthInfo = authInfo[authName]; + if(basicAuthInfo != null) { + route.basicAuth(basicAuthInfo.username, basicAuthInfo.password); + break; + } + } + return super.before(route); + } + + @override + FutureOr after(StringResponse response) { + return Future.value(response); + } +} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/dart-jaguar/auth/oauth.mustache b/modules/swagger-codegen/src/main/resources/dart-jaguar/auth/oauth.mustache new file mode 100644 index 000000000000..f12a63c45b50 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/dart-jaguar/auth/oauth.mustache @@ -0,0 +1,25 @@ +import 'dart:async'; +import 'package:{{pubName}}/auth/auth.dart'; +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; + +class OAuthInterceptor extends AuthInterceptor { + Map tokens = {}; + + @override + FutureOr before(RouteBase route) { + final authInfo = getAuthInfo(route, "oauth"); + for (var info in authInfo) { + final token = tokens[info["name"]]; + if(token != null) { + route.header("Authorization", "Bearer ${token}"); + break; + } + } + return super.before(route); + } + + @override + FutureOr after(StringResponse response) { + return Future.value(response); + } +} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/dart-jaguar/class.mustache b/modules/swagger-codegen/src/main/resources/dart-jaguar/class.mustache new file mode 100644 index 000000000000..6507390a0f70 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/dart-jaguar/class.mustache @@ -0,0 +1,26 @@ +part '{{classFilename}}.jser.dart'; + +class {{classname}} { + {{#vars}}{{#description}} /* {{{description}}} */{{/description}} + final {{{datatype}}} {{name}}; + {{#allowableValues}}{{#min}} // range from {{min}} to {{max}}{{/min}}//{{^min}}enum {{name}}Enum { {{#values}} {{.}}, {{/values}} };{{/min}}{{/allowableValues}}{{/vars}} + + {{classname}}( + {{#vars}}{{^defaultValue}}{{#required}} this.{{name}}, {{/required}}{{/defaultValue}}{{/vars}} + +{{#vendorExtensions}}{{#hasVars}}{ + {{#vars}}{{^required}} this.{{name}}{{#defaultValue}} = {{{defaultValue}}}{{#hasMore}}, {{/hasMore}} {{/defaultValue}}{{/required}} + {{#required}} {{#defaultValue}}this.{{name}} = {{{defaultValue}}}{{#hasMore}}, {{/hasMore}} {{/defaultValue}}{{/required}}{{/vars}} + }{{/hasVars}}{{/vendorExtensions}} + ); + + @override + String toString() { + return '{{classname}}[{{#vars}}{{name}}=${{name}}, {{/vars}}]'; + } +} + +@GenSerializer() +class {{classname}}Serializer extends Serializer<{{classname}}> with _${{classname}}Serializer { + +} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/dart-jaguar/enum.mustache b/modules/swagger-codegen/src/main/resources/dart-jaguar/enum.mustache new file mode 100644 index 000000000000..dc63bc44db55 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/dart-jaguar/enum.mustache @@ -0,0 +1,35 @@ +part '{{classFilename}}.jser.dart'; + +class {{classname}} { + /// The underlying value of this enum member. + final {{dataType}} value; + + const {{classname}}._internal(this.value); + + {{#allowableValues}} + {{#enumVars}} + {{#description}} + /// {{description}} + {{/description}} + static const {{classname}} {{name}} = const {{classname}}._internal({{{value}}}); + {{/enumVars}} + {{/allowableValues}} +} + +class {{classname}}TypeTransformer { + + dynamic encode({{classname}} data) { + return data.value; + } + + {{classname}} decode(dynamic data) { + switch (data) { + {{#allowableValues}} + {{#enumVars}} + case {{{value}}}: return {{classname}}.{{name}}; + {{/enumVars}} + {{/allowableValues}} + default: throw('Unknown enum value to decode: $data'); + } + } +} diff --git a/modules/swagger-codegen/src/main/resources/dart-jaguar/git_push.sh.mustache b/modules/swagger-codegen/src/main/resources/dart-jaguar/git_push.sh.mustache new file mode 100755 index 000000000000..92d71b84970d --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/dart-jaguar/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 swagger-petstore "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/swagger-codegen/src/main/resources/dart-jaguar/gitignore.mustache b/modules/swagger-codegen/src/main/resources/dart-jaguar/gitignore.mustache new file mode 100644 index 000000000000..7c2804416498 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/dart-jaguar/gitignore.mustache @@ -0,0 +1,27 @@ +# See https://www.dartlang.org/tools/private-files.html + +# Files and directories created by pub +.buildlog +.packages +.project +.pub/ +build/ +**/packages/ + +# Files created by dart2js +# (Most Dart developers will use pub build to compile Dart, use/modify these +# rules if you intend to use dart2js directly +# Convention is to use extension '.dart.js' for Dart compiled to Javascript to +# differentiate from explicit Javascript files) +*.dart.js +*.part.js +*.js.deps +*.js.map +*.info.json + +# Directory created by dartdoc +doc/api/ + +# Don't commit pubspec lock file +# (Library packages only! Remove pattern if developing an application package) +pubspec.lock diff --git a/modules/swagger-codegen/src/main/resources/dart-jaguar/model.mustache b/modules/swagger-codegen/src/main/resources/dart-jaguar/model.mustache new file mode 100644 index 000000000000..d8e5f09b73d7 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/dart-jaguar/model.mustache @@ -0,0 +1,9 @@ +import 'package:jaguar_serializer/jaguar_serializer.dart'; + +{{#models}} +{{#model}} +{{#imports}}import 'package:{{pubName}}/model/{{.}}.dart'; +{{/imports}} +{{#isEnum}}{{>enum}}{{/isEnum}}{{^isEnum}}{{>class}}{{/isEnum}} +{{/model}} +{{/models}} diff --git a/modules/swagger-codegen/src/main/resources/dart-jaguar/object_doc.mustache b/modules/swagger-codegen/src/main/resources/dart-jaguar/object_doc.mustache new file mode 100644 index 000000000000..9ad4463997bc --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/dart-jaguar/object_doc.mustache @@ -0,0 +1,16 @@ +{{#models}}{{#model}}# {{pubName}}.model.{{classname}} + +## Load the model package +```dart +import 'package:{{pubName}}/api.dart'; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +{{#vars}}**{{name}}** | {{#isPrimitiveType}}**{{datatype}}**{{/isPrimitiveType}}{{^isPrimitiveType}}[**{{datatype}}**]({{complexType}}.md){{/isPrimitiveType}} | {{description}} | {{^required}}[optional] {{/required}}{{#readOnly}}[readonly] {{/readOnly}}{{#defaultValue}}[default to {{defaultValue}}]{{/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/swagger-codegen/src/main/resources/dart-jaguar/pubspec.mustache b/modules/swagger-codegen/src/main/resources/dart-jaguar/pubspec.mustache new file mode 100644 index 000000000000..30bdbdc28e55 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/dart-jaguar/pubspec.mustache @@ -0,0 +1,12 @@ +name: {{pubName}} +version: {{pubVersion}} +description: {{pubDescription}} +environment: + sdk: ">=2.0.0 <3.0.0" +dependencies: + jaguar_retrofit: '^2.5.4' + jaguar_serializer: '^2.2.2' +dev_dependencies: + jaguar_retrofit_gen: '^2.5.2' + jaguar_serializer_cli: '^2.2.1' + build_runner: '^0.10.0' \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/dart/api_client.mustache b/modules/swagger-codegen/src/main/resources/dart/api_client.mustache index e8e6a515b44c..8195bb9dd9d3 100644 --- a/modules/swagger-codegen/src/main/resources/dart/api_client.mustache +++ b/modules/swagger-codegen/src/main/resources/dart/api_client.mustache @@ -44,11 +44,7 @@ class ApiClient { {{#model}} case '{{classname}}': {{#isEnum}} - // Enclose the value in a list so that Dartson can use a transformer - // to decode it. - final listValue = [value]; - final List listResult = dson.map(listValue, []); - return listResult[0]; + return new {{classname}}.fromJson(value); {{/isEnum}} {{^isEnum}} return new {{classname}}.fromJson(value); @@ -76,13 +72,13 @@ class ApiClient { throw new ApiException(500, 'Could not find a suitable class for deserialization'); } - dynamic deserialize(String json, String targetType) { + dynamic deserialize(String jsonVal, String targetType) { // Remove all spaces. Necessary for reg expressions as well. targetType = targetType.replaceAll(' ', ''); - if (targetType == 'String') return json; + if (targetType == 'String') return jsonVal; - var decodedJson = JSON.decode(json); + var decodedJson = json.decode(jsonVal); return _deserialize(decodedJson, targetType); } @@ -91,7 +87,7 @@ class ApiClient { if (obj == null) { serialized = ''; } else { - serialized = JSON.encode(obj); + serialized = json.encode(obj); } return serialized; } diff --git a/modules/swagger-codegen/src/main/resources/dart/api_helper.mustache b/modules/swagger-codegen/src/main/resources/dart/api_helper.mustache index 3929fa2b7628..ead4b041b912 100644 --- a/modules/swagger-codegen/src/main/resources/dart/api_helper.mustache +++ b/modules/swagger-codegen/src/main/resources/dart/api_helper.mustache @@ -42,7 +42,7 @@ String parameterToString(dynamic value) { {{#model}} {{#isEnum}} } else if (value is {{classname}}) { - return new {{classname}}TypeTransformer().encode(value).toString(); + return {{classname}}.encode(value).toString(); {{/isEnum}} {{/model}} {{/models}} diff --git a/modules/swagger-codegen/src/main/resources/dart/auth/http_basic_auth.mustache b/modules/swagger-codegen/src/main/resources/dart/auth/http_basic_auth.mustache index 4fbcb2321b66..f6e9a9b716b6 100644 --- a/modules/swagger-codegen/src/main/resources/dart/auth/http_basic_auth.mustache +++ b/modules/swagger-codegen/src/main/resources/dart/auth/http_basic_auth.mustache @@ -8,7 +8,7 @@ class HttpBasicAuth implements Authentication { @override void applyToParams(List queryParams, Map headerParams) { String str = (username == null ? "" : username) + ":" + (password == null ? "" : password); - headerParams["Authorization"] = "Basic " + BASE64.encode(UTF8.encode(str)); + headerParams["Authorization"] = "Basic " + base64.encode(utf8.encode(str)); } } \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/dart/enum.mustache b/modules/swagger-codegen/src/main/resources/dart/enum.mustache index debb73bbcec6..19913cb94be5 100644 --- a/modules/swagger-codegen/src/main/resources/dart/enum.mustache +++ b/modules/swagger-codegen/src/main/resources/dart/enum.mustache @@ -1,36 +1,30 @@ -@Entity() class {{classname}} { /// The underlying value of this enum member. - final {{dataType}} value; + {{dataType}} value; - const {{classname}}._internal(this.value); + {{classname}}._internal(this.value); {{#allowableValues}} {{#enumVars}} {{#description}} /// {{description}} {{/description}} - static const {{classname}} {{name}} = const {{classname}}._internal({{value}}); + static {{classname}} {{name}} = {{classname}}._internal({{{value}}}); {{/enumVars}} {{/allowableValues}} -} - -class {{classname}}TypeTransformer extends TypeTransformer<{{classname}}> { - - @override - dynamic encode({{classname}} data) { - return data.value; - } - @override - {{classname}} decode(dynamic data) { + {{classname}}.fromJson(dynamic data) { switch (data) { - {{#allowableValues}} - {{#enumVars}} - case {{value}}: return {{classname}}.{{name}}; - {{/enumVars}} - {{/allowableValues}} - default: throw('Unknown enum value to decode: $data'); + {{#allowableValues}} + {{#enumVars}} + case {{{value}}}: value = data; break; + {{/enumVars}} + {{/allowableValues}} + default: throw('Unknown enum value to decode: $data'); } } + + static dynamic encode({{classname}} data) { + return data.value; + } } diff --git a/modules/swagger-codegen/src/main/resources/flaskConnexion/model.mustache b/modules/swagger-codegen/src/main/resources/flaskConnexion/model.mustache index ba289ef4f8cb..7bb398f9f738 100644 --- a/modules/swagger-codegen/src/main/resources/flaskConnexion/model.mustache +++ b/modules/swagger-codegen/src/main/resources/flaskConnexion/model.mustache @@ -138,7 +138,7 @@ class {{classname}}(Model): raise ValueError("Invalid value for `{{name}}`, must be a value greater than {{^exclusiveMinimum}}or equal to {{/exclusiveMinimum}}`{{minimum}}`") # noqa: E501 {{/minimum}} {{#pattern}} - if {{name}} is not None and not re.search('{{{vendorExtensions.x-regex}}}', {{name}}{{#vendorExtensions.x-modifiers}}{{#-first}}, flags={{/-first}}re.{{.}}{{^-last}} | {{/-last}}{{/vendorExtensions.x-modifiers}}): # noqa: E501 + if {{name}} is not None and not re.search(r'{{{vendorExtensions.x-regex}}}', {{name}}{{#vendorExtensions.x-modifiers}}{{#-first}}, flags={{/-first}}re.{{.}}{{^-last}} | {{/-last}}{{/vendorExtensions.x-modifiers}}): # noqa: E501 raise ValueError("Invalid value for `{{name}}`, must be a follow pattern or equal to `{{{pattern}}}`") # noqa: E501 {{/pattern}} {{#maxItems}} diff --git a/modules/swagger-codegen/src/main/resources/htmlDocs2/index.mustache b/modules/swagger-codegen/src/main/resources/htmlDocs2/index.mustache index 093dce63c7af..e9f0212a853c 100644 --- a/modules/swagger-codegen/src/main/resources/htmlDocs2/index.mustache +++ b/modules/swagger-codegen/src/main/resources/htmlDocs2/index.mustache @@ -114,7 +114,7 @@ var defs = {} {{#models}} {{#model}} - defs.{{name}} = {{{modelJson}}}; + defs["{{name}}"] = {{{modelJson}}}; {{/model}} {{/models}} diff --git a/modules/swagger-codegen/src/main/resources/kotlin-client/api.mustache b/modules/swagger-codegen/src/main/resources/kotlin-client/api.mustache index f479302b7d9e..a167de646509 100644 --- a/modules/swagger-codegen/src/main/resources/kotlin-client/api.mustache +++ b/modules/swagger-codegen/src/main/resources/kotlin-client/api.mustache @@ -23,7 +23,13 @@ class {{classname}}(basePath: kotlin.String = "{{{basePath}}}") : ApiClient(base fun {{operationId}}({{#allParams}}{{paramName}}: {{{dataType}}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) : {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Unit{{/returnType}} { val localVariableBody: kotlin.Any? = {{#hasBodyParam}}{{#bodyParams}}{{paramName}}{{/bodyParams}}{{/hasBodyParam}}{{^hasBodyParam}}{{^hasFormParams}}null{{/hasFormParams}}{{#hasFormParams}}mapOf({{#formParams}}"{{{baseName}}}" to "${{paramName}}"{{#hasMore}}, {{/hasMore}}{{/formParams}}){{/hasFormParams}}{{/hasBodyParam}} val localVariableQuery: MultiValueMap = {{^hasQueryParams}}mapOf(){{/hasQueryParams}}{{#hasQueryParams}}mapOf({{#queryParams}}"{{baseName}}" to {{#isContainer}}toMultiValue({{paramName}}.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf("${{paramName}}"){{/isContainer}}{{#hasMore}}, {{/hasMore}}{{/queryParams}}){{/hasQueryParams}} - val localVariableHeaders: kotlin.collections.Map = mapOf({{#hasFormParams}}"Content-Type" to "multipart/form-data"{{/hasFormParams}}{{^hasHeaderParams}}){{/hasHeaderParams}}{{#hasHeaderParams}}{{#hasFormParams}}, {{/hasFormParams}}{{#headerParams}}"{{baseName}}" to {{#isContainer}}{{paramName}}.joinToString(separator = collectionDelimiter("{{collectionFormat}}"){{/isContainer}}{{^isContainer}}{{paramName}}{{/isContainer}}{{#hasMore}}, {{/hasMore}}{{/headerParams}}){{/hasHeaderParams}} + + val contentHeaders: kotlin.collections.Map = mapOf({{#hasFormParams}}"Content-Type" to "multipart/form-data"{{/hasFormParams}}) + val acceptsHeaders: kotlin.collections.Map = mapOf({{#hasProduces}}"Accept" to "{{#produces}}{{#isContainer}}{{mediaType}}.joinToString(separator = collectionDelimiter("{{collectionFormat}}"){{/isContainer}}{{^isContainer}}{{mediaType}}{{/isContainer}}{{#hasMore}}, {{/hasMore}}{{/produces}}"{{/hasProduces}}) + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf({{#hasHeaderParams}}{{#headerParams}}"{{baseName}}" to {{#isContainer}}{{paramName}}.joinToString(separator = collectionDelimiter("{{collectionFormat}}"){{/isContainer}}{{^isContainer}}{{paramName}}{{/isContainer}}{{#hasMore}}, {{/hasMore}}{{/headerParams}}{{/hasHeaderParams}}) + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.{{httpMethod}}, "{{path}}"{{#pathParams}}.replace("{"+"{{baseName}}"+"}", "${{paramName}}"){{/pathParams}}, diff --git a/modules/swagger-codegen/src/main/resources/kotlin-client/infrastructure/ApiClient.kt.mustache b/modules/swagger-codegen/src/main/resources/kotlin-client/infrastructure/ApiClient.kt.mustache index 934cf63524d0..090e1a10228f 100644 --- a/modules/swagger-codegen/src/main/resources/kotlin-client/infrastructure/ApiClient.kt.mustache +++ b/modules/swagger-codegen/src/main/resources/kotlin-client/infrastructure/ApiClient.kt.mustache @@ -2,6 +2,8 @@ package {{packageName}}.infrastructure import okhttp3.* import java.io.File +import java.io.IOException +import java.util.regex.Pattern open class ApiClient(val baseUrl: String) { companion object { @@ -51,12 +53,31 @@ open class ApiClient(val baseUrl: String) { TODO("requestBody currently only supports JSON body and File body.") } - inline protected fun responseBody(body: ResponseBody?, mediaType: String = JsonMediaType): T? { - if(body == null) return null - return when(mediaType) { - JsonMediaType -> Serializer.moshi.adapter(T::class.java).fromJson(body.source()) - else -> TODO() + inline protected fun responseBody(response: Response, mediaType: String = JsonMediaType): T? { + if(response.body() == null) return null + + if(T::class.java == java.io.File::class.java){ + return downloadFileFromResponse(response) as T } + + var contentType = response.headers().get("Content-Type") + + if(contentType == null) { + contentType = JsonMediaType + } + + if(isJsonMime(contentType)){ + return Serializer.moshi.adapter(T::class.java).fromJson(response.body()?.source()) + } else if(contentType.equals(String.javaClass)){ + return response.body().toString() as T + } else { + TODO("Fill in more types!") + } + } + + fun isJsonMime(mime: String?): Boolean { + val jsonMime = "(?i)^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$" + return mime != null && (mime.matches(jsonMime.toRegex()) || mime == "*/*") } inline protected fun request(requestConfig: RequestConfig, body : Any? = null): ApiInfrastructureResponse { @@ -72,7 +93,7 @@ open class ApiClient(val baseUrl: String) { } val url = urlBuilder.build() - val headers = requestConfig.headers + defaultHeaders + val headers = defaultHeaders + requestConfig.headers if(headers[ContentType] ?: "" == "") { throw kotlin.IllegalStateException("Missing Content-Type header. This is required.") @@ -113,7 +134,7 @@ open class ApiClient(val baseUrl: String) { response.headers().toMultimap() ) response.isSuccessful -> return Success( - responseBody(response.body(), accept), + responseBody(response, accept), response.code(), response.headers().toMultimap() ) @@ -130,4 +151,50 @@ open class ApiClient(val baseUrl: String) { ) } } + + @Throws(IOException::class) + fun downloadFileFromResponse(response: Response): File { + val file = prepareDownloadFile(response) + + response.body()?.byteStream().use{ input -> + File(file.path).outputStream().use { input?.copyTo(it) } + } + + return file + } + + @Throws(IOException::class) + fun prepareDownloadFile(response: Response): File { + var filename: String? = null + var contentDisposition = response.headers().get("Content-Disposition") + + if(contentDisposition != null && contentDisposition != ""){ + val pattern = Pattern.compile("filename=['\"]?([^'\"\\s]+)['\"]?") + val matcher = pattern.matcher(contentDisposition) + + if (matcher.find()) + filename = matcher.group(1) + } + var prefix: String + var suffix: String? = null + + if (filename == null) { + prefix = "download-" + suffix = "" + } else { + val pos = filename.lastIndexOf('.') + + if (pos == -1) { + prefix = filename + "-"; + } else { + prefix = filename.substring(0, pos) + "-" + suffix = filename.substring(pos) + } + // File.createTempFile requires the prefix to be at least three characters long + if (prefix.length < 3) + prefix = "download-" + } + + return File.createTempFile(prefix, suffix); + } } \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/php-symfony/api.mustache b/modules/swagger-codegen/src/main/resources/php-symfony/api.mustache index 49d24a41cbd7..7e13620c38b6 100644 --- a/modules/swagger-codegen/src/main/resources/php-symfony/api.mustache +++ b/modules/swagger-codegen/src/main/resources/php-symfony/api.mustache @@ -46,6 +46,9 @@ interface {{classname}} {{#operation}} /** + {{#isDeprecated}} + * @deprecated + {{/isDeprecated}} * Operation {{{operationId}}} {{#summary}} * diff --git a/modules/swagger-codegen/src/main/resources/php/.php_cs b/modules/swagger-codegen/src/main/resources/php/.php_cs index 6b8e23c818a9..4fbe53ec5ff1 100644 --- a/modules/swagger-codegen/src/main/resources/php/.php_cs +++ b/modules/swagger-codegen/src/main/resources/php/.php_cs @@ -1,18 +1,23 @@ level(Symfony\CS\FixerInterface::PSR2_LEVEL) +return PhpCsFixer\Config::create() ->setUsingCache(true) - ->fixers( - [ - 'ordered_use', - 'phpdoc_order', - 'short_array_syntax', - 'strict', - 'strict_param' - ] - ) - ->finder( - Symfony\CS\Finder\DefaultFinder::create() - ->in(__DIR__) + ->setRules([ + '@PSR2' => true, + 'ordered_imports' => true, + 'phpdoc_order' => true, + 'array_syntax' => [ 'syntax' => 'short' ], + 'strict_comparison' => true, + 'strict_param' => true, + 'no_trailing_whitespace' => false, + 'no_trailing_whitespace_in_comment' => false, + 'braces' => false, + 'single_blank_line_at_eof' => false, + 'blank_line_after_namespace' => false, + ]) + ->setFinder( + PhpCsFixer\Finder::create() + ->exclude('test') + ->exclude('tests') + ->in(__DIR__) ); diff --git a/modules/swagger-codegen/src/main/resources/php/HeaderSelector.mustache b/modules/swagger-codegen/src/main/resources/php/HeaderSelector.mustache index 909beb134d24..72f585b46cbf 100644 --- a/modules/swagger-codegen/src/main/resources/php/HeaderSelector.mustache +++ b/modules/swagger-codegen/src/main/resources/php/HeaderSelector.mustache @@ -97,4 +97,3 @@ class HeaderSelector } } } - diff --git a/modules/swagger-codegen/src/main/resources/php/ObjectSerializer.mustache b/modules/swagger-codegen/src/main/resources/php/ObjectSerializer.mustache index 460b69b705bb..2a4ad51f87f0 100644 --- a/modules/swagger-codegen/src/main/resources/php/ObjectSerializer.mustache +++ b/modules/swagger-codegen/src/main/resources/php/ObjectSerializer.mustache @@ -58,7 +58,7 @@ class ObjectSerializer if ($value !== null && !in_array($swaggerType, [{{&primitives}}], true) && method_exists($swaggerType, 'getAllowableEnumValues') - && !in_array($value, $swaggerType::getAllowableEnumValues())) { + && !in_array($value, $swaggerType::getAllowableEnumValues(), true)) { $imploded = implode("', '", $swaggerType::getAllowableEnumValues()); throw new \InvalidArgumentException("Invalid value for enum '$swaggerType', must be one of: '$imploded'"); } @@ -274,7 +274,7 @@ class ObjectSerializer return new \SplFileObject($filename, 'r'); } elseif (method_exists($class, 'getAllowableEnumValues')) { - if (!in_array($data, $class::getAllowableEnumValues())) { + if (!in_array($data, $class::getAllowableEnumValues(), true)) { $imploded = implode("', '", $class::getAllowableEnumValues()); throw new \InvalidArgumentException("Invalid value for enum '$class', must be one of: '$imploded'"); } diff --git a/modules/swagger-codegen/src/main/resources/php/composer.mustache b/modules/swagger-codegen/src/main/resources/php/composer.mustache index 0a7732fafea5..5147268142ff 100644 --- a/modules/swagger-codegen/src/main/resources/php/composer.mustache +++ b/modules/swagger-codegen/src/main/resources/php/composer.mustache @@ -28,7 +28,7 @@ "require-dev": { "phpunit/phpunit": "^4.8", "squizlabs/php_codesniffer": "~2.6", - "friendsofphp/php-cs-fixer": "~1.12" + "friendsofphp/php-cs-fixer": "~2.12" }, "autoload": { "psr-4": { "{{escapedInvokerPackage}}\\" : "{{srcBasePath}}/" } diff --git a/modules/swagger-codegen/src/main/resources/php/model_generic.mustache b/modules/swagger-codegen/src/main/resources/php/model_generic.mustache index c2952c559e81..999566314b5b 100644 --- a/modules/swagger-codegen/src/main/resources/php/model_generic.mustache +++ b/modules/swagger-codegen/src/main/resources/php/model_generic.mustache @@ -166,7 +166,7 @@ class {{classname}} {{#parentSchema}}extends {{{parent}}} {{/parentSchema}}{{^pa {{#discriminator}} // Initialize discriminator property with the model name. - $discriminator = array_search('{{discriminator}}', self::$attributeMap); + $discriminator = array_search('{{discriminator}}', self::$attributeMap, true); $this->container[$discriminator] = static::$swaggerModelName; {{/discriminator}} } diff --git a/modules/swagger-codegen/src/main/resources/python/api.mustache b/modules/swagger-codegen/src/main/resources/python/api.mustache index a65946f578dc..89fcc0c82fc6 100644 --- a/modules/swagger-codegen/src/main/resources/python/api.mustache +++ b/modules/swagger-codegen/src/main/resources/python/api.mustache @@ -27,22 +27,22 @@ class {{classname}}(object): {{#operation}} def {{operationId}}(self, {{#sortParamsByRequiredFlag}}{{#allParams}}{{#required}}{{paramName}}, {{/required}}{{/allParams}}{{/sortParamsByRequiredFlag}}**kwargs): # noqa: E501 - """{{#summary}}{{.}}{{/summary}}{{^summary}}{{operationId}}{{/summary}} # noqa: E501 + """{{#summary}}{{{.}}}{{/summary}}{{^summary}}{{operationId}}{{/summary}} # noqa: E501 {{#notes}} {{{notes}}} # noqa: E501 {{/notes}} This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True + asynchronous HTTP request, please pass async_req=True {{#sortParamsByRequiredFlag}} - >>> thread = api.{{operationId}}({{#allParams}}{{#required}}{{paramName}}, {{/required}}{{/allParams}}async=True) + >>> thread = api.{{operationId}}({{#allParams}}{{#required}}{{paramName}}, {{/required}}{{/allParams}}async_req=True) {{/sortParamsByRequiredFlag}} {{^sortParamsByRequiredFlag}} - >>> thread = api.{{operationId}}({{#allParams}}{{#required}}{{paramName}}={{paramName}}_value, {{/required}}{{/allParams}}async=True) + >>> thread = api.{{operationId}}({{#allParams}}{{#required}}{{paramName}}={{paramName}}_value, {{/required}}{{/allParams}}async_req=True) {{/sortParamsByRequiredFlag}} >>> result = thread.get() - :param async bool + :param async_req bool {{#allParams}} :param {{dataType}} {{paramName}}:{{#description}} {{{description}}}{{/description}}{{#required}} (required){{/required}}{{#optional}}(optional){{/optional}} {{/allParams}} @@ -51,29 +51,29 @@ class {{classname}}(object): returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.{{operationId}}_with_http_info({{#sortParamsByRequiredFlag}}{{#allParams}}{{#required}}{{paramName}}, {{/required}}{{/allParams}}{{/sortParamsByRequiredFlag}}**kwargs) # noqa: E501 else: (data) = self.{{operationId}}_with_http_info({{#sortParamsByRequiredFlag}}{{#allParams}}{{#required}}{{paramName}}, {{/required}}{{/allParams}}{{/sortParamsByRequiredFlag}}**kwargs) # noqa: E501 return data def {{operationId}}_with_http_info(self, {{#sortParamsByRequiredFlag}}{{#allParams}}{{#required}}{{paramName}}, {{/required}}{{/allParams}}{{/sortParamsByRequiredFlag}}**kwargs): # noqa: E501 - """{{#summary}}{{.}}{{/summary}}{{^summary}}{{operationId}}{{/summary}} # noqa: E501 + """{{#summary}}{{{.}}}{{/summary}}{{^summary}}{{operationId}}{{/summary}} # noqa: E501 {{#notes}} {{{notes}}} # noqa: E501 {{/notes}} This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True + asynchronous HTTP request, please pass async_req=True {{#sortParamsByRequiredFlag}} - >>> thread = api.{{operationId}}_with_http_info({{#allParams}}{{#required}}{{paramName}}, {{/required}}{{/allParams}}async=True) + >>> thread = api.{{operationId}}_with_http_info({{#allParams}}{{#required}}{{paramName}}, {{/required}}{{/allParams}}async_req=True) {{/sortParamsByRequiredFlag}} {{^sortParamsByRequiredFlag}} - >>> thread = api.{{operationId}}_with_http_info({{#allParams}}{{#required}}{{paramName}}={{paramName}}_value, {{/required}}{{/allParams}}async=True) + >>> thread = api.{{operationId}}_with_http_info({{#allParams}}{{#required}}{{paramName}}={{paramName}}_value, {{/required}}{{/allParams}}async_req=True) {{/sortParamsByRequiredFlag}} >>> result = thread.get() - :param async bool + :param async_req bool {{#allParams}} :param {{dataType}} {{paramName}}:{{#description}} {{{description}}}{{/description}}{{#required}} (required){{/required}}{{#optional}}(optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/optional}} {{/allParams}} @@ -83,7 +83,7 @@ class {{classname}}(object): """ all_params = [{{#allParams}}'{{paramName}}'{{#hasMore}}, {{/hasMore}}{{/allParams}}] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -127,7 +127,7 @@ class {{classname}}(object): raise ValueError("Invalid value for parameter `{{paramName}}` when calling `{{operationId}}`, must be a value greater than {{^exclusiveMinimum}}or equal to {{/exclusiveMinimum}}`{{minimum}}`") # noqa: E501 {{/minimum}} {{#pattern}} - if '{{paramName}}' in params and not re.search('{{{vendorExtensions.x-regex}}}', params['{{paramName}}']{{#vendorExtensions.x-modifiers}}{{#-first}}, flags={{/-first}}re.{{.}}{{^-last}} | {{/-last}}{{/vendorExtensions.x-modifiers}}): # noqa: E501 + if '{{paramName}}' in params and not re.search(r'{{{vendorExtensions.x-regex}}}', params['{{paramName}}']{{#vendorExtensions.x-modifiers}}{{#-first}}, flags={{/-first}}re.{{.}}{{^-last}} | {{/-last}}{{/vendorExtensions.x-modifiers}}): # noqa: E501 raise ValueError("Invalid value for parameter `{{paramName}}` when calling `{{operationId}}`, must conform to the pattern `{{{pattern}}}`") # noqa: E501 {{/pattern}} {{#maxItems}} @@ -205,7 +205,7 @@ class {{classname}}(object): files=local_var_files, response_type={{#returnType}}'{{returnType}}'{{/returnType}}{{^returnType}}None{{/returnType}}, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), diff --git a/modules/swagger-codegen/src/main/resources/python/api_client.mustache b/modules/swagger-codegen/src/main/resources/python/api_client.mustache index 2107376746c2..a6fe533dd947 100644 --- a/modules/swagger-codegen/src/main/resources/python/api_client.mustache +++ b/modules/swagger-codegen/src/main/resources/python/api_client.mustache @@ -266,12 +266,12 @@ class ApiClient(object): if type(klass) == str: if klass.startswith('list['): - sub_kls = re.match('list\[(.*)\]', klass).group(1) + sub_kls = re.match(r'list\[(.*)\]', klass).group(1) return [self.__deserialize(sub_data, sub_kls) for sub_data in data] if klass.startswith('dict('): - sub_kls = re.match('dict\(([^,]*), (.*)\)', klass).group(2) + sub_kls = re.match(r'dict\(([^,]*), (.*)\)', klass).group(2) return {k: self.__deserialize(v, sub_kls) for k, v in six.iteritems(data)} @@ -295,12 +295,12 @@ class ApiClient(object): def call_api(self, resource_path, method, path_params=None, query_params=None, header_params=None, body=None, post_params=None, files=None, - response_type=None, auth_settings=None, async=None, + response_type=None, auth_settings=None, async_req=None, _return_http_data_only=None, collection_formats=None, _preload_content=True, _request_timeout=None): """Makes the HTTP request (synchronous) and returns deserialized data. - To make an async request, set the async parameter. + To make an async request, set the async_req parameter. :param resource_path: Path to method endpoint. :param method: Method to call. @@ -315,7 +315,7 @@ class ApiClient(object): :param response: Response data type. :param files dict: key -> filename, value -> filepath, for `multipart/form-data`. - :param async bool: execute request asynchronously + :param async_req bool: execute request asynchronously :param _return_http_data_only: response data without head status code and headers :param collection_formats: dict of collection formats for path, query, @@ -328,13 +328,13 @@ class ApiClient(object): timeout. It can also be a pair (tuple) of (connection, read) timeouts. :return: - If async parameter is True, + If async_req parameter is True, the request will be called asynchronously. The method will return the request thread. - If parameter async is False or missing, + If parameter async_req is False or missing, then the method will return the response directly. """ - if not async: + if not async_req: return self.__call_api(resource_path, method, path_params, query_params, header_params, body, post_params, files, diff --git a/modules/swagger-codegen/src/main/resources/python/model.mustache b/modules/swagger-codegen/src/main/resources/python/model.mustache index 3bdb5ed8cb85..3fc2747fe13d 100644 --- a/modules/swagger-codegen/src/main/resources/python/model.mustache +++ b/modules/swagger-codegen/src/main/resources/python/model.mustache @@ -149,8 +149,8 @@ class {{classname}}({{#parent}}{{parent}}{{/parent}}{{^parent}}object{{/parent}} raise ValueError("Invalid value for `{{name}}`, must be a value greater than {{^exclusiveMinimum}}or equal to {{/exclusiveMinimum}}`{{minimum}}`") # noqa: E501 {{/minimum}} {{#pattern}} - if {{name}} is not None and not re.search('{{{vendorExtensions.x-regex}}}', {{name}}{{#vendorExtensions.x-modifiers}}{{#-first}}, flags={{/-first}}re.{{.}}{{^-last}} | {{/-last}}{{/vendorExtensions.x-modifiers}}): # noqa: E501 - raise ValueError("Invalid value for `{{name}}`, must be a follow pattern or equal to `{{{pattern}}}`") # noqa: E501 + if {{name}} is not None and not re.search(r'{{{vendorExtensions.x-regex}}}', {{name}}{{#vendorExtensions.x-modifiers}}{{#-first}}, flags={{/-first}}re.{{.}}{{^-last}} | {{/-last}}{{/vendorExtensions.x-modifiers}}): # noqa: E501 + raise ValueError(r"Invalid value for `{{name}}`, must be a follow pattern or equal to `{{{pattern}}}`") # noqa: E501 {{/pattern}} {{#maxItems}} if {{name}} is not None and len({{name}}) > {{maxItems}}: diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/dart/DartModelEnumTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/dart/DartModelEnumTest.java new file mode 100644 index 000000000000..af7334eade93 --- /dev/null +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/dart/DartModelEnumTest.java @@ -0,0 +1,100 @@ +package io.swagger.codegen.dart; + +import io.swagger.codegen.CodegenModel; +import io.swagger.codegen.CodegenProperty; +import io.swagger.codegen.DefaultCodegen; +import io.swagger.codegen.languages.DartClientCodegen; +import io.swagger.models.ComposedModel; +import io.swagger.models.Model; +import io.swagger.models.ModelImpl; +import io.swagger.models.RefModel; +import io.swagger.models.properties.Property; +import io.swagger.models.properties.StringProperty; +import org.testng.Assert; +import org.testng.annotations.Test; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +@SuppressWarnings("static-method") +public class DartModelEnumTest { + + @Test(description = "convert a dart model with an enum") + public void converterTest() { + final StringProperty enumProperty = new StringProperty(); + enumProperty.setEnum(Arrays.asList("VALUE1", "VALUE2", "VALUE3")); + final ModelImpl model = new ModelImpl().property("name", enumProperty); + + final DefaultCodegen codegen = new DartClientCodegen(); + final CodegenModel cm = codegen.fromModel("sample", model); + + Assert.assertEquals(cm.vars.size(), 1); + + final CodegenProperty enumVar = cm.vars.get(0); + Assert.assertEquals(enumVar.baseName, "name"); + Assert.assertEquals(enumVar.datatype, "String"); + Assert.assertEquals(enumVar.datatypeWithEnum, "NameEnum"); + Assert.assertEquals(enumVar.name, "name"); + Assert.assertEquals(enumVar.defaultValue, "null"); + Assert.assertEquals(enumVar.baseType, "String"); + Assert.assertTrue(enumVar.isEnum); + } + + @Test(description = "not override identical parent enums") + public void overrideEnumTest() { + final StringProperty identicalEnumProperty = new StringProperty(); + identicalEnumProperty.setEnum(Arrays.asList("VALUE1", "VALUE2", "VALUE3")); + + final StringProperty subEnumProperty = new StringProperty(); + subEnumProperty.setEnum(Arrays.asList("SUB1", "SUB2", "SUB3")); + + // Add one enum property to the parent + final Map parentProperties = new HashMap(); + parentProperties.put("sharedThing", identicalEnumProperty); + + // Add TWO enums to the subType model; one of which is identical to the one in parent class + final Map subProperties = new HashMap(); + subProperties.put("sharedThing", identicalEnumProperty); + subProperties.put("unsharedThing", identicalEnumProperty); + + final ModelImpl parentModel = new ModelImpl(); + parentModel.setProperties(parentProperties); + parentModel.name("parentModel"); + + final ModelImpl subModel = new ModelImpl(); + subModel.setProperties(subProperties); + subModel.name("subModel"); + + final ComposedModel model = new ComposedModel() + .parent(new RefModel(parentModel.getName())) + .child(subModel) + .interfaces(new ArrayList()); + + final DefaultCodegen codegen = new DartClientCodegen(); + final Map allModels = new HashMap(); + allModels.put(parentModel.getName(), parentModel); + allModels.put(subModel.getName(), subModel); + + final CodegenModel cm = codegen.fromModel("sample", model, allModels); + + Assert.assertEquals(cm.name, "sample"); + Assert.assertEquals(cm.classname, "Sample"); + Assert.assertEquals(cm.parent, "ParentModel"); + Assert.assertTrue(cm.imports.contains("ParentModel")); + + Assert.assertEquals(cm.vars.size(), 2); + System.out.println(cm.vars); + CodegenProperty enumVar = cm.vars.get(0); + Assert.assertEquals(enumVar.baseName, "sharedThing"); + Assert.assertEquals(enumVar.datatype, "String"); + Assert.assertEquals(enumVar.datatypeWithEnum, "SharedThingEnum"); + Assert.assertTrue(enumVar.isEnum); + enumVar = cm.vars.get(1); + Assert.assertEquals(enumVar.baseName, "unsharedThing"); + Assert.assertEquals(enumVar.datatype, "String"); + Assert.assertEquals(enumVar.datatypeWithEnum, "UnsharedThingEnum"); + Assert.assertTrue(enumVar.isEnum); + } +} diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/AkkaScalaClientOptionsProvider.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/AkkaScalaClientOptionsProvider.java index cf0142a9e0ee..ca4a90605744 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/AkkaScalaClientOptionsProvider.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/AkkaScalaClientOptionsProvider.java @@ -4,8 +4,6 @@ import com.google.common.collect.ImmutableMap; -import com.sun.org.apache.bcel.internal.classfile.Code; - import java.util.Map; public class AkkaScalaClientOptionsProvider implements OptionsProvider { diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/swaggeryaml/SwaggerYamlGeneratorTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/swaggeryaml/SwaggerYamlGeneratorTest.java index 0af57229725c..d8279a784425 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/swaggeryaml/SwaggerYamlGeneratorTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/swaggeryaml/SwaggerYamlGeneratorTest.java @@ -1,17 +1,24 @@ package io.swagger.codegen.swaggeryaml; import io.swagger.codegen.ClientOptInput; +import io.swagger.codegen.CodegenConstants; import io.swagger.codegen.DefaultGenerator; import io.swagger.codegen.config.CodegenConfigurator; import org.apache.commons.io.FileUtils; import org.junit.rules.TemporaryFolder; import org.testng.Assert; +import org.testng.annotations.AfterClass; import org.testng.annotations.Test; import java.io.File; public class SwaggerYamlGeneratorTest { + @AfterClass + public void cleanup() { + System.clearProperty(CodegenConstants.SUPPORTING_FILES); + } + @Test public void testLongText() throws Exception { final String LONG_DESCRIPTION_SAMPLE = "Are creatures of the cosmos Rig Veda? Trillion! Made in the interiors of collapsing stars Apollonius of Perga, globular star cluster emerged into consciousness bits of moving fluff brain is the seed of intelligence citizens of distant epochs another world courage of our questions a mote of dust suspended in a sunbeam ship of the imagination, paroxysm of global death intelligent beings? Two ghostly white figures in coveralls and helmets are soflty dancing hearts of the stars brain is the seed of intelligence quasar, Drake Equation billions upon billions and billions upon billions upon billions upon billions upon billions upon billions upon billions"; diff --git a/modules/swagger-codegen/src/test/resources/2_0/petstore-flask.yaml b/modules/swagger-codegen/src/test/resources/2_0/petstore-flask.yaml new file mode 100644 index 000000000000..c5ffa98faf6b --- /dev/null +++ b/modules/swagger-codegen/src/test/resources/2_0/petstore-flask.yaml @@ -0,0 +1,704 @@ +swagger: '2.0' +info: + description: 'This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.' + version: 1.0.0 + title: Swagger Petstore + termsOfService: 'http://swagger.io/terms/' + contact: + email: apiteam@swagger.io + license: + name: Apache-2.0 + url: 'http://www.apache.org/licenses/LICENSE-2.0.html' +host: petstore.swagger.io +basePath: /v2 +tags: + - name: pet + description: Everything about your Pets + externalDocs: + description: Find out more + url: 'http://swagger.io' + - name: store + description: Access to Petstore orders + - name: user + description: Operations about user + externalDocs: + description: Find out more about our store + url: 'http://swagger.io' +schemes: + - http +paths: + /pet: + post: + tags: + - pet + summary: Add a new pet to the store + description: '' + operationId: addPet + consumes: + - application/json + - application/xml + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: Pet object that needs to be added to the store + required: true + schema: + $ref: '#/definitions/Pet' + responses: + '405': + description: Invalid input + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + put: + tags: + - pet + summary: Update an existing pet + description: '' + operationId: updatePet + consumes: + - application/json + - application/xml + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: Pet object that needs to be added to the store + required: true + schema: + $ref: '#/definitions/Pet' + responses: + '400': + description: Invalid ID supplied + '404': + description: Pet not found + '405': + description: Validation exception + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + /pet/findByStatus: + get: + tags: + - pet + summary: Finds Pets by status + description: Multiple status values can be provided with comma separated strings + operationId: findPetsByStatus + produces: + - application/xml + - application/json + parameters: + - name: status + in: query + description: Status values that need to be considered for filter + required: true + type: array + items: + type: string + enum: + - available + - pending + - sold + default: available + collectionFormat: csv + responses: + '200': + description: successful operation + schema: + type: array + items: + $ref: '#/definitions/Pet' + '400': + description: Invalid status value + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + /pet/findByTags: + get: + tags: + - pet + summary: Finds Pets by tags + description: 'Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.' + operationId: findPetsByTags + produces: + - application/xml + - application/json + parameters: + - name: tags + in: query + description: Tags to filter by + required: true + type: array + items: + type: string + collectionFormat: csv + responses: + '200': + description: successful operation + schema: + type: array + items: + $ref: '#/definitions/Pet' + '400': + description: Invalid tag value + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + deprecated: true + '/pet/{petId}': + get: + tags: + - pet + summary: Find pet by ID + description: Returns a single pet + operationId: getPetById + produces: + - application/xml + - application/json + parameters: + - name: petId + in: path + description: ID of pet to return + required: true + type: integer + format: int64 + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/Pet' + '400': + description: Invalid ID supplied + '404': + description: Pet not found + security: + - api_key: [] + post: + tags: + - pet + summary: Updates a pet in the store with form data + description: '' + operationId: updatePetWithForm + consumes: + - application/x-www-form-urlencoded + produces: + - application/xml + - application/json + parameters: + - name: petId + in: path + description: ID of pet that needs to be updated + required: true + type: integer + format: int64 + - name: name + in: formData + description: Updated name of the pet + required: false + type: string + - name: status + in: formData + description: Updated status of the pet + required: false + type: string + responses: + '405': + description: Invalid input + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + delete: + tags: + - pet + summary: Deletes a pet + description: '' + operationId: deletePet + produces: + - application/xml + - application/json + parameters: + - name: api_key + in: header + required: false + type: string + - name: petId + in: path + description: Pet id to delete + required: true + type: integer + format: int64 + responses: + '400': + description: Invalid pet value + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + '/pet/{petId}/uploadImage': + post: + tags: + - pet + summary: uploads an image + description: '' + operationId: uploadFile + consumes: + - multipart/form-data + produces: + - application/json + parameters: + - name: petId + in: path + description: ID of pet to update + required: true + type: integer + format: int64 + - name: additionalMetadata + in: formData + description: Additional data to pass to server + required: false + type: string + - name: file + in: formData + description: file to upload + required: false + type: file + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/ApiResponse' + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + /store/inventory: + get: + tags: + - store + summary: Returns pet inventories by status + description: Returns a map of status codes to quantities + operationId: getInventory + produces: + - application/json + parameters: [] + responses: + '200': + description: successful operation + schema: + type: object + additionalProperties: + type: integer + format: int32 + security: + - api_key: [] + /store/order: + post: + tags: + - store + summary: Place an order for a pet + description: '' + operationId: placeOrder + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: order placed for purchasing the pet + required: true + schema: + $ref: '#/definitions/Order' + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/Order' + '400': + description: Invalid Order + '/store/order/{orderId}': + get: + tags: + - store + summary: Find purchase order by ID + description: 'For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions' + operationId: getOrderById + produces: + - application/xml + - application/json + parameters: + - name: orderId + in: path + description: ID of pet that needs to be fetched + required: true + type: integer + maximum: 5 + minimum: 1 + format: int64 + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/Order' + '400': + description: Invalid ID supplied + '404': + description: Order not found + delete: + tags: + - store + summary: Delete purchase order by ID + description: For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + operationId: deleteOrder + produces: + - application/xml + - application/json + parameters: + - name: orderId + in: path + description: ID of the order that needs to be deleted + required: true + type: string + responses: + '400': + description: Invalid ID supplied + '404': + description: Order not found + /user: + post: + tags: + - user + summary: Create user + description: This can only be done by the logged in user. + operationId: createUser + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: Created user object + required: true + schema: + $ref: '#/definitions/User' + responses: + default: + description: successful operation + /user/createWithArray: + post: + tags: + - user + summary: Creates list of users with given input array + description: '' + operationId: createUsersWithArrayInput + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: List of user object + required: true + schema: + type: array + items: + $ref: '#/definitions/User' + responses: + default: + description: successful operation + /user/createWithList: + post: + tags: + - user + summary: Creates list of users with given input array + description: '' + operationId: createUsersWithListInput + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: List of user object + required: true + schema: + type: array + items: + $ref: '#/definitions/User' + responses: + default: + description: successful operation + /user/login: + get: + tags: + - user + summary: Logs user into the system + description: '' + operationId: loginUser + produces: + - application/xml + - application/json + parameters: + - name: username + in: query + description: The user name for login + required: true + type: string + - name: password + in: query + description: The password for login in clear text + required: true + type: string + responses: + '200': + description: successful operation + schema: + type: string + headers: + X-Rate-Limit: + type: integer + format: int32 + description: calls per hour allowed by the user + X-Expires-After: + type: string + format: date-time + description: date in UTC when toekn expires + '400': + description: Invalid username/password supplied + /user/logout: + get: + tags: + - user + summary: Logs out current logged in user session + description: '' + operationId: logoutUser + produces: + - application/xml + - application/json + parameters: [] + responses: + default: + description: successful operation + '/user/{username}': + get: + tags: + - user + summary: Get user by user name + description: '' + operationId: getUserByName + produces: + - application/xml + - application/json + parameters: + - name: username + in: path + description: 'The name that needs to be fetched. Use user1 for testing.' + required: true + type: string + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/User' + '400': + description: Invalid username supplied + '404': + description: User not found + put: + tags: + - user + summary: Updated user + description: This can only be done by the logged in user. + operationId: updateUser + produces: + - application/xml + - application/json + parameters: + - name: username + in: path + description: name that need to be deleted + required: true + type: string + - in: body + name: body + description: Updated user object + required: true + schema: + $ref: '#/definitions/User' + responses: + '400': + description: Invalid user supplied + '404': + description: User not found + delete: + tags: + - user + summary: Delete user + description: This can only be done by the logged in user. + operationId: deleteUser + produces: + - application/xml + - application/json + parameters: + - name: username + in: path + description: The name that needs to be deleted + required: true + type: string + responses: + '400': + description: Invalid username supplied + '404': + description: User not found +securityDefinitions: + petstore_auth: + type: oauth2 + authorizationUrl: 'http://petstore.swagger.io/api/oauth/dialog' + flow: implicit + scopes: + 'write:pets': modify pets in your account + 'read:pets': read your pets + api_key: + type: apiKey + name: api_key + in: header +definitions: + Order: + title: Pet Order + description: An order for a pets from the pet store + type: object + properties: + id: + type: integer + format: int64 + petId: + type: integer + format: int64 + quantity: + type: integer + format: int32 + shipDate: + type: string + format: date-time + status: + type: string + description: Order Status + enum: + - placed + - approved + - delivered + complete: + type: boolean + default: false + xml: + name: Order + Category: + title: Pet category + description: A category for a pet + type: object + properties: + id: + type: integer + format: int64 + name: + type: string + xml: + name: Category + User: + title: a User + description: A User who is purchasing from the pet store + type: object + properties: + id: + type: integer + format: int64 + username: + type: string + firstName: + type: string + lastName: + type: string + email: + type: string + password: + type: string + phone: + type: string + userStatus: + type: integer + format: int32 + description: User Status + xml: + name: User + Tag: + title: Pet Tag + description: A tag for a pet + type: object + properties: + id: + type: integer + format: int64 + name: + type: string + xml: + name: Tag + Pet: + title: a Pet + description: A pet for sale in the pet store + type: object + required: + - name + - photoUrls + properties: + id: + type: integer + format: int64 + category: + $ref: '#/definitions/Category' + name: + type: string + example: doggie + photoUrls: + type: array + xml: + name: photoUrl + wrapped: true + items: + type: string + tags: + type: array + xml: + name: tag + wrapped: true + items: + $ref: '#/definitions/Tag' + status: + type: string + description: pet status in the store + enum: + - available + - pending + - sold + xml: + name: Pet + ApiResponse: + title: An uploaded response + description: Describes the result of uploading an image resource + type: object + properties: + code: + type: integer + format: int32 + type: + type: string + message: + type: string diff --git a/pom.xml b/pom.xml index 2c8f65aacb48..b3d9abde5adc 100644 --- a/pom.xml +++ b/pom.xml @@ -936,7 +936,7 @@ 1.0.36 2.11.1 3.3.0 - 1.5.20 + 1.5.21 2.4 1.2 4.8.1 diff --git a/pom.xml.bash b/pom.xml.bash index 81d32a299717..9343e7ffa9f6 100644 --- a/pom.xml.bash +++ b/pom.xml.bash @@ -912,7 +912,7 @@ 1.0.36 2.11.1 3.3.0 - 1.5.20 + 1.5.21 2.4 1.2 4.8.1 diff --git a/pom.xml.circleci b/pom.xml.circleci index f5e33074790d..cf5da79d9bfe 100644 --- a/pom.xml.circleci +++ b/pom.xml.circleci @@ -960,7 +960,7 @@ 1.0.36 2.11.1 3.3.0 - 1.5.20 + 1.5.21 2.4 1.2 4.8.1 diff --git a/pom.xml.circleci.java7 b/pom.xml.circleci.java7 index 95161d11f07b..48506835c1f8 100644 --- a/pom.xml.circleci.java7 +++ b/pom.xml.circleci.java7 @@ -942,7 +942,7 @@ 1.0.36 2.11.1 3.3.0 - 1.5.20 + 1.5.21 2.4 1.2 4.8.1 diff --git a/pom.xml.ios b/pom.xml.ios index 9b10a5b554b6..d8c6330f4294 100644 --- a/pom.xml.ios +++ b/pom.xml.ios @@ -920,7 +920,7 @@ 1.0.36 2.11.1 3.3.0 - 1.5.20 + 1.5.21 2.4 1.2 4.8.1 diff --git a/pom.xml.jenkins b/pom.xml.jenkins new file mode 100644 index 000000000000..e59e1dd99016 --- /dev/null +++ b/pom.xml.jenkins @@ -0,0 +1,1018 @@ + + + org.sonatype.oss + oss-parent + 5 + + 4.0.0 + io.swagger + swagger-codegen-project + pom + swagger-codegen-project + 2.4.0-SNAPSHOT + https://github.com/swagger-api/swagger-codegen + + scm:git:git@github.com:swagger-api/swagger-codegen.git + scm:git:git@github.com:swagger-api/swagger-codegen.git + https://github.com/swagger-api/swagger-codegen + + + + fehguy + Tony Tam + fehguy@gmail.com + + + wing328 + William Cheng + wing328hk@gmail.com + + + + github + https://github.com/swagger-api/swagger-codegen/issues + + + + swagger-swaggersocket + https://groups.google.com/forum/#!forum/swagger-swaggersocket + + + + + Apache License 2.0 + http://www.apache.org/licenses/LICENSE-2.0.html + repo + + + + src/main/java + target/classes + + + org.jvnet.wagon-svn + wagon-svn + 1.8 + + + org.apache.maven.wagon + wagon-ssh-external + 1.0-alpha-6 + + + org.apache.maven.wagon + wagon-webdav + 1.0-beta-1 + + + install + target + ${project.artifactId}-${project.version} + + + net.revelc.code + formatter-maven-plugin + + + + 1.7 + 1.7 + 1.7 + LF + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${surefire-version} + + none:none + -XX:+StartAttachListener + + + + test-testng + test + + test + + + none:none + org.testng:testng + + + + + + maven-dependency-plugin + + + package + + copy-dependencies + + + ${project.build.directory}/lib + + + + + + maven-compiler-plugin + 3.6.1 + + 1.7 + 1.7 + + + + org.apache.maven.plugins + maven-jar-plugin + 3.0.2 + + + + development + ${project.url} + ${project.version} + io.swagger + + + + + + org.apache.maven.plugins + maven-site-plugin + 3.5.1 + + + org.apache.maven.plugins + maven-release-plugin + 2.5.3 + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.10.4 + + true + 1.7 + UTF-8 + 1g + ${javadoc.package.exclude} + + + + attach-javadocs + verify + + jar + + + + + + org.apache.maven.plugins + maven-source-plugin + 3.0.1 + + + attach-sources + verify + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-enforcer-plugin + 1.4.1 + + + enforce-versions + + enforce + + + + + 3.2.5 + + + + + + + + + + + net.revelc.code + formatter-maven-plugin + 0.5.2 + + + + + + + release-profile + + true + + + + + net.alchim31.maven + scala-maven-plugin + + + + compile + testCompile + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + + + add-source + prepare-package + + add-source + + + + src/main/scala + + + + + + + + + + release-sign-artifacts + + + performRelease + true + + + + + + org.apache.maven.plugins + maven-gpg-plugin + + + sign-artifacts + verify + + sign + + + + + + + + + + android-client + + + env + java + + + + samples/client/petstore/android/volley + + + + bash-client + + + env + java + + + + samples/client/petstore/bash + + + + clojure-client + + + env + clojure + + + + samples/client/petstore/clojure + + + + haskell-http-client + + + env + haskell-http-client + + + + samples/client/petstore/haskell-http-client + + + + haskell-http-client-integration-test + + + env + haskell-http-client + + + + samples/client/petstore/haskell-http-client/tests-integration + + + + java-client-jersey1 + + + env + java + + + + samples/client/petstore/java/jersey1 + + + + java-client-jersey2 + + + env + java + + + + samples/client/petstore/java/jersey2 + + + + java-client-jersey2-java6 + + + env + java + + + + samples/client/petstore/java/jersey2-java6 + + + + java-client-okhttp-gson + + + env + java + + + + samples/client/petstore/java/okhttp-gson + + + + java-client-okhttp-gson-parcelable + + + env + java + + + + samples/client/petstore/java/okhttp-gson/parcelableModel + + + + java-client-retrofit + + + env + java + + + + samples/client/petstore/java/retrofit + + + + java-client-retrofit2 + + + env + java + + + + samples/client/petstore/java/retrofit2 + + + + java-client-retrofit2-rx + + + env + java + + + + samples/client/petstore/java/retrofit2rx + + + + java-client-feign + + + env + java + + + + samples/client/petstore/java/feign + + + + javascript-client + + + env + javascript + + + + samples/client/petstore/javascript + + + + scala-client + + + env + scala + + + + samples/client/petstore/scala + + + + objc-client + + + env + objc + + + + samples/client/petstore/objc/default/SwaggerClientTests + + + + swift-client + + + env + swift + + + + samples/client/petstore/swift/default/SwaggerClientTests + + + + java-msf4j-server + + + env + java + + + + samples/server/petstore/java-msf4/ + + + + jaxrs-cxf-server + + + env + java + + + + samples/server/petstore/jaxrs-cxf + + + + jaxrs-resteasy-server + + + env + java + + + + samples/server/petstore/jaxrs-resteasy/default + + + + jaxrs-resteasy-server-joda + + + env + java + + + + samples/server/petstore/jaxrs-resteasy/joda + + + + jaxrs-resteasy-eap-server + + + env + java + + + + samples/server/petstore/jaxrs-resteasy/eap + + + + jaxrs-resteasy-eap-server-java8 + + + env + java + + + + samples/server/petstore/jaxrs-resteasy/eap-java8 + + + + jaxrs-resteasy-eap-server-joda + + + env + java + + + + samples/server/petstore/jaxrs-resteasy/eap-joda + + + + jaxrs-server + + + env + java + + + + samples/server/petstore/jaxrs/jersey2 + + + + jaxrs-server-jersey1 + + + env + java + + + + samples/server/petstore/jaxrs/jersey1 + + + + typescript-fetch-client-tests-default + + + env + java + + + + samples/client/petstore/typescript-fetch/tests/default + + + + typescript-fetch-client-builds-default + + + env + java + + + + samples/client/petstore/typescript-fetch/builds/default + + + + typescript-fetch-client-builds-es6-target + + + env + java + + + + samples/client/petstore/typescript-fetch/builds/es6-target + + + + typescript-fetch-client-builds-with-npm-version + + + env + java + + + + samples/client/petstore/typescript-fetch/builds/with-npm-version + + + + typescript-angularjs-client + + + env + java + + + + samples/client/petstore/typescript-angularjs/npm + + + + typescript-node-npm-client + + + env + java + + + + samples/client/petstore/typescript-node/npm + + + + python-client + + + env + java + + + + samples/client/petstore/python + + + + ruby-client + + + env + java + + + + samples/client/petstore/ruby + + + + go-client + + + env + java + + + + samples/client/petstore/go + + + + spring-mvc + + + env + java + + + + samples/server/petstore/spring-mvc + + + + springboot-useoptional + + + env + java + + + + samples/server/petstore/springboot-useoptional + + + + springboot-beanvalidation + + + env + java + + + + samples/server/petstore/springboot-beanvalidation + + + + springboot + + + env + java + + + + samples/server/petstore/springboot + + + + spring-cloud + + + env + java + + + + samples/client/petstore/spring-cloud + + + + scalatra-server + + + env + java + + + + samples/server/petstore/scalatra + + + + java-inflector + + + env + java + + + + samples/server/petstore/java-inflector + + + + java-undertowr + + + env + java + + + + samples/server/petstore/undertow + + + + samples + + + env + samples + + + + + + samples/client/petstore/akka-scala + samples/client/petstore/scala + + samples/client/petstore/clojure + samples/client/petstore/java/feign + samples/client/petstore/java/jersey1 + samples/client/petstore/java/jersey2 + samples/client/petstore/java/okhttp-gson + samples/client/petstore/java/retrofit + samples/client/petstore/java/retrofit2 + samples/client/petstore/java/retrofit2rx + samples/client/petstore/jaxrs-cxf-client + samples/client/petstore/java/resttemplate + samples/client/petstore/java/resttemplate-withXml + samples/client/petstore/java/vertx + samples/client/petstore/java/resteasy + samples/client/petstore/java/google-api-client + samples/client/petstore/java/rest-assured + samples/client/petstore/kotlin/ + samples/client/petstore/kotlin-threetenbp/ + samples/client/petstore/kotlin-string/ + + samples/client/petstore/go + + samples/server/petstore/java-vertx/rx + samples/server/petstore/java-vertx/async + samples/server/petstore/java-inflector + samples/server/petstore/java-pkmst + samples/server/petstore/java-play-framework + samples/server/petstore/java-play-framework-no-wrap-calls + samples/server/petstore/java-play-framework-no-swagger-ui + samples/server/petstore/java-play-framework-no-interface + samples/server/petstore/java-play-framework-no-exception-handling + samples/server/petstore/java-play-framework-no-bean-validation + samples/server/petstore/java-play-framework-fake-endpoints + samples/server/petstore/java-play-framework-controller-only + samples/server/petstore/java-play-framework-api-package-override + samples/server/petstore/undertow + samples/server/petstore/jaxrs/jersey1 + samples/server/petstore/jaxrs/jersey2 + samples/server/petstore/jaxrs/jersey1-useTags + samples/server/petstore/jaxrs/jersey2-useTags + samples/server/petstore/jaxrs-datelib-j8 + samples/server/petstore/jaxrs-resteasy/default + samples/server/petstore/jaxrs-resteasy/eap + samples/server/petstore/jaxrs-resteasy/eap-joda + samples/server/petstore/jaxrs-resteasy/eap-java8 + samples/server/petstore/jaxrs-resteasy/joda + samples/server/petstore/spring-mvc + samples/server/petstore/spring-mvc-j8-async + samples/server/petstore/spring-mvc-j8-localdatetime + samples/client/petstore/spring-cloud + samples/server/petstore/springboot + samples/server/petstore/springboot-beanvalidation + samples/server/petstore/springboot-useoptional + samples/server/petstore/jaxrs-cxf + samples/server/petstore/jaxrs-cxf-annotated-base-path + samples/server/petstore/jaxrs-cxf-cdi + samples/server/petstore/jaxrs-cxf-non-spring-app + samples/server/petstore/java-msf4j + samples/server/petstore/jaxrs-spec-interface + samples/server/petstore/scala-lagom-server + samples/server/petstore/scalatra + + + + + modules/swagger-codegen + modules/swagger-codegen-cli + modules/swagger-codegen-maven-plugin + modules/swagger-generator + + + target/site + + + net.alchim31.maven + scala-maven-plugin + ${scala-maven-plugin-version} + + + org.apache.maven.plugins + maven-jxr-plugin + 2.5 + + true + + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 2.9 + + + + project-team + + + + + + + + + + junit + junit + ${junit-version} + test + + + org.testng + testng + ${testng-version} + test + + + org.jmockit + jmockit + ${jmockit-version} + test + + + + + + sonatype-snapshots + https://oss.sonatype.org/content/repositories/snapshots + + true + + + + + 1.0.36 + 2.11.1 + 3.3.0 + 1.5.21 + 2.4 + 1.2 + 4.8.1 + 2.8.9 + 1.0.0 + 3.4 + 1.7.12 + 3.2.1 + 1.12 + 6.9.6 + 2.19.1 + 1.25 + 0.9.10 + + diff --git a/pom.xml.jenkins.java7 b/pom.xml.jenkins.java7 new file mode 100644 index 000000000000..45eab4818070 --- /dev/null +++ b/pom.xml.jenkins.java7 @@ -0,0 +1,942 @@ + + + org.sonatype.oss + oss-parent + 5 + + 4.0.0 + io.swagger + swagger-codegen-project + pom + swagger-codegen-project + 2.4.0-SNAPSHOT + https://github.com/swagger-api/swagger-codegen + + scm:git:git@github.com:swagger-api/swagger-codegen.git + scm:git:git@github.com:swagger-api/swagger-codegen.git + https://github.com/swagger-api/swagger-codegen + + + + fehguy + Tony Tam + fehguy@gmail.com + + + wing328 + William Cheng + wing328hk@gmail.com + + + + github + https://github.com/swagger-api/swagger-codegen/issues + + + + swagger-swaggersocket + https://groups.google.com/forum/#!forum/swagger-swaggersocket + + + + + Apache License 2.0 + http://www.apache.org/licenses/LICENSE-2.0.html + repo + + + + src/main/java + target/classes + + + org.jvnet.wagon-svn + wagon-svn + 1.8 + + + org.apache.maven.wagon + wagon-ssh-external + 1.0-alpha-6 + + + org.apache.maven.wagon + wagon-webdav + 1.0-beta-1 + + + install + target + ${project.artifactId}-${project.version} + + + net.revelc.code + formatter-maven-plugin + + + + 1.7 + 1.7 + 1.7 + LF + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${surefire-version} + + none:none + -XX:+StartAttachListener + + + + test-testng + test + + test + + + none:none + org.testng:testng + + + + + + maven-dependency-plugin + + + package + + copy-dependencies + + + ${project.build.directory}/lib + + + + + + maven-compiler-plugin + 3.6.1 + + 1.7 + 1.7 + + + + org.apache.maven.plugins + maven-jar-plugin + 3.0.2 + + + + development + ${project.url} + ${project.version} + io.swagger + + + + + + org.apache.maven.plugins + maven-site-plugin + 3.5.1 + + + org.apache.maven.plugins + maven-release-plugin + 2.5.3 + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.10.4 + + true + 1.7 + UTF-8 + 1g + ${javadoc.package.exclude} + + + + attach-javadocs + verify + + jar + + + + + + org.apache.maven.plugins + maven-source-plugin + 3.0.1 + + + attach-sources + verify + + jar-no-fork + + + + + + + + + net.revelc.code + formatter-maven-plugin + 0.5.2 + + + + + + + release-profile + + true + + + + + net.alchim31.maven + scala-maven-plugin + + + + compile + testCompile + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + + + add-source + prepare-package + + add-source + + + + src/main/scala + + + + + + + + + + release-sign-artifacts + + + performRelease + true + + + + + + org.apache.maven.plugins + maven-gpg-plugin + + + sign-artifacts + verify + + sign + + + + + + + + + + android-client + + + env + java + + + + samples/client/petstore/android/volley + + + + bash-client + + + env + java + + + + samples/client/petstore/bash + + + + clojure-client + + + env + clojure + + + + samples/client/petstore/clojure + + + + java-client-jersey1 + + + env + java + + + + samples/client/petstore/java/jersey1 + + + + java-client-jersey2 + + + env + java + + + + samples/client/petstore/java/jersey2 + + + + java-client-jersey2-java6 + + + env + java + + + + samples/client/petstore/java/jersey2-java6 + + + + java-client-okhttp-gson + + + env + java + + + + samples/client/petstore/java/okhttp-gson + + + + java-client-okhttp-gson-parcelable + + + env + java + + + + samples/client/petstore/java/okhttp-gson/parcelableModel + + + + java-client-retrofit + + + env + java + + + + samples/client/petstore/java/retrofit + + + + java-client-retrofit2 + + + env + java + + + + samples/client/petstore/java/retrofit2 + + + + java-client-retrofit2-rx + + + env + java + + + + samples/client/petstore/java/retrofit2rx + + + + java-client-feign + + + env + java + + + + samples/client/petstore/java/feign + + + + javascript-client + + + env + javascript + + + + samples/client/petstore/javascript + + + + scala-client + + + env + scala + + + + samples/client/petstore/scala + + + + objc-client + + + env + objc + + + + samples/client/petstore/objc/default/SwaggerClientTests + + + + swift-client + + + env + swift + + + + samples/client/petstore/swift/default/SwaggerClientTests + + + + java-msf4j-server + + + env + java + + + + samples/server/petstore/java-msf4/ + + + + jaxrs-cxf-server + + + env + java + + + + samples/server/petstore/jaxrs-cxf + + + + jaxrs-resteasy-server + + + env + java + + + + samples/server/petstore/jaxrs-resteasy/default + + + + jaxrs-resteasy-server-joda + + + env + java + + + + samples/server/petstore/jaxrs-resteasy/joda + + + + jaxrs-resteasy-eap-server + + + env + java + + + + samples/server/petstore/jaxrs-resteasy/eap + + + + jaxrs-resteasy-eap-server-java8 + + + env + java + + + + samples/server/petstore/jaxrs-resteasy/eap-java8 + + + + jaxrs-resteasy-eap-server-joda + + + env + java + + + + samples/server/petstore/jaxrs-resteasy/eap-joda + + + + jaxrs-server + + + env + java + + + + samples/server/petstore/jaxrs/jersey2 + + + + jaxrs-server-jersey1 + + + env + java + + + + samples/server/petstore/jaxrs/jersey1 + + + + typescript-fetch-client-tests-default + + + env + java + + + + samples/client/petstore/typescript-fetch/tests/default + + + + typescript-fetch-client-builds-default + + + env + java + + + + samples/client/petstore/typescript-fetch/builds/default + + + + typescript-fetch-client-builds-es6-target + + + env + java + + + + samples/client/petstore/typescript-fetch/builds/es6-target + + + + typescript-fetch-client-builds-with-npm-version + + + env + java + + + + samples/client/petstore/typescript-fetch/builds/with-npm-version + + + + typescript-angularjs-client + + + env + java + + + + samples/client/petstore/typescript-angularjs/npm + + + + typescript-node-npm-client + + + env + java + + + + samples/client/petstore/typescript-node/npm + + + + python-client + + + env + java + + + + samples/client/petstore/python + + + + ruby-client + + + env + java + + + + samples/client/petstore/ruby + + + + go-client + + + env + java + + + + samples/client/petstore/go + + + + spring-mvc + + + env + java + + + + samples/server/petstore/spring-mvc + + + + springboot-useoptional + + + env + java + + + + samples/server/petstore/springboot-useoptional + + + + springboot-beanvalidation + + + env + java + + + + samples/server/petstore/springboot-beanvalidation + + + + springboot + + + env + java + + + + samples/server/petstore/springboot + + + + spring-cloud + + + env + java + + + + samples/client/petstore/spring-cloud + + + + scalatra-server + + + env + java + + + + samples/server/petstore/scalatra + + + + java-inflector + + + env + java + + + + samples/server/petstore/java-inflector + + + + java-undertowr + + + env + java + + + + samples/server/petstore/undertow + + + + samples + + + env + samples + + + + + + samples/client/petstore/akka-scala + samples/client/petstore/scala + samples/client/petstore/clojure + samples/client/petstore/java/feign + samples/client/petstore/java/jersey1 + samples/client/petstore/java/jersey2 + samples/client/petstore/java/okhttp-gson + samples/client/petstore/java/retrofit + samples/client/petstore/java/retrofit2 + samples/client/petstore/java/retrofit2rx + samples/client/petstore/java/resttemplate + samples/client/petstore/java/resttemplate-withXml + samples/client/petstore/java/google-api-client + samples/client/petstore/kotlin/ + samples/client/petstore/go + + samples/server/petstore/java-inflector + samples/server/petstore/undertow + samples/server/petstore/jaxrs/jersey1 + samples/server/petstore/jaxrs/jersey2 + samples/server/petstore/jaxrs/jersey1-useTags + samples/server/petstore/jaxrs/jersey2-useTags + samples/server/petstore/jaxrs-resteasy/default + samples/server/petstore/jaxrs-resteasy/eap + samples/server/petstore/jaxrs-resteasy/eap-joda + samples/server/petstore/jaxrs-resteasy/joda + samples/server/petstore/spring-mvc + samples/client/petstore/spring-cloud + samples/server/petstore/springboot + samples/server/petstore/springboot-beanvalidation + samples/server/petstore/jaxrs-spec-interface + + + + + modules/swagger-codegen + modules/swagger-codegen-cli + modules/swagger-codegen-maven-plugin + modules/swagger-generator + + + target/site + + + net.alchim31.maven + scala-maven-plugin + ${scala-maven-plugin-version} + + + org.apache.maven.plugins + maven-jxr-plugin + 2.5 + + true + + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 2.9 + + + + project-team + + + + + + + + + + junit + junit + ${junit-version} + test + + + org.testng + testng + ${testng-version} + test + + + org.jmockit + jmockit + ${jmockit-version} + test + + + + + + sonatype-snapshots + https://oss.sonatype.org/content/repositories/snapshots + + true + + + + + 1.0.36 + 2.11.1 + 3.3.0 + 1.5.21 + 2.4 + 1.2 + 4.8.1 + 2.8.9 + 1.0.0 + 3.4 + 1.7.12 + 3.2.1 + 1.12 + 6.9.6 + 2.19.1 + 1.25 + 0.9.10 + + diff --git a/pom.xml.shippable b/pom.xml.shippable index 489ceb233aee..3cba1f61fcb3 100644 --- a/pom.xml.shippable +++ b/pom.xml.shippable @@ -914,7 +914,7 @@ 1.0.36 2.11.1 3.3.0 - 1.5.20 + 1.5.21 2.4 1.2 4.8.1 diff --git a/pom.xml.travis b/pom.xml.travis new file mode 100644 index 000000000000..b3d9abde5adc --- /dev/null +++ b/pom.xml.travis @@ -0,0 +1,954 @@ + + + org.sonatype.oss + oss-parent + 5 + + 4.0.0 + io.swagger + swagger-codegen-project + pom + swagger-codegen-project + 2.4.0-SNAPSHOT + https://github.com/swagger-api/swagger-codegen + + scm:git:git@github.com:swagger-api/swagger-codegen.git + scm:git:git@github.com:swagger-api/swagger-codegen.git + https://github.com/swagger-api/swagger-codegen + + + + fehguy + Tony Tam + fehguy@gmail.com + + + wing328 + William Cheng + wing328hk@gmail.com + + + + github + https://github.com/swagger-api/swagger-codegen/issues + + + + swagger-swaggersocket + https://groups.google.com/forum/#!forum/swagger-swaggersocket + + + + + Apache License 2.0 + http://www.apache.org/licenses/LICENSE-2.0.html + repo + + + + src/main/java + target/classes + + + org.jvnet.wagon-svn + wagon-svn + 1.8 + + + org.apache.maven.wagon + wagon-ssh-external + 1.0-alpha-6 + + + org.apache.maven.wagon + wagon-webdav + 1.0-beta-1 + + + install + target + ${project.artifactId}-${project.version} + + + net.revelc.code + formatter-maven-plugin + + + + 1.7 + 1.7 + 1.7 + LF + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${surefire-version} + + none:none + -XX:+StartAttachListener + + + + test-testng + test + + test + + + none:none + org.testng:testng + + + + + + maven-dependency-plugin + + + package + + copy-dependencies + + + ${project.build.directory}/lib + + + + + + maven-compiler-plugin + 3.6.1 + + 1.7 + 1.7 + + + + org.apache.maven.plugins + maven-jar-plugin + 3.0.2 + + + + development + ${project.url} + ${project.version} + io.swagger + + + + + + org.apache.maven.plugins + maven-site-plugin + 3.5.1 + + + org.apache.maven.plugins + maven-release-plugin + 2.5.3 + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.10.4 + + true + 1.7 + UTF-8 + 1g + ${javadoc.package.exclude} + + + + attach-javadocs + verify + + jar + + + + + + org.apache.maven.plugins + maven-source-plugin + 3.0.1 + + + attach-sources + verify + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-enforcer-plugin + 1.4.1 + + + enforce-versions + + enforce + + + + + 3.2.5 + + + + + + + + + + + net.revelc.code + formatter-maven-plugin + 0.5.2 + + + + + + + release-profile + + true + + + + + net.alchim31.maven + scala-maven-plugin + + + + compile + testCompile + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + + + add-source + prepare-package + + add-source + + + + src/main/scala + + + + + + + + + + release-sign-artifacts + + + performRelease + true + + + + + + org.apache.maven.plugins + maven-gpg-plugin + + + sign-artifacts + verify + + sign + + + + + + + + + + android-client + + + env + java + + + + samples/client/petstore/android/volley + + + + bash-client + + + env + java + + + + samples/client/petstore/bash + + + + clojure-client + + + env + clojure + + + + samples/client/petstore/clojure + + + + haskell-http-client + + + env + haskell-http-client + + + + samples/client/petstore/haskell-http-client + + + + haskell-http-client-integration-test + + + env + haskell-http-client + + + + samples/client/petstore/haskell-http-client/tests-integration + + + + java-client-jersey1 + + + env + java + + + + samples/client/petstore/java/jersey1 + + + + java-client-jersey2 + + + env + java + + + + samples/client/petstore/java/jersey2 + + + + java-client-jersey2-java6 + + + env + java + + + + samples/client/petstore/java/jersey2-java6 + + + + java-client-okhttp-gson + + + env + java + + + + samples/client/petstore/java/okhttp-gson + + + + java-client-okhttp-gson-parcelable + + + env + java + + + + samples/client/petstore/java/okhttp-gson/parcelableModel + + + + java-client-retrofit + + + env + java + + + + samples/client/petstore/java/retrofit + + + + java-client-retrofit2 + + + env + java + + + + samples/client/petstore/java/retrofit2 + + + + java-client-retrofit2-rx + + + env + java + + + + samples/client/petstore/java/retrofit2rx + + + + java-client-feign + + + env + java + + + + samples/client/petstore/java/feign + + + + javascript-client + + + env + javascript + + + + samples/client/petstore/javascript + + + + scala-client + + + env + scala + + + + samples/client/petstore/scala + + + + objc-client + + + env + objc + + + + samples/client/petstore/objc/default/SwaggerClientTests + + + + swift-client + + + env + swift + + + + samples/client/petstore/swift/default/SwaggerClientTests + + + + java-msf4j-server + + + env + java + + + + samples/server/petstore/java-msf4/ + + + + jaxrs-cxf-server + + + env + java + + + + samples/server/petstore/jaxrs-cxf + + + + jaxrs-resteasy-server + + + env + java + + + + samples/server/petstore/jaxrs-resteasy/default + + + + jaxrs-resteasy-server-joda + + + env + java + + + + samples/server/petstore/jaxrs-resteasy/joda + + + + jaxrs-resteasy-eap-server + + + env + java + + + + samples/server/petstore/jaxrs-resteasy/eap + + + + jaxrs-resteasy-eap-server-joda + + + env + java + + + + samples/server/petstore/jaxrs-resteasy/eap-joda + + + + jaxrs-server + + + env + java + + + + samples/server/petstore/jaxrs/jersey2 + + + + jaxrs-server-jersey1 + + + env + java + + + + samples/server/petstore/jaxrs/jersey1 + + + + typescript-fetch-client-tests-default + + + env + java + + + + samples/client/petstore/typescript-fetch/tests/default + + + + typescript-fetch-client-builds-default + + + env + java + + + + samples/client/petstore/typescript-fetch/builds/default + + + + typescript-fetch-client-builds-es6-target + + + env + java + + + + samples/client/petstore/typescript-fetch/builds/es6-target + + + + typescript-fetch-client-builds-with-npm-version + + + env + java + + + + samples/client/petstore/typescript-fetch/builds/with-npm-version + + + + typescript-angularjs-client + + + env + java + + + + samples/client/petstore/typescript-angularjs/npm + + + + typescript-node-npm-client + + + env + java + + + + samples/client/petstore/typescript-node/npm + + + + python-client + + + env + java + + + + samples/client/petstore/python + + + + ruby-client + + + env + java + + + + samples/client/petstore/ruby + + + + go-client + + + env + java + + + + samples/client/petstore/go + + + + spring-mvc + + + env + java + + + + samples/server/petstore/spring-mvc + + + + springboot-beanvalidation + + + env + java + + + + samples/server/petstore/springboot-beanvalidation + + + + springboot + + + env + java + + + + samples/server/petstore/springboot + + + + spring-cloud + + + env + java + + + + samples/client/petstore/spring-cloud + + + + scalatra-server + + + env + java + + + + samples/server/petstore/scalatra + + + + java-inflector + + + env + java + + + + samples/server/petstore/java-inflector + + + + java-undertowr + + + env + java + + + + samples/server/petstore/undertow + + + + samples + + + env + samples + + + + + + samples/client/petstore/php/SwaggerClient-php + samples/client/petstore/ruby + samples/client/petstore/scala + samples/client/petstore/akka-scala + samples/client/petstore/javascript + samples/client/petstore/python + + samples/client/petstore/python-asyncio + samples/client/petstore/typescript-fetch/builds/default + samples/client/petstore/typescript-fetch/builds/es6-target + samples/client/petstore/typescript-fetch/builds/with-npm-version + samples/client/petstore/typescript-fetch/tests/default + samples/client/petstore/typescript-node/npm + + + + samples/client/petstore/typescript-angular-v4/npm + samples/client/petstore/typescript-angular-v4.3/npm + samples/client/petstore/typescript-angular-v5/npm + samples/client/petstore/typescript-angular-v6/npm + + + + + + modules/swagger-codegen + modules/swagger-codegen-cli + modules/swagger-codegen-maven-plugin + modules/swagger-generator + + + target/site + + + net.alchim31.maven + scala-maven-plugin + ${scala-maven-plugin-version} + + + org.apache.maven.plugins + maven-jxr-plugin + 2.5 + + true + + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 2.9 + + + + project-team + + + + + + + + + + junit + junit + ${junit-version} + test + + + org.testng + testng + ${testng-version} + test + + + org.jmockit + jmockit + ${jmockit-version} + test + + + + + + sonatype-snapshots + https://oss.sonatype.org/content/repositories/snapshots + + true + + + + + 1.0.36 + 2.11.1 + 3.3.0 + 1.5.21 + 2.4 + 1.2 + 4.8.1 + 2.8.9 + 1.0.0 + 3.4 + 1.7.12 + 3.2.1 + 1.12 + 6.9.6 + 2.19.1 + 1.25 + 0.9.10 + + diff --git a/samples/client/petstore-security-test/javascript/package.json b/samples/client/petstore-security-test/javascript/package.json index 9fae64eb6469..74747f6b4d86 100644 --- a/samples/client/petstore-security-test/javascript/package.json +++ b/samples/client/petstore-security-test/javascript/package.json @@ -11,7 +11,7 @@ "fs": false }, "dependencies": { - "superagent": "3.5.2" + "superagent": "3.7.0" }, "devDependencies": { "mocha": "~2.3.4", diff --git a/samples/client/petstore/cpprest/api/UserApi.h b/samples/client/petstore/cpprest/api/UserApi.h index 204718f71dee..192dd6a4de4c 100644 --- a/samples/client/petstore/cpprest/api/UserApi.h +++ b/samples/client/petstore/cpprest/api/UserApi.h @@ -86,7 +86,7 @@ class UserApi /// /// /// - /// The name that needs to be fetched. Use user1 for testing. + /// The name that needs to be fetched. Use user1 for testing. pplx::task> getUserByName( utility::string_t username ); diff --git a/samples/client/petstore/cpprest/model/Amount.cpp b/samples/client/petstore/cpprest/model/Amount.cpp new file mode 100644 index 000000000000..554717dc3cd0 --- /dev/null +++ b/samples/client/petstore/cpprest/model/Amount.cpp @@ -0,0 +1,106 @@ +/** + * Swagger Petstore + * This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. + * + * OpenAPI spec version: 1.0.0 + * Contact: apiteam@swagger.io + * + * NOTE: This class is auto generated by the swagger code generator 2.4.0-SNAPSHOT. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +#include "Amount.h" + +namespace io { +namespace swagger { +namespace client { +namespace model { + +Amount::Amount() +{ + m_Value = 0.0; +} + +Amount::~Amount() +{ +} + +void Amount::validate() +{ + // TODO: implement validation +} + +web::json::value Amount::toJson() const +{ + web::json::value val = web::json::value::object(); + + val[utility::conversions::to_string_t("value")] = ModelBase::toJson(m_Value); + val[utility::conversions::to_string_t("currency")] = ModelBase::toJson(m_Currency); + + return val; +} + +void Amount::fromJson(web::json::value& val) +{ + setValue(ModelBase::doubleFromJson(val[utility::conversions::to_string_t("value")])); + std::shared_ptr newCurrency(new Currency()); + newCurrency->fromJson(val[utility::conversions::to_string_t("currency")]); + setCurrency( newCurrency ); +} + +void Amount::toMultipart(std::shared_ptr multipart, const utility::string_t& prefix) const +{ + utility::string_t namePrefix = prefix; + if(namePrefix.size() > 0 && namePrefix.substr(namePrefix.size() - 1) != utility::conversions::to_string_t(".")) + { + namePrefix += utility::conversions::to_string_t("."); + } + + multipart->add(ModelBase::toHttpContent(namePrefix + utility::conversions::to_string_t("value"), m_Value)); + m_Currency->toMultipart(multipart, utility::conversions::to_string_t("currency.")); +} + +void Amount::fromMultiPart(std::shared_ptr multipart, const utility::string_t& prefix) +{ + utility::string_t namePrefix = prefix; + if(namePrefix.size() > 0 && namePrefix.substr(namePrefix.size() - 1) != utility::conversions::to_string_t(".")) + { + namePrefix += utility::conversions::to_string_t("."); + } + + setValue(ModelBase::doubleFromHttpContent(multipart->getContent(utility::conversions::to_string_t("value")))); + std::shared_ptr newCurrency(new Currency()); + newCurrency->fromMultiPart(multipart, utility::conversions::to_string_t("currency.")); + setCurrency( newCurrency ); +} + +double Amount::getValue() const +{ + return m_Value; +} + + +void Amount::setValue(double value) +{ + m_Value = value; + +} +std::shared_ptr Amount::getCurrency() const +{ + return m_Currency; +} + + +void Amount::setCurrency(std::shared_ptr value) +{ + m_Currency = value; + +} +} +} +} +} + diff --git a/samples/client/petstore/cpprest/model/Amount.h b/samples/client/petstore/cpprest/model/Amount.h new file mode 100644 index 000000000000..ec9707f8e8d9 --- /dev/null +++ b/samples/client/petstore/cpprest/model/Amount.h @@ -0,0 +1,77 @@ +/** + * Swagger Petstore + * This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. + * + * OpenAPI spec version: 1.0.0 + * Contact: apiteam@swagger.io + * + * NOTE: This class is auto generated by the swagger code generator 2.4.0-SNAPSHOT. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +/* + * Amount.h + * + * some description + */ + +#ifndef IO_SWAGGER_CLIENT_MODEL_Amount_H_ +#define IO_SWAGGER_CLIENT_MODEL_Amount_H_ + + +#include "../ModelBase.h" + +#include "Currency.h" + +namespace io { +namespace swagger { +namespace client { +namespace model { + +/// +/// some description +/// +class Amount + : public ModelBase +{ +public: + Amount(); + virtual ~Amount(); + + ///////////////////////////////////////////// + /// ModelBase overrides + + void validate() override; + + web::json::value toJson() const override; + void fromJson(web::json::value& json) override; + + void toMultipart(std::shared_ptr multipart, const utility::string_t& namePrefix) const override; + void fromMultiPart(std::shared_ptr multipart, const utility::string_t& namePrefix) override; + + ///////////////////////////////////////////// + /// Amount members + + /// + /// some description + /// + double getValue() const; + void setValue(double value); + /// + /// + /// + std::shared_ptr getCurrency() const; + void setCurrency(std::shared_ptr value); + +protected: + double m_Value; + std::shared_ptr m_Currency; + }; + +} +} +} +} + +#endif /* IO_SWAGGER_CLIENT_MODEL_Amount_H_ */ diff --git a/samples/client/petstore/cpprest/model/ApiResponse.cpp b/samples/client/petstore/cpprest/model/ApiResponse.cpp index 9ccd6d5919a6..9d345c204337 100644 --- a/samples/client/petstore/cpprest/model/ApiResponse.cpp +++ b/samples/client/petstore/cpprest/model/ApiResponse.cpp @@ -62,15 +62,27 @@ void ApiResponse::fromJson(web::json::value& val) { if(val.has_field(utility::conversions::to_string_t("code"))) { - setCode(ModelBase::int32_tFromJson(val[utility::conversions::to_string_t("code")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("code")]; + if(!fieldValue.is_null()) + { + setCode(ModelBase::int32_tFromJson(fieldValue)); + } } if(val.has_field(utility::conversions::to_string_t("type"))) { - setType(ModelBase::stringFromJson(val[utility::conversions::to_string_t("type")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("type")]; + if(!fieldValue.is_null()) + { + setType(ModelBase::stringFromJson(fieldValue)); + } } if(val.has_field(utility::conversions::to_string_t("message"))) { - setMessage(ModelBase::stringFromJson(val[utility::conversions::to_string_t("message")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("message")]; + if(!fieldValue.is_null()) + { + setMessage(ModelBase::stringFromJson(fieldValue)); + } } } diff --git a/samples/client/petstore/cpprest/model/Category.cpp b/samples/client/petstore/cpprest/model/Category.cpp index 21a2dc52e745..54f72f441931 100644 --- a/samples/client/petstore/cpprest/model/Category.cpp +++ b/samples/client/petstore/cpprest/model/Category.cpp @@ -56,11 +56,19 @@ void Category::fromJson(web::json::value& val) { if(val.has_field(utility::conversions::to_string_t("id"))) { - setId(ModelBase::int64_tFromJson(val[utility::conversions::to_string_t("id")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("id")]; + if(!fieldValue.is_null()) + { + setId(ModelBase::int64_tFromJson(fieldValue)); + } } if(val.has_field(utility::conversions::to_string_t("name"))) { - setName(ModelBase::stringFromJson(val[utility::conversions::to_string_t("name")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("name")]; + if(!fieldValue.is_null()) + { + setName(ModelBase::stringFromJson(fieldValue)); + } } } diff --git a/samples/client/petstore/cpprest/model/Currency.cpp b/samples/client/petstore/cpprest/model/Currency.cpp new file mode 100644 index 000000000000..9cc454c1d185 --- /dev/null +++ b/samples/client/petstore/cpprest/model/Currency.cpp @@ -0,0 +1,71 @@ +/** + * Swagger Petstore + * This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. + * + * OpenAPI spec version: 1.0.0 + * Contact: apiteam@swagger.io + * + * NOTE: This class is auto generated by the swagger code generator 2.4.0-SNAPSHOT. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + + +#include "Currency.h" + +namespace io { +namespace swagger { +namespace client { +namespace model { + +Currency::Currency() +{ +} + +Currency::~Currency() +{ +} + +void Currency::validate() +{ + // TODO: implement validation +} + +web::json::value Currency::toJson() const +{ + web::json::value val = web::json::value::object(); + + + return val; +} + +void Currency::fromJson(web::json::value& val) +{ +} + +void Currency::toMultipart(std::shared_ptr multipart, const utility::string_t& prefix) const +{ + utility::string_t namePrefix = prefix; + if(namePrefix.size() > 0 && namePrefix.substr(namePrefix.size() - 1) != utility::conversions::to_string_t(".")) + { + namePrefix += utility::conversions::to_string_t("."); + } + +} + +void Currency::fromMultiPart(std::shared_ptr multipart, const utility::string_t& prefix) +{ + utility::string_t namePrefix = prefix; + if(namePrefix.size() > 0 && namePrefix.substr(namePrefix.size() - 1) != utility::conversions::to_string_t(".")) + { + namePrefix += utility::conversions::to_string_t("."); + } + +} + +} +} +} +} + diff --git a/samples/client/petstore/cpprest/model/Currency.h b/samples/client/petstore/cpprest/model/Currency.h new file mode 100644 index 000000000000..2b2ba4fa424c --- /dev/null +++ b/samples/client/petstore/cpprest/model/Currency.h @@ -0,0 +1,64 @@ +/** + * Swagger Petstore + * This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. + * + * OpenAPI spec version: 1.0.0 + * Contact: apiteam@swagger.io + * + * NOTE: This class is auto generated by the swagger code generator 2.4.0-SNAPSHOT. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +/* + * Currency.h + * + * some description + */ + +#ifndef IO_SWAGGER_CLIENT_MODEL_Currency_H_ +#define IO_SWAGGER_CLIENT_MODEL_Currency_H_ + + +#include "../ModelBase.h" + + +namespace io { +namespace swagger { +namespace client { +namespace model { + +/// +/// some description +/// +class Currency + : public ModelBase +{ +public: + Currency(); + virtual ~Currency(); + + ///////////////////////////////////////////// + /// ModelBase overrides + + void validate() override; + + web::json::value toJson() const override; + void fromJson(web::json::value& json) override; + + void toMultipart(std::shared_ptr multipart, const utility::string_t& namePrefix) const override; + void fromMultiPart(std::shared_ptr multipart, const utility::string_t& namePrefix) override; + + ///////////////////////////////////////////// + /// Currency members + + +protected: +}; + +} +} +} +} + +#endif /* IO_SWAGGER_CLIENT_MODEL_Currency_H_ */ diff --git a/samples/client/petstore/cpprest/model/Order.cpp b/samples/client/petstore/cpprest/model/Order.cpp index 3a8326ae27bc..cf39ee4130ff 100644 --- a/samples/client/petstore/cpprest/model/Order.cpp +++ b/samples/client/petstore/cpprest/model/Order.cpp @@ -80,27 +80,51 @@ void Order::fromJson(web::json::value& val) { if(val.has_field(utility::conversions::to_string_t("id"))) { - setId(ModelBase::int64_tFromJson(val[utility::conversions::to_string_t("id")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("id")]; + if(!fieldValue.is_null()) + { + setId(ModelBase::int64_tFromJson(fieldValue)); + } } if(val.has_field(utility::conversions::to_string_t("petId"))) { - setPetId(ModelBase::int64_tFromJson(val[utility::conversions::to_string_t("petId")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("petId")]; + if(!fieldValue.is_null()) + { + setPetId(ModelBase::int64_tFromJson(fieldValue)); + } } if(val.has_field(utility::conversions::to_string_t("quantity"))) { - setQuantity(ModelBase::int32_tFromJson(val[utility::conversions::to_string_t("quantity")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("quantity")]; + if(!fieldValue.is_null()) + { + setQuantity(ModelBase::int32_tFromJson(fieldValue)); + } } if(val.has_field(utility::conversions::to_string_t("shipDate"))) { - setShipDate(ModelBase::dateFromJson(val[utility::conversions::to_string_t("shipDate")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("shipDate")]; + if(!fieldValue.is_null()) + { + setShipDate(ModelBase::dateFromJson(fieldValue)); + } } if(val.has_field(utility::conversions::to_string_t("status"))) { - setStatus(ModelBase::stringFromJson(val[utility::conversions::to_string_t("status")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("status")]; + if(!fieldValue.is_null()) + { + setStatus(ModelBase::stringFromJson(fieldValue)); + } } if(val.has_field(utility::conversions::to_string_t("complete"))) { - setComplete(ModelBase::boolFromJson(val[utility::conversions::to_string_t("complete")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("complete")]; + if(!fieldValue.is_null()) + { + setComplete(ModelBase::boolFromJson(fieldValue)); + } } } diff --git a/samples/client/petstore/cpprest/model/Pet.cpp b/samples/client/petstore/cpprest/model/Pet.cpp index 91fda09b52bd..da90e0f05d8a 100644 --- a/samples/client/petstore/cpprest/model/Pet.cpp +++ b/samples/client/petstore/cpprest/model/Pet.cpp @@ -83,14 +83,19 @@ void Pet::fromJson(web::json::value& val) { if(val.has_field(utility::conversions::to_string_t("id"))) { - setId(ModelBase::int64_tFromJson(val[utility::conversions::to_string_t("id")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("id")]; + if(!fieldValue.is_null()) + { + setId(ModelBase::int64_tFromJson(fieldValue)); + } } if(val.has_field(utility::conversions::to_string_t("category"))) { - if(!val[utility::conversions::to_string_t("category")].is_null()) + web::json::value& fieldValue = val[utility::conversions::to_string_t("category")]; + if(!fieldValue.is_null()) { std::shared_ptr newItem(new Category()); - newItem->fromJson(val[utility::conversions::to_string_t("category")]); + newItem->fromJson(fieldValue); setCategory( newItem ); } } @@ -125,7 +130,11 @@ void Pet::fromJson(web::json::value& val) } if(val.has_field(utility::conversions::to_string_t("status"))) { - setStatus(ModelBase::stringFromJson(val[utility::conversions::to_string_t("status")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("status")]; + if(!fieldValue.is_null()) + { + setStatus(ModelBase::stringFromJson(fieldValue)); + } } } diff --git a/samples/client/petstore/cpprest/model/Pet.h b/samples/client/petstore/cpprest/model/Pet.h index 20925af7471e..dc90fd3eaa96 100644 --- a/samples/client/petstore/cpprest/model/Pet.h +++ b/samples/client/petstore/cpprest/model/Pet.h @@ -22,10 +22,10 @@ #include "../ModelBase.h" -#include "Tag.h" -#include #include "Category.h" +#include #include +#include "Tag.h" namespace io { namespace swagger { diff --git a/samples/client/petstore/cpprest/model/Tag.cpp b/samples/client/petstore/cpprest/model/Tag.cpp index be77d315d13d..e1cd52211997 100644 --- a/samples/client/petstore/cpprest/model/Tag.cpp +++ b/samples/client/petstore/cpprest/model/Tag.cpp @@ -56,11 +56,19 @@ void Tag::fromJson(web::json::value& val) { if(val.has_field(utility::conversions::to_string_t("id"))) { - setId(ModelBase::int64_tFromJson(val[utility::conversions::to_string_t("id")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("id")]; + if(!fieldValue.is_null()) + { + setId(ModelBase::int64_tFromJson(fieldValue)); + } } if(val.has_field(utility::conversions::to_string_t("name"))) { - setName(ModelBase::stringFromJson(val[utility::conversions::to_string_t("name")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("name")]; + if(!fieldValue.is_null()) + { + setName(ModelBase::stringFromJson(fieldValue)); + } } } diff --git a/samples/client/petstore/cpprest/model/User.cpp b/samples/client/petstore/cpprest/model/User.cpp index 26447b3bd03a..a276ec231eb1 100644 --- a/samples/client/petstore/cpprest/model/User.cpp +++ b/samples/client/petstore/cpprest/model/User.cpp @@ -92,35 +92,67 @@ void User::fromJson(web::json::value& val) { if(val.has_field(utility::conversions::to_string_t("id"))) { - setId(ModelBase::int64_tFromJson(val[utility::conversions::to_string_t("id")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("id")]; + if(!fieldValue.is_null()) + { + setId(ModelBase::int64_tFromJson(fieldValue)); + } } if(val.has_field(utility::conversions::to_string_t("username"))) { - setUsername(ModelBase::stringFromJson(val[utility::conversions::to_string_t("username")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("username")]; + if(!fieldValue.is_null()) + { + setUsername(ModelBase::stringFromJson(fieldValue)); + } } if(val.has_field(utility::conversions::to_string_t("firstName"))) { - setFirstName(ModelBase::stringFromJson(val[utility::conversions::to_string_t("firstName")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("firstName")]; + if(!fieldValue.is_null()) + { + setFirstName(ModelBase::stringFromJson(fieldValue)); + } } if(val.has_field(utility::conversions::to_string_t("lastName"))) { - setLastName(ModelBase::stringFromJson(val[utility::conversions::to_string_t("lastName")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("lastName")]; + if(!fieldValue.is_null()) + { + setLastName(ModelBase::stringFromJson(fieldValue)); + } } if(val.has_field(utility::conversions::to_string_t("email"))) { - setEmail(ModelBase::stringFromJson(val[utility::conversions::to_string_t("email")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("email")]; + if(!fieldValue.is_null()) + { + setEmail(ModelBase::stringFromJson(fieldValue)); + } } if(val.has_field(utility::conversions::to_string_t("password"))) { - setPassword(ModelBase::stringFromJson(val[utility::conversions::to_string_t("password")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("password")]; + if(!fieldValue.is_null()) + { + setPassword(ModelBase::stringFromJson(fieldValue)); + } } if(val.has_field(utility::conversions::to_string_t("phone"))) { - setPhone(ModelBase::stringFromJson(val[utility::conversions::to_string_t("phone")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("phone")]; + if(!fieldValue.is_null()) + { + setPhone(ModelBase::stringFromJson(fieldValue)); + } } if(val.has_field(utility::conversions::to_string_t("userStatus"))) { - setUserStatus(ModelBase::int32_tFromJson(val[utility::conversions::to_string_t("userStatus")])); + web::json::value& fieldValue = val[utility::conversions::to_string_t("userStatus")]; + if(!fieldValue.is_null()) + { + setUserStatus(ModelBase::int32_tFromJson(fieldValue)); + } } } diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/.gitignore b/samples/client/petstore/dart-jaguar/flutter_petstore/.gitignore new file mode 100644 index 000000000000..eb15c3d27cab --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/.gitignore @@ -0,0 +1,10 @@ +.DS_Store +.atom/ +.idea +.packages +.pub/ +build/ +ios/.generated/ +packages +pubspec.lock +.flutter-plugins diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/.metadata b/samples/client/petstore/dart-jaguar/flutter_petstore/.metadata new file mode 100644 index 000000000000..a700013d0b75 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/.metadata @@ -0,0 +1,8 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 8f65fec5f5f7d7afbb0965f4a44bdb330a28fb19 + channel: alpha diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/README.md b/samples/client/petstore/dart-jaguar/flutter_petstore/README.md new file mode 100644 index 000000000000..bfad735663d2 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/README.md @@ -0,0 +1,8 @@ +# flutter_petstore + +Swagger petstore sample flutter + +## Getting Started + +For help getting started with Flutter, view our online +[documentation](http://flutter.io/). diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/android/.gitignore b/samples/client/petstore/dart-jaguar/flutter_petstore/android/.gitignore new file mode 100644 index 000000000000..1658458c9245 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/android/.gitignore @@ -0,0 +1,9 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +GeneratedPluginRegistrant.java diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/build.gradle b/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/build.gradle new file mode 100644 index 000000000000..535c29bb3893 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/build.gradle @@ -0,0 +1,52 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withInputStream { stream -> + localProperties.load(stream) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +apply plugin: 'com.android.application' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + compileSdkVersion 25 + buildToolsVersion '25.0.3' + + lintOptions { + disable 'InvalidPackage' + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "com.yourcompany.flutterpetstore" + minSdkVersion 16 + targetSdkVersion 25 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} + +dependencies { + androidTestCompile 'com.android.support:support-annotations:25.4.0' + androidTestCompile 'com.android.support.test:runner:0.5' + androidTestCompile 'com.android.support.test:rules:0.5' +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/AndroidManifest.xml b/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/AndroidManifest.xml new file mode 100644 index 000000000000..4532f5399883 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/java/com/yourcompany/flutterpetstore/MainActivity.java b/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/java/com/yourcompany/flutterpetstore/MainActivity.java new file mode 100644 index 000000000000..5c99c848d539 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/java/com/yourcompany/flutterpetstore/MainActivity.java @@ -0,0 +1,14 @@ +package com.yourcompany.flutterpetstore; + +import android.os.Bundle; + +import io.flutter.app.FlutterActivity; +import io.flutter.plugins.GeneratedPluginRegistrant; + +public class MainActivity extends FlutterActivity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + GeneratedPluginRegistrant.registerWith(this); + } +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/drawable/launch_background.xml b/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 000000000000..304732f88420 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000000..db77bb4b7b09 Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000000..17987b79bb8a Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000000..09d4391482be Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000000..d5f1c8d34e7a Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000000..4d6372eebdb2 Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/values/styles.xml b/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/values/styles.xml new file mode 100644 index 000000000000..00fa4417cfbe --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/android/app/src/main/res/values/styles.xml @@ -0,0 +1,8 @@ + + + + diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/android/build.gradle b/samples/client/petstore/dart-jaguar/flutter_petstore/android/build.gradle new file mode 100644 index 000000000000..77cbd091409d --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + repositories { + jcenter() + maven { + url "https://maven.google.com" + } + } + + dependencies { + classpath 'com.android.tools.build:gradle:2.3.3' + } +} + +allprojects { + repositories { + jcenter() + maven { + url "https://maven.google.com" + } + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" + project.evaluationDependsOn(':app') +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/android/gradle.properties b/samples/client/petstore/dart-jaguar/flutter_petstore/android/gradle.properties new file mode 100644 index 000000000000..8bd86f680510 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/android/gradle.properties @@ -0,0 +1 @@ +org.gradle.jvmargs=-Xmx1536M diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/android/gradle/wrapper/gradle-wrapper.jar b/samples/client/petstore/dart-jaguar/flutter_petstore/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 000000000000..13372aef5e24 Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/android/gradle/wrapper/gradle-wrapper.jar differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/android/gradle/wrapper/gradle-wrapper.properties b/samples/client/petstore/dart-jaguar/flutter_petstore/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000000..45e7f14e952d --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Fri Jun 23 08:50:38 CEST 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/android/gradlew b/samples/client/petstore/dart-jaguar/flutter_petstore/android/gradlew new file mode 100755 index 000000000000..9d82f7891513 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/android/gradlew @@ -0,0 +1,160 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/android/gradlew.bat b/samples/client/petstore/dart-jaguar/flutter_petstore/android/gradlew.bat new file mode 100644 index 000000000000..8a0b282aa688 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/android/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/android/settings.gradle b/samples/client/petstore/dart-jaguar/flutter_petstore/android/settings.gradle new file mode 100644 index 000000000000..115da6cb4f4d --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/android/settings.gradle @@ -0,0 +1,15 @@ +include ':app' + +def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() + +def plugins = new Properties() +def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') +if (pluginsFile.exists()) { + pluginsFile.withInputStream { stream -> plugins.load(stream) } +} + +plugins.each { name, path -> + def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() + include ":$name" + project(":$name").projectDir = pluginDirectory +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/.gitignore b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/.gitignore new file mode 100644 index 000000000000..38864eed23ef --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/.gitignore @@ -0,0 +1,41 @@ +.idea/ +.vagrant/ +.sconsign.dblite +.svn/ + +.DS_Store +*.swp +profile + +DerivedData/ +build/ +GeneratedPluginRegistrant.h +GeneratedPluginRegistrant.m + +*.pbxuser +*.mode1v3 +*.mode2v3 +*.perspectivev3 + +!default.pbxuser +!default.mode1v3 +!default.mode2v3 +!default.perspectivev3 + +xcuserdata + +*.moved-aside + +*.pyc +*sync/ +Icon? +.tags* + +/Flutter/app.flx +/Flutter/app.zip +/Flutter/App.framework +/Flutter/Flutter.framework +/Flutter/Generated.xcconfig +/ServiceDefinitions.json + +Pods/ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/AppFrameworkInfo.plist b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 000000000000..6c2de8086bcd --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + UIRequiredDeviceCapabilities + + arm64 + + MinimumOSVersion + 8.0 + + diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/Debug.xcconfig b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/Debug.xcconfig new file mode 100644 index 000000000000..592ceee85b89 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/Release.xcconfig b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/Release.xcconfig new file mode 100644 index 000000000000..592ceee85b89 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/AssetManifest.json b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/AssetManifest.json new file mode 100644 index 000000000000..03eaddffb9c0 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/AssetManifest.json @@ -0,0 +1 @@ +{"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"]} \ No newline at end of file diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/FontManifest.json b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/FontManifest.json new file mode 100644 index 000000000000..34bacb770fce --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/FontManifest.json @@ -0,0 +1 @@ +[{"fonts":[{"asset":"fonts/MaterialIcons-Regular.ttf"}],"family":"MaterialIcons"},{"family":"packages/cupertino_icons/CupertinoIcons","fonts":[{"asset":"packages/cupertino_icons/assets/CupertinoIcons.ttf"}]}] \ No newline at end of file diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/LICENSE b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/LICENSE new file mode 100644 index 000000000000..6c576faae65b --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/LICENSE @@ -0,0 +1,12514 @@ +analyzer +args +csslib +logging + +Copyright 2013, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- +async +collection +convert +crypto +mime +package_config +package_resolver +plugin +shelf_static +source_map_stack_trace +stream_channel +typed_data +utf +vm_service_client + +Copyright 2015, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- +auth_header + +Copyright (c) 2016, Ravi Teja Gudapati. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- +boolean_selector +front_end +kernel +meta +shelf_packages_handler +web_socket_channel + +Copyright 2016, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- +boringssl + +Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) +All rights reserved. + +This package is an SSL implementation written +by Eric Young (eay@cryptsoft.com). +The implementation was written so as to conform with Netscapes SSL. + +This library is free for commercial and non-commercial use as long as +the following conditions are aheared to. The following conditions +apply to all code found in this distribution, be it the RC4, RSA, +lhash, DES, etc., code; not just the SSL code. The SSL documentation +included with this distribution is covered by the same copyright terms +except that the holder is Tim Hudson (tjh@cryptsoft.com). + +Copyright remains Eric Young's, and as such any Copyright notices in +the code are not to be removed. +If this package is used in a product, Eric Young should be given attribution +as the author of the parts of the library used. +This can be in the form of a textual message at program startup or +in documentation (online or textual) provided with the package. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + "This product includes cryptographic software written by + Eric Young (eay@cryptsoft.com)" + The word 'cryptographic' can be left out if the rouines from the library + being used are not cryptographic related :-). +4. If you include any Windows specific code (or a derivative thereof) from + the apps directory (application code) you must include an acknowledgement: + "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + +THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +The licence and distribution terms for any publically available version or +derivative of this code cannot be changed. i.e. this code cannot simply be +copied and put under another distribution licence +[including the GNU Public Licence.] +-------------------------------------------------------------------------------- +boringssl + +Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) +All rights reserved. + +This package is an SSL implementation written +by Eric Young (eay@cryptsoft.com). +The implementation was written so as to conform with Netscapes SSL. + +This library is free for commercial and non-commercial use as long as +the following conditions are aheared to. The following conditions +apply to all code found in this distribution, be it the RC4, RSA, +lhash, DES, etc., code; not just the SSL code. The SSL documentation +included with this distribution is covered by the same copyright terms +except that the holder is Tim Hudson (tjh@cryptsoft.com). + +Copyright remains Eric Young's, and as such any Copyright notices in +the code are not to be removed. +If this package is used in a product, Eric Young should be given attribution +as the author of the parts of the library used. +This can be in the form of a textual message at program startup or +in documentation (online or textual) provided with the package. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + "This product includes cryptographic software written by + Eric Young (eay@cryptsoft.com)" + The word 'cryptographic' can be left out if the rouines from the library + being used are not cryptographic related :-). +4. If you include any Windows specific code (or a derivative thereof) from + the apps directory (application code) you must include an acknowledgement: + "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + +THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +The licence and distribution terms for any publically available version or +derivative of this code cannot be changed. i.e. this code cannot simply be +copied and put under another distribution licence +[including the GNU Public Licence.] +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 1998-2003 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 1998-2004 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 1999 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 1999-2002 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 1999-2003 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 1999-2007 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 1999-2008 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2000 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2000-2003 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2000-2005 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2001 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2001-2011 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2002-2006 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2003 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2004 Kungliga Tekniska Högskolan +(Royal Institute of Technology, Stockholm, Sweden). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the Institute nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2004 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2005 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2006 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2006,2007 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2008 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2010 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2011 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2011 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2012 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2013 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2014 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + "This product includes cryptographic software written by + Eric Young (eay@cryptsoft.com)" + The word 'cryptographic' can be left out if the rouines from the library + being used are not cryptographic related :-). +4. If you include any Windows specific code (or a derivative thereof) from + the apps directory (application code) you must include an acknowledgement: + "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + +THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +The licence and distribution terms for any publically available version or +derivative of this code cannot be changed. i.e. this code cannot simply be +copied and put under another distribution licence +[including the GNU Public Licence.] +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2014, Google Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2015 The OpenSSL Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2015, Google Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2015, Intel Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2015-2016 the fiat-crypto authors (see the AUTHORS file). + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2015-2016 the fiat-crypto authors (see the AUTHORS file). + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2016, Google Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2017, Google Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +-------------------------------------------------------------------------------- +boringssl + +Copyright (c) 2018, Google Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +-------------------------------------------------------------------------------- +boringssl + +Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +-------------------------------------------------------------------------------- +boringssl + +Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +-------------------------------------------------------------------------------- +boringssl + +Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + licensing@OpenSSL.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + +5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright 2003 Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright 2005 Nokia. All rights reserved. + +The portions of the attached software ("Contribution") is developed by +Nokia Corporation and is licensed pursuant to the OpenSSL open source +license. + +The Contribution, originally written by Mika Kousa and Pasi Eronen of +Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites +support (see RFC 4279) to OpenSSL. + +No patent licenses or other rights except those expressly stated in +the OpenSSL open source license shall be deemed granted or received +expressly, by implication, estoppel, or otherwise. + +No assurances are provided by Nokia that the Contribution does not +infringe the patent or other intellectual property rights of any third +party or that the license provides you with all the necessary rights +to make use of the Contribution. + +THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN +ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA +SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY +OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR +OTHERWISE. +-------------------------------------------------------------------------------- +boringssl + +Copyright 2005, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright 2006, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright 2006-2017 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +-------------------------------------------------------------------------------- +boringssl + +Copyright 2007, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright 2007-2016 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +-------------------------------------------------------------------------------- +boringssl + +Copyright 2008 Google Inc. +All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright 2008, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright 2009 Google Inc. +All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright 2009 Google Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright 2009, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +-------------------------------------------------------------------------------- +boringssl + +Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright (c) 2012, Intel Corporation. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +-------------------------------------------------------------------------------- +boringssl + +Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +-------------------------------------------------------------------------------- +boringssl + +Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright (c) 2014, Intel Corporation. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +-------------------------------------------------------------------------------- +boringssl + +Copyright 2015, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl + +Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +https://www.openssl.org/source/license.html +-------------------------------------------------------------------------------- +boringssl + +Copyright 2016 Brian Smith. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +-------------------------------------------------------------------------------- +boringssl + +The MIT License (MIT) + +Copyright (c) 2015-2016 the fiat-crypto authors (see +https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS). + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +-------------------------------------------------------------------------------- +boringssl +dart + +OpenSSL License + + ==================================================================== + Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + 3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + + 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + + 5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + + 6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + + THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. + ==================================================================== + + This product includes cryptographic software written by Eric Young + (eay@cryptsoft.com). This product includes software written by Tim + Hudson (tjh@cryptsoft.com). + +Original SSLeay License + +* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) +* All rights reserved. + +* This package is an SSL implementation written +* by Eric Young (eay@cryptsoft.com). +* The implementation was written so as to conform with Netscapes SSL. + +* This library is free for commercial and non-commercial use as long as +* the following conditions are aheared to. The following conditions +* apply to all code found in this distribution, be it the RC4, RSA, +* lhash, DES, etc., code; not just the SSL code. The SSL documentation +* included with this distribution is covered by the same copyright terms +* except that the holder is Tim Hudson (tjh@cryptsoft.com). + +* Copyright remains Eric Young's, and as such any Copyright notices in +* the code are not to be removed. +* If this package is used in a product, Eric Young should be given attribution +* as the author of the parts of the library used. +* This can be in the form of a textual message at program startup or +* in documentation (online or textual) provided with the package. + +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* 1. Redistributions of source code must retain the copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* 3. All advertising materials mentioning features or use of this software +* must display the following acknowledgement: +* "This product includes cryptographic software written by +* Eric Young (eay@cryptsoft.com)" +* The word 'cryptographic' can be left out if the rouines from the library +* being used are not cryptographic related :-). +* 4. If you include any Windows specific code (or a derivative thereof) from +* the apps directory (application code) you must include an acknowledgement: +* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + +* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND +* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +* SUCH DAMAGE. + +* The licence and distribution terms for any publically available version or +* derivative of this code cannot be changed. i.e. this code cannot simply be +* copied and put under another distribution licence +* [including the GNU Public Licence.] + +ISC license used for completely new code in BoringSSL: + +/* Copyright (c) 2015, Google Inc. + + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +The code in third_party/fiat carries the MIT license: + +Copyright (c) 2015-2016 the fiat-crypto authors (see +https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS). + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Licenses for support code + +Parts of the TLS test suite are under the Go license. This code is not included +in BoringSSL (i.e. libcrypto and libssl) when compiled, however, so +distributing code linked against BoringSSL does not trigger this license: + +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +boringssl +observatory_pub_packages +skia +txt +vulkan + +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +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. +-------------------------------------------------------------------------------- +charcode +glob +http +http_multi_server +http_parser +json_rpc_2 +matcher +path +pool +pub_semver +shelf +shelf_web_socket +source_maps +source_span +stack_trace +string_scanner +test +watcher +yaml + +Copyright 2014, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- +client_cookie + +Copyright (c) 2017, teja. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- +colorama + +Copyright (c) 2010 Jonathan Hartley +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holders, nor those of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +cupertino_icons + + +The MIT License (MIT) + +Copyright (c) 2016 Drifty (http://drifty.com/) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +-------------------------------------------------------------------------------- +dart + +Copyright (c) 2003-2005 Tom Wu +Copyright (c) 2012 Adam Singer (adam@solvr.io) +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL, +INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER +RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF +THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +In addition, the following condition applies: + +All redistributions must retain an intact copy of this copyright notice +and disclaimer. +-------------------------------------------------------------------------------- +dart + +Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +dart + +Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +dart + +Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +dart + +Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +dart + +Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +dart + +Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +dart + +Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +dart + +Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +dart + +Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +dart + +Copyright 2009 The Go Authors. All rights reserved. +Use of this source code is governed by a BSD-style +license that can be found in the LICENSE file +-------------------------------------------------------------------------------- +dart + +Copyright 2012, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +double-conversion +icu + +Copyright 2006-2008 the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +double-conversion +icu + +Copyright 2010 the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +double-conversion +icu + +Copyright 2012 the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +engine + +Copyright (c) 2013 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +engine + +Copyright 2017 The Flutter Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +engine + +Copyright 2018 The Flutter Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +engine +garnet + +Copyright 2013 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +engine +garnet +icu +skia +topaz + +Copyright 2015 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +engine +garnet +icu +topaz + +Copyright 2014 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +engine +garnet +tonic +topaz + +Copyright 2016 The Fuchsia Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +engine +garnet +tonic +topaz + +Copyright 2017 The Fuchsia Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +engine +garnet +topaz +txt + +Copyright 2017 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +engine +icu +skia +topaz + +Copyright 2016 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +engine +skia +topaz + +Copyright 2018 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +files + +Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +files + +Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +files + +Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd + and Clark Cooper +Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Expat maintainers. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +files + +Copyright 2000, Clark Cooper +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +freetype2 + +Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +freetype2 + +Copyright (C) 1995-2002 Jean-loup Gailly. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +freetype2 + +Copyright (C) 1995-2002 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +freetype2 + +Copyright (C) 2000, 2001, 2002, 2003, 2006, 2010 by +Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +-------------------------------------------------------------------------------- +freetype2 + +Copyright (C) 2000-2004, 2006-2011, 2013, 2014 by +Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +-------------------------------------------------------------------------------- +freetype2 + +Copyright (C) 2001, 2002 by +Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +-------------------------------------------------------------------------------- +freetype2 + +Copyright (C) 2001, 2002, 2003, 2004 by +Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +-------------------------------------------------------------------------------- +freetype2 + +Copyright (C) 2001-2008, 2011, 2013, 2014 by +Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +-------------------------------------------------------------------------------- +freetype2 + +Copyright 1990, 1994, 1998 The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from The Open Group. +-------------------------------------------------------------------------------- +freetype2 + +Copyright 2000 Computing Research Labs, New Mexico State University +Copyright 2001-2004, 2011 Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +freetype2 + +Copyright 2000 Computing Research Labs, New Mexico State University +Copyright 2001-2014 + Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +freetype2 + +Copyright 2000 Computing Research Labs, New Mexico State University +Copyright 2001-2015 + Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +freetype2 + +Copyright 2000, 2001, 2004 by +Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +-------------------------------------------------------------------------------- +freetype2 + +Copyright 2000-2001, 2002 by +Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +-------------------------------------------------------------------------------- +freetype2 + +Copyright 2000-2001, 2003 by +Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +-------------------------------------------------------------------------------- +freetype2 + +Copyright 2000-2010, 2012-2014 by +Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +-------------------------------------------------------------------------------- +freetype2 + +Copyright 2001, 2002, 2012 Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +freetype2 + +Copyright 2003 by +Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +-------------------------------------------------------------------------------- +freetype2 + +The FreeType Project LICENSE + + 2006-Jan-27 + +Copyright 1996-2002, 2006 by +David Turner, Robert Wilhelm, and Werner Lemberg + +Introduction +============ + + The FreeType Project is distributed in several archive packages; + some of them may contain, in addition to the FreeType font engine, + various tools and contributions which rely on, or relate to, the + FreeType Project. + + This license applies to all files found in such packages, and + which do not fall under their own explicit license. The license + affects thus the FreeType font engine, the test programs, + documentation and makefiles, at the very least. + + This license was inspired by the BSD, Artistic, and IJG + (Independent JPEG Group) licenses, which all encourage inclusion + and use of free software in commercial and freeware products + alike. As a consequence, its main points are that: + + o We don't promise that this software works. However, we will be + interested in any kind of bug reports. (`as is' distribution) + + o You can use this software for whatever you want, in parts or + full form, without having to pay us. (`royalty-free' usage) + + o You may not pretend that you wrote this software. If you use + it, or only parts of it, in a program, you must acknowledge + somewhere in your documentation that you have used the + FreeType code. (`credits') + + We specifically permit and encourage the inclusion of this + software, with or without modifications, in commercial products. + We disclaim all warranties covering The FreeType Project and + assume no liability related to The FreeType Project. + + Finally, many people asked us for a preferred form for a + credit/disclaimer to use in compliance with this license. We thus + encourage you to use the following text: + + Portions of this software are copyright © The FreeType + Project (www.freetype.org). All rights reserved. + + Please replace with the value from the FreeType version you + actually use. + +Legal Terms +=========== + +0. Definitions + + Throughout this license, the terms `package', `FreeType Project', + and `FreeType archive' refer to the set of files originally + distributed by the authors (David Turner, Robert Wilhelm, and + Werner Lemberg) as the `FreeType Project', be they named as alpha, + beta or final release. + + `You' refers to the licensee, or person using the project, where + `using' is a generic term including compiling the project's source + code as well as linking it to form a `program' or `executable'. + This program is referred to as `a program using the FreeType + engine'. + + This license applies to all files distributed in the original + FreeType Project, including all source code, binaries and + documentation, unless otherwise stated in the file in its + original, unmodified form as distributed in the original archive. + If you are unsure whether or not a particular file is covered by + this license, you must contact us to verify this. + + The FreeType Project is copyright (C) 1996-2000 by David Turner, + Robert Wilhelm, and Werner Lemberg. All rights reserved except as + specified below. + +1. No Warranty + + THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO + USE, OF THE FREETYPE PROJECT. + +2. Redistribution + + This license grants a worldwide, royalty-free, perpetual and + irrevocable right and license to use, execute, perform, compile, + display, copy, create derivative works of, distribute and + sublicense the FreeType Project (in both source and object code + forms) and derivative works thereof for any purpose; and to + authorize others to exercise some or all of the rights granted + herein, subject to the following conditions: + + o Redistribution of source code must retain this license file + (`FTL.TXT') unaltered; any additions, deletions or changes to + the original files must be clearly indicated in accompanying + documentation. The copyright notices of the unaltered, + original files must be preserved in all copies of source + files. + + o Redistribution in binary form must provide a disclaimer that + states that the software is based in part of the work of the + FreeType Team, in the distribution documentation. We also + encourage you to put an URL to the FreeType web page in your + documentation, though this isn't mandatory. + + These conditions apply to any software derived from or based on + the FreeType Project, not just the unmodified files. If you use + our work, you must acknowledge us. However, no fee need be paid + to us. + +3. Advertising + + Neither the FreeType authors and contributors nor you shall use + the name of the other for commercial, advertising, or promotional + purposes without specific prior written permission. + + We suggest, but do not require, that you use one or more of the + following phrases to refer to this software in your documentation + or advertising materials: `FreeType Project', `FreeType Engine', + `FreeType library', or `FreeType Distribution'. + + As you have not signed this license, you are not required to + accept it. However, as the FreeType Project is copyrighted + material, only this license, or another one contracted with the + authors, grants you the right to use, distribute, and modify it. + Therefore, by using, distributing, or modifying the FreeType + Project, you indicate that you understand and accept all the terms + of this license. + +4. Contacts + + There are two mailing lists related to FreeType: + + o freetype@nongnu.org + + Discusses general use and applications of FreeType, as well as + future and wanted additions to the library and distribution. + If you are looking for support, start in this list if you + haven't found anything to help you in the documentation. + + o freetype-devel@nongnu.org + + Discusses bugs, as well as engine internals, design issues, + specific licenses, porting, etc. + + Our home page can be found at + + https://www.freetype.org + +--- end of FTL.TXT --- +-------------------------------------------------------------------------------- +garnet + +Copyright 2013 The Fuchsia Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +garnet + +Copyright 2014 The Fuchsia Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +garnet + +Copyright 2017 The Fuchsia Authors.All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +garnet +tonic +topaz + +Copyright 2015 The Fuchsia Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +garnet +tonic +topaz + +Copyright 2018 The Fuchsia Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +gif + +GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + +Copyright (C) 1991, 1999 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! +-------------------------------------------------------------------------------- +gif + +The Graphics Interchange Format(c) is the copyright property of CompuServe +Incorporated. Only CompuServe Incorporated is authorized to define, redefine, +enhance, alter, modify or change in any way the definition of the format. + +CompuServe Incorporated hereby grants a limited, non-exclusive, royalty-free +license for the use of the Graphics Interchange Format(sm) in computer +software; computer software utilizing GIF(sm) must acknowledge ownership of the +Graphics Interchange Format and its Service Mark by CompuServe Incorporated, in +User and Technical Documentation. Computer software utilizing GIF, which is +distributed or may be distributed without User or Technical Documentation must +display to the screen or printer a message acknowledging ownership of the +Graphics Interchange Format and the Service Mark by CompuServe Incorporated; in +this case, the acknowledgement may be displayed in an opening screen or leading +banner, or a closing screen or trailing banner. A message such as the following +may be used: + + "The Graphics Interchange Format(c) is the Copyright property of + CompuServe Incorporated. GIF(sm) is a Service Mark property of + CompuServe Incorporated." +-------------------------------------------------------------------------------- +harfbuzz + +Copyright (C) 2012 Grigori Goronzy + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 1998-2004 David Turner and Werner Lemberg +Copyright © 2004,2007,2009 Red Hat, Inc. +Copyright © 2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 1998-2004 David Turner and Werner Lemberg +Copyright © 2004,2007,2009,2010 Red Hat, Inc. +Copyright © 2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 1998-2004 David Turner and Werner Lemberg +Copyright © 2006 Behdad Esfahbod +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2012,2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2007 Chris Wilson +Copyright © 2009,2010 Red Hat, Inc. +Copyright © 2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2007,2008,2009 Red Hat, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2010,2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2010,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2007,2008,2009 Red Hat, Inc. +Copyright © 2012,2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2007,2008,2009,2010 Red Hat, Inc. +Copyright © 2010,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2007,2008,2009,2010 Red Hat, Inc. +Copyright © 2010,2012,2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2007,2008,2009,2010 Red Hat, Inc. +Copyright © 2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2007,2008,2009,2010 Red Hat, Inc. +Copyright © 2012,2018 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2009 Red Hat, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2009 Red Hat, Inc. +Copyright © 2009 Keith Stribley +Copyright © 2011 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2009 Red Hat, Inc. +Copyright © 2009 Keith Stribley +Copyright © 2015 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2009 Red Hat, Inc. +Copyright © 2011 Codethink Limited +Copyright © 2010,2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2009 Red Hat, Inc. +Copyright © 2011 Codethink Limited +Copyright © 2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2009 Red Hat, Inc. +Copyright © 2011 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2009 Red Hat, Inc. +Copyright © 2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2009 Red Hat, Inc. +Copyright © 2015 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2009 Red Hat, Inc. +Copyright © 2018 Ebrahim Byagowi + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2009 Red Hat, Inc. +Copyright © 2018 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2009,2010 Red Hat, Inc. +Copyright © 2010,2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2009,2010 Red Hat, Inc. +Copyright © 2010,2011,2012,2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2009,2010 Red Hat, Inc. +Copyright © 2010,2011,2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2009,2010 Red Hat, Inc. +Copyright © 2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2010 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2010 Red Hat, Inc. +Copyright © 2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2010,2011 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2010,2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2010,2011,2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2010,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2011 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2011 Martin Hosken +Copyright © 2011 SIL International + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2011 Martin Hosken +Copyright © 2011 SIL International +Copyright © 2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2011,2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2011,2012,2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2011,2012,2014 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2011,2014 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2012 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2012 Mozilla Foundation. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2012,2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2012,2013 Mozilla Foundation. +Copyright © 2012,2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2012,2017 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2013 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2013 Red Hat, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2014 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2015 Ebrahim Byagowi + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2015 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2015 Mozilla Foundation. +Copyright © 2015 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2015-2018 Ebrahim Byagowi + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2016 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2016 Google, Inc. +Copyright © 2018 Ebrahim Byagowi + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2016 Igalia S.L. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2016 Elie Roux +Copyright © 2018 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2017 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2018 Ebrahim Byagowi + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2018 Ebrahim Byagowi +Copyright © 2018 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +Copyright © 2018 Google, Inc. + + This is part of HarfBuzz, a text shaping library. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +HarfBuzz is licensed under the so-called "Old MIT" license. Details follow. +For parts of HarfBuzz that are licensed under different licenses see individual +files names COPYING in subdirectories where applicable. + +Copyright © 2010,2011,2012 Google, Inc. +Copyright © 2012 Mozilla Foundation +Copyright © 2011 Codethink Limited +Copyright © 2008,2010 Nokia Corporation and/or its subsidiary(-ies) +Copyright © 2009 Keith Stribley +Copyright © 2009 Martin Hosken and SIL International +Copyright © 2007 Chris Wilson +Copyright © 2006 Behdad Esfahbod +Copyright © 2005 David Turner +Copyright © 2004,2007,2008,2009,2010 Red Hat, Inc. +Copyright © 1998-2004 David Turner and Werner Lemberg + +For full copyright notices consult the individual files in the package. + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +-------------------------------------------------------------------------------- +harfbuzz + +The contents of this directory are licensed under the following terms: + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +-------------------------------------------------------------------------------- +html + +Copyright (c) 2006-2012 The Authors + +Contributors: +James Graham - jg307@cam.ac.uk +Anne van Kesteren - annevankesteren@gmail.com +Lachlan Hunt - lachlan.hunt@lachy.id.au +Matt McDonald - kanashii@kanashii.ca +Sam Ruby - rubys@intertwingly.net +Ian Hickson (Google) - ian@hixie.ch +Thomas Broyer - t.broyer@ltgt.net +Jacques Distler - distler@golem.ph.utexas.edu +Henri Sivonen - hsivonen@iki.fi +Adam Barth - abarth@webkit.org +Eric Seidel - eric@webkit.org +The Mozilla Foundation (contributions from Henri Sivonen since 2008) +David Flanagan (Mozilla) - dflanagan@mozilla.com +Google Inc. (contributed the Dart port) - misc@dartlang.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-------------------------------------------------------------------------------- +icu + +Copyright (c) 1995-2016 International Business Machines Corporation and others +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, and/or sell copies of the Software, and to permit persons +to whom the Software is furnished to do so, provided that the above +copyright notice(s) and this permission notice appear in all copies of +the Software and that both the above copyright notice(s) and this +permission notice appear in supporting documentation. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY +SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER +RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF +CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, use +or other dealings in this Software without prior written authorization +of the copyright holder. + +All trademarks and registered trademarks mentioned herein are the +property of their respective owners. +-------------------------------------------------------------------------------- +icu + +Copyright (c) 1998 - 1999 Unicode, Inc. All Rights reserved. + Copyright (C) 2002-2005, International Business Machines + Corporation and others. All Rights Reserved. + +This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +No claims are made as to fitness for any particular purpose. No +warranties of any kind are expressed or implied. The recipient +agrees to determine applicability of information provided. If this +file has been provided on optical media by Unicode, Inc., the sole +remedy for any claim will be exchange of defective media within 90 +days of receipt. + +Unicode, Inc. hereby grants the right to freely use the information +supplied in this file in the creation of products supporting the +Unicode Standard, and to make copies of this file in any form for +internal or external distribution as long as this notice remains +attached. +-------------------------------------------------------------------------------- +icu + +Copyright (c) 1999 Computer Systems and Communication Lab, + Institute of Information Science, Academia + * Sinica. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. +. Neither the name of the Computer Systems and Communication Lab + nor the names of its contributors may be used to endorse or + promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +icu + +Copyright (c) 1999 TaBE Project. +Copyright (c) 1999 Pai-Hsiang Hsiao. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. +. Neither the name of the TaBE Project nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +icu + +Copyright (c) 1999 Unicode, Inc. All Rights reserved. + Copyright (C) 2002-2005, International Business Machines + Corporation and others. All Rights Reserved. + +This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +No claims are made as to fitness for any particular purpose. No +warranties of any kind are expressed or implied. The recipient +agrees to determine applicability of information provided. If this +file has been provided on optical media by Unicode, Inc., the sole +remedy for any claim will be exchange of defective media within 90 +days of receipt. + +Unicode, Inc. hereby grants the right to freely use the information +supplied in this file in the creation of products supporting the +Unicode Standard, and to make copies of this file in any form for +internal or external distribution as long as this notice remains +attached. +-------------------------------------------------------------------------------- +icu + +Copyright (c) 2002 Unicode, Inc. All Rights reserved. + Copyright (C) 2002-2005, International Business Machines + Corporation and others. All Rights Reserved. + +This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +No claims are made as to fitness for any particular purpose. No +warranties of any kind are expressed or implied. The recipient +agrees to determine applicability of information provided. If this +file has been provided on optical media by Unicode, Inc., the sole +remedy for any claim will be exchange of defective media within 90 +days of receipt. + +Unicode, Inc. hereby grants the right to freely use the information +supplied in this file in the creation of products supporting the +Unicode Standard, and to make copies of this file in any form for +internal or external distribution as long as this notice remains +attached. +-------------------------------------------------------------------------------- +icu + +Copyright (c) 2013 International Business Machines Corporation +and others. All Rights Reserved. + +Project: http://code.google.com/p/lao-dictionary +Dictionary: http://lao-dictionary.googlecode.com/git/Lao-Dictionary.txt +License: http://lao-dictionary.googlecode.com/git/Lao-Dictionary-LICENSE.txt + (copied below) + + This file is derived from the above dictionary, with slight + modifications. + + Copyright (C) 2013 Brian Eugene Wilson, Robert Martin Campbell. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, + are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. Redistributions in + binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +icu + +Copyright (c) 2014 International Business Machines Corporation +and others. All Rights Reserved. + +This list is part of a project hosted at: + github.com/kanyawtech/myanmar-karen-word-lists + +Copyright (c) 2013, LeRoy Benjamin Sharon +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: Redistributions of source code must retain the above +copyright notice, this list of conditions and the following +disclaimer. Redistributions in binary form must reproduce the +above copyright notice, this list of conditions and the following +disclaimer in the documentation and/or other materials provided +with the distribution. + + Neither the name Myanmar Karen Word Lists, nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. +-------------------------------------------------------------------------------- +icu + +Copyright (c) IBM Corporation, 2000-2010. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +icu + +Copyright (c) IBM Corporation, 2000-2011. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +icu + +Copyright (c) IBM Corporation, 2000-2012. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +icu + +Copyright (c) IBM Corporation, 2000-2014. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +icu + +Copyright (c) IBM Corporation, 2000-2016. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +icu + +Copyright 1996 Chih-Hao Tsai @ Beckman Institute, + University of Illinois +c-tsai4@uiuc.edu http://casper.beckman.uiuc.edu/~c-tsai4 +-------------------------------------------------------------------------------- +icu + +Copyright 2000, 2001, 2002, 2003 Nara Institute of Science +and Technology. All Rights Reserved. + +Use, reproduction, and distribution of this software is permitted. +Any copy of this software, whether in its original form or modified, +must include both the above copyright notice and the following +paragraphs. + +Nara Institute of Science and Technology (NAIST), +the copyright holders, disclaims all warranties with regard to this +software, including all implied warranties of merchantability and +fitness, in no event shall NAIST be liable for +any special, indirect or consequential damages or any damages +whatsoever resulting from loss of use, data or profits, whether in an +action of contract, negligence or other tortuous action, arising out +of or in connection with the use or performance of this software. + +A large portion of the dictionary entries +originate from ICOT Free Software. The following conditions for ICOT +Free Software applies to the current dictionary as well. + +Each User may also freely distribute the Program, whether in its +original form or modified, to any third party or parties, PROVIDED +that the provisions of Section 3 ("NO WARRANTY") will ALWAYS appear +on, or be attached to, the Program, which is distributed substantially +in the same form as set out herein and that such intended +distribution, if actually made, will neither violate or otherwise +contravene any of the laws and regulations of the countries having +jurisdiction over the User or the intended distribution itself. + +NO WARRANTY + +The program was produced on an experimental basis in the course of the +research and development conducted during the project and is provided +to users as so produced on an experimental basis. Accordingly, the +program is provided without any warranty whatsoever, whether express, +implied, statutory or otherwise. The term "warranty" used herein +includes, but is not limited to, any warranty of the quality, +performance, merchantability and fitness for a particular purpose of +the program and the nonexistence of any infringement or violation of +any right of any third party. + +Each user of the program will agree and understand, and be deemed to +have agreed and understood, that there is no warranty whatsoever for +the program and, accordingly, the entire risk arising from or +otherwise connected with the program is assumed by the user. + +Therefore, neither ICOT, the copyright holder, or any other +organization that participated in or was otherwise related to the +development of the program and their respective officials, directors, +officers and other employees shall be held liable for any and all +damages, including, without limitation, general, special, incidental +and consequential damages, arising out of or otherwise in connection +with the use or inability to use the program or any product, material +or result produced or otherwise obtained by using the program, +regardless of whether they have been advised of, or otherwise had +knowledge of, the possibility of such damages at any time during the +project or thereafter. Each user will be deemed to have agreed to the +foregoing by his or her commencement of use of the program. The term +"use" as used herein includes, but is not limited to, the use, +modification, copying and distribution of the program and the +production of secondary products from the program. + +In the case where the program, whether in its original form or +modified, was distributed or delivered to or received by a user from +any person, organization or entity other than ICOT, unless it makes or +grants independently of ICOT any specific warranty to the user in +writing, such person, organization or entity, will also be exempted +from and not be held liable to the user for any such damages as noted +above as far as the program is concerned. +-------------------------------------------------------------------------------- +icu + +Copyright 2006-2011, the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +icu + +Copyright © 1991-2018 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. +-------------------------------------------------------------------------------- +icu + +ICU License - ICU 1.8.1 and later + +COPYRIGHT AND PERMISSION NOTICE + +Copyright (c) 1995-2009 International Business Machines Corporation and others + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, and/or sell copies of the Software, and to permit persons +to whom the Software is furnished to do so, provided that the above +copyright notice(s) and this permission notice appear in all copies of +the Software and that both the above copyright notice(s) and this +permission notice appear in supporting documentation. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY +SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER +RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF +CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, use +or other dealings in this Software without prior written authorization +of the copyright holder. +-------------------------------------------------------------------------------- +icu + +The BSD License +http://opensource.org/licenses/bsd-license.php +Copyright (C) 2006-2008, Google Inc. + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following +disclaimer in the documentation and/or other materials provided with +the distribution. + Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +icu + +Unicode® Terms of Use +For the general privacy policy governing access to this site, see the Unicode Privacy Policy. For trademark usage, see the Unicode® Consortium Name and Trademark Usage Policy. + +A. Unicode Copyright. +1. Copyright © 1991-2017 Unicode, Inc. All rights reserved. +2. Certain documents and files on this website contain a legend indicating that "Modification is permitted." Any person is hereby authorized, without fee, to modify such documents and files to create derivative works conforming to the Unicode® Standard, subject to Terms and Conditions herein. +3. Any person is hereby authorized, without fee, to view, use, reproduce, and distribute all documents and files solely for informational purposes and in the creation of products supporting the Unicode Standard, subject to the Terms and Conditions herein. +4. Further specifications of rights and restrictions pertaining to the use of the particular set of data files known as the "Unicode Character Database" can be found in the License. +5. Each version of the Unicode Standard has further specifications of rights and restrictions of use. For the book editions (Unicode 5.0 and earlier), these are found on the back of the title page. The online code charts carry specific restrictions. All other files, including online documentation of the core specification for Unicode 6.0 and later, are covered under these general Terms of Use. +6. No license is granted to "mirror" the Unicode website where a fee is charged for access to the "mirror" site. +7. Modification is not permitted with respect to this document. All copies of this document must be verbatim. +B. Restricted Rights Legend. Any technical data or software which is licensed to the United States of America, its agencies and/or instrumentalities under this Agreement is commercial technical data or commercial computer software developed exclusively at private expense as defined in FAR 2.101, or DFARS 252.227-7014 (June 1995), as applicable. For technical data, use, duplication, or disclosure by the Government is subject to restrictions as set forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov 1995) and this Agreement. For Software, in accordance with FAR 12-212 or DFARS 227-7202, as applicable, use, duplication or disclosure by the Government is subject to the restrictions set forth in this Agreement. +C. Warranties and Disclaimers. +1. This publication and/or website may include technical or typographical errors or other inaccuracies . Changes are periodically added to the information herein; these changes will be incorporated in new editions of the publication and/or website. Unicode may make improvements and/or changes in the product(s) and/or program(s) described in this publication and/or website at any time. +2. If this file has been purchased on magnetic or optical media from Unicode, Inc. the sole and exclusive remedy for any claim will be exchange of the defective media within ninety (90) days of original purchase. +3. EXCEPT AS PROVIDED IN SECTION C.2, THIS PUBLICATION AND/OR SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. UNICODE AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR OMISSIONS IN THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH ARE REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE WEBSITE. +D. Waiver of Damages. In no event shall Unicode or its licensors be liable for any special, incidental, indirect or consequential damages of any kind, or any damages whatsoever, whether or not Unicode was advised of the possibility of the damage, including, without limitation, those resulting from the following: loss of use, data or profits, in connection with the use, modification or distribution of this information or its derivatives. +E. Trademarks & Logos. +1. The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade names of Unicode, Inc. Use of the information and materials found on this website indicates your acknowledgement of Unicode, Inc.’s exclusive worldwide rights in the Unicode Word Mark, the Unicode Logo, and the Unicode trade names. +2. The Unicode Consortium Name and Trademark Usage Policy (“Trademark Policy”) are incorporated herein by reference and you agree to abide by the provisions of the Trademark Policy, which may be changed from time to time in the sole discretion of Unicode, Inc. +3. All third party trademarks referenced herein are the property of their respective owners. +F. Miscellaneous. +1. Jurisdiction and Venue. This server is operated from a location in the State of California, United States of America. Unicode makes no representation that the materials are appropriate for use in other locations. If you access this server from other locations, you are responsible for compliance with local laws. This Agreement, all use of this site and any claims and damages resulting from use of this site are governed solely by the laws of the State of California without regard to any principles which would apply the laws of a different jurisdiction. The user agrees that any disputes regarding this site shall be resolved solely in the courts located in Santa Clara County, California. The user agrees said courts have personal jurisdiction and agree to waive any right to transfer the dispute to any other forum. +2. Modification by Unicode Unicode shall have the right to modify this Agreement at any time by posting it to this site. The user may not assign any part of this Agreement without Unicode’s prior written consent. +3. Taxes. The user agrees to pay any taxes arising from access to this website or use of the information herein, except for those based on Unicode’s net income. +4. Severability. If any provision of this Agreement is declared invalid or unenforceable, the remaining provisions of this Agreement shall remain in effect. +5. Entire Agreement. This Agreement constitutes the entire agreement between the parties. + +EXHIBIT 1 +UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE + +Unicode Data Files include all data files under the directories +http://www.unicode.org/Public/, http://www.unicode.org/reports/, +http://www.unicode.org/cldr/data/, http://source.icu-project.org/repos/icu/, and +http://www.unicode.org/utility/trac/browser/. + +Unicode Data Files do not include PDF online code charts under the +directory http://www.unicode.org/Public/. + +Software includes any source code published in the Unicode Standard +or under the directories +http://www.unicode.org/Public/, http://www.unicode.org/reports/, +http://www.unicode.org/cldr/data/, http://source.icu-project.org/repos/icu/, and +http://www.unicode.org/utility/trac/browser/. + +NOTICE TO USER: Carefully read the following legal agreement. +BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S +DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), +YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE +TERMS AND CONDITIONS OF THIS AGREEMENT. +IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE +THE DATA FILES OR SOFTWARE. + +COPYRIGHT AND PERMISSION NOTICE + +Copyright © 1991-2017 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. +-------------------------------------------------------------------------------- +io +multi_server_socket +term_glyph + +Copyright 2017, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- +jaguar_resty + +BSD 3-Clause License + +Copyright (c) 2017, Ravi Teja Gudapati +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +jaguar_retrofit + +Copyright (c) 2016, Jaguar Authors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Jaguar Authors nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Jaguar Authors BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- +js + +Copyright 2012, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright (C) 2009, D. R. Commander. + +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright (C) 2009-2011, 2014-2016, D. R. Commander. +Copyright (C) 2015, Matthieu Darbois. + +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright (C) 2009-2011, Nokia Corporation and/or its subsidiary(-ies). +All Rights Reserved. +Author: Siarhei Siamashka +Copyright (C) 2013-2014, Linaro Limited. All Rights Reserved. +Author: Ragesh Radhakrishnan +Copyright (C) 2014-2016, D. R. Commander. All Rights Reserved. +Copyright (C) 2015-2016, Matthieu Darbois. All Rights Reserved. +Copyright (C) 2016, Siarhei Siamashka. All Rights Reserved. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright (C) 2009-2011, Nokia Corporation and/or its subsidiary(-ies). +All Rights Reserved. +Author: Siarhei Siamashka +Copyright (C) 2014, Siarhei Siamashka. All Rights Reserved. +Copyright (C) 2014, Linaro Limited. All Rights Reserved. +Copyright (C) 2015, D. R. Commander. All Rights Reserved. +Copyright (C) 2015-2016, Matthieu Darbois. All Rights Reserved. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright (C) 2011, D. R. Commander. + +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright (C) 2013, MIPS Technologies, Inc., California. +All Rights Reserved. +Authors: Teodora Novkovic (teodora.novkovic@imgtec.com) + Darko Laus (darko.laus@imgtec.com) +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright (C) 2013-2014, MIPS Technologies, Inc., California. +All Rights Reserved. +Authors: Teodora Novkovic (teodora.novkovic@imgtec.com) + Darko Laus (darko.laus@imgtec.com) +Copyright (C) 2015, D. R. Commander. All Rights Reserved. +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright (C) 2014, D. R. Commander. All Rights Reserved. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright (C) 2014-2015, D. R. Commander. All Rights Reserved. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright (C) 2014-2015, D. R. Commander. All Rights Reserved. +Copyright (C) 2014, Jay Foad. All Rights Reserved. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright (C) 2015, D. R. Commander. All Rights Reserved. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright (C)2009-2014 D. R. Commander. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +- Neither the name of the libjpeg-turbo Project nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright (C)2009-2015 D. R. Commander. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +- Neither the name of the libjpeg-turbo Project nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright (C)2009-2016 D. R. Commander. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +- Neither the name of the libjpeg-turbo Project nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright (C)2011 D. R. Commander. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +- Neither the name of the libjpeg-turbo Project nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright (C)2011, 2015 D. R. Commander. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +- Neither the name of the libjpeg-turbo Project nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright (C)2011-2016 D. R. Commander. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +- Neither the name of the libjpeg-turbo Project nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright 2009 Pierre Ossman for Cendio AB + +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright 2009 Pierre Ossman for Cendio AB + +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009, D. R. Commander. + +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009-2011, 2013-2014, 2016, D. R. Commander. +Copyright (C) 2015, Matthieu Darbois. + +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009-2011, 2013-2014, 2016, D. R. Commander. +Copyright (C) 2015-2016, Matthieu Darbois. + +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009-2011, 2014, 2016, D. R. Commander. +Copyright (C) 2015, Matthieu Darbois. + +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009-2011, 2014, D. R. Commander. +Copyright (C) 2013-2014, MIPS Technologies, Inc., California. +Copyright (C) 2015, Matthieu Darbois. + +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009-2011, 2014, D. R. Commander. +Copyright (C) 2015, Matthieu Darbois. + +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2009-2011, 2014-2015, D. R. Commander. +Copyright (C) 2015, Matthieu Darbois. + +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2010, D. R. Commander. + +Based on the x86 SIMD extension for IJG JPEG library - version 1.02 + +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2011, 2014, D. R. Commander. +Copyright (C) 2015, Matthieu Darbois. + +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2011, 2014-2016, D. R. Commander. +Copyright (C) 2013-2014, MIPS Technologies, Inc., California. +Copyright (C) 2014, Linaro Limited. +Copyright (C) 2015-2016, Matthieu Darbois. + +Based on the x86 SIMD extension for IJG JPEG library, +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright 2009 Pierre Ossman for Cendio AB +Copyright (C) 2011, D. R. Commander. + +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright 2009, 2012 Pierre Ossman for Cendio AB +Copyright (C) 2009, 2012, D. R. Commander. + +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +Copyright 2009, 2012 Pierre Ossman for Cendio AB +Copyright (C) 2012, D. R. Commander. + +Based on the x86 SIMD extension for IJG JPEG library +Copyright (C) 1999-2006, MIYASAKA Masaru. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +libjpeg-turbo + +libjpeg-turbo note: This file has been modified by The libjpeg-turbo Project +to include only information relevant to libjpeg-turbo, to wordsmith certain +sections, and to remove impolitic language that existed in the libjpeg v8 +README. It is included only for reference. Please see README.md for +information specific to libjpeg-turbo. + +The Independent JPEG Group's JPEG software +========================================== + +This distribution contains a release of the Independent JPEG Group's free JPEG +software. You are welcome to redistribute this software and to use it for any +purpose, subject to the conditions under LEGAL ISSUES, below. + +This software is the work of Tom Lane, Guido Vollbeding, Philip Gladstone, +Bill Allombert, Jim Boucher, Lee Crocker, Bob Friesenhahn, Ben Jackson, +Julian Minguillon, Luis Ortiz, George Phillips, Davide Rossi, Ge' Weijers, +and other members of the Independent JPEG Group. + +IJG is not affiliated with the ISO/IEC JTC1/SC29/WG1 standards committee +(also known as JPEG, together with ITU-T SG16). + +DOCUMENTATION ROADMAP +===================== + +This file contains the following sections: + +OVERVIEW General description of JPEG and the IJG software. +LEGAL ISSUES Copyright, lack of warranty, terms of distribution. +REFERENCES Where to learn more about JPEG. +ARCHIVE LOCATIONS Where to find newer versions of this software. +FILE FORMAT WARS Software *not* to get. +TO DO Plans for future IJG releases. + +Other documentation files in the distribution are: + +User documentation: + usage.txt Usage instructions for cjpeg, djpeg, jpegtran, + rdjpgcom, and wrjpgcom. + *.1 Unix-style man pages for programs (same info as usage.txt). + wizard.txt Advanced usage instructions for JPEG wizards only. + change.log Version-to-version change highlights. +Programmer and internal documentation: + libjpeg.txt How to use the JPEG library in your own programs. + example.c Sample code for calling the JPEG library. + structure.txt Overview of the JPEG library's internal structure. + coderules.txt Coding style rules --- please read if you contribute code. + +Please read at least usage.txt. Some information can also be found in the JPEG +FAQ (Frequently Asked Questions) article. See ARCHIVE LOCATIONS below to find +out where to obtain the FAQ article. + +If you want to understand how the JPEG code works, we suggest reading one or +more of the REFERENCES, then looking at the documentation files (in roughly +the order listed) before diving into the code. + +OVERVIEW +======== + +This package contains C software to implement JPEG image encoding, decoding, +and transcoding. JPEG (pronounced "jay-peg") is a standardized compression +method for full-color and grayscale images. JPEG's strong suit is compressing +photographic images or other types of images that have smooth color and +brightness transitions between neighboring pixels. Images with sharp lines or +other abrupt features may not compress well with JPEG, and a higher JPEG +quality may have to be used to avoid visible compression artifacts with such +images. + +JPEG is lossy, meaning that the output pixels are not necessarily identical to +the input pixels. However, on photographic content and other "smooth" images, +very good compression ratios can be obtained with no visible compression +artifacts, and extremely high compression ratios are possible if you are +willing to sacrifice image quality (by reducing the "quality" setting in the +compressor.) + +This software implements JPEG baseline, extended-sequential, and progressive +compression processes. Provision is made for supporting all variants of these +processes, although some uncommon parameter settings aren't implemented yet. +We have made no provision for supporting the hierarchical or lossless +processes defined in the standard. + +We provide a set of library routines for reading and writing JPEG image files, +plus two sample applications "cjpeg" and "djpeg", which use the library to +perform conversion between JPEG and some other popular image file formats. +The library is intended to be reused in other applications. + +In order to support file conversion and viewing software, we have included +considerable functionality beyond the bare JPEG coding/decoding capability; +for example, the color quantization modules are not strictly part of JPEG +decoding, but they are essential for output to colormapped file formats or +colormapped displays. These extra functions can be compiled out of the +library if not required for a particular application. + +We have also included "jpegtran", a utility for lossless transcoding between +different JPEG processes, and "rdjpgcom" and "wrjpgcom", two simple +applications for inserting and extracting textual comments in JFIF files. + +The emphasis in designing this software has been on achieving portability and +flexibility, while also making it fast enough to be useful. In particular, +the software is not intended to be read as a tutorial on JPEG. (See the +REFERENCES section for introductory material.) Rather, it is intended to +be reliable, portable, industrial-strength code. We do not claim to have +achieved that goal in every aspect of the software, but we strive for it. + +We welcome the use of this software as a component of commercial products. +No royalty is required, but we do ask for an acknowledgement in product +documentation, as described under LEGAL ISSUES. + +LEGAL ISSUES +============ + +In plain English: + +1. We don't promise that this software works. (But if you find any bugs, + please let us know!) +2. You can use this software for whatever you want. You don't have to pay us. +3. You may not pretend that you wrote this software. If you use it in a + program, you must acknowledge somewhere in your documentation that + you've used the IJG code. + +In legalese: + +The authors make NO WARRANTY or representation, either express or implied, +with respect to this software, its quality, accuracy, merchantability, or +fitness for a particular purpose. This software is provided "AS IS", and you, +its user, assume the entire risk as to its quality and accuracy. + +This software is copyright (C) 1991-2016, Thomas G. Lane, Guido Vollbeding. +All Rights Reserved except as specified below. + +Permission is hereby granted to use, copy, modify, and distribute this +software (or portions thereof) for any purpose, without fee, subject to these +conditions: +(1) If any part of the source code for this software is distributed, then this +README file must be included, with this copyright and no-warranty notice +unaltered; and any additions, deletions, or changes to the original files +must be clearly indicated in accompanying documentation. +(2) If only executable code is distributed, then the accompanying +documentation must state that "this software is based in part on the work of +the Independent JPEG Group". +(3) Permission for use of this software is granted only if the user accepts +full responsibility for any undesirable consequences; the authors accept +NO LIABILITY for damages of any kind. + +These conditions apply to any software derived from or based on the IJG code, +not just to the unmodified library. If you use our work, you ought to +acknowledge us. + +Permission is NOT granted for the use of any IJG author's name or company name +in advertising or publicity relating to this software or products derived from +it. This software may be referred to only as "the Independent JPEG Group's +software". + +We specifically permit and encourage the use of this software as the basis of +commercial products, provided that all warranty or liability claims are +assumed by the product vendor. + +The Unix configuration script "configure" was produced with GNU Autoconf. +It is copyright by the Free Software Foundation but is freely distributable. +The same holds for its supporting scripts (config.guess, config.sub, +ltmain.sh). Another support script, install-sh, is copyright by X Consortium +but is also freely distributable. + +The IJG distribution formerly included code to read and write GIF files. +To avoid entanglement with the Unisys LZW patent (now expired), GIF reading +support has been removed altogether, and the GIF writer has been simplified +to produce "uncompressed GIFs". This technique does not use the LZW +algorithm; the resulting GIF files are larger than usual, but are readable +by all standard GIF decoders. + +We are required to state that + "The Graphics Interchange Format(c) is the Copyright property of + CompuServe Incorporated. GIF(sm) is a Service Mark property of + CompuServe Incorporated." + +REFERENCES +========== + +We recommend reading one or more of these references before trying to +understand the innards of the JPEG software. + +The best short technical introduction to the JPEG compression algorithm is + Wallace, Gregory K. "The JPEG Still Picture Compression Standard", + Communications of the ACM, April 1991 (vol. 34 no. 4), pp. 30-44. +(Adjacent articles in that issue discuss MPEG motion picture compression, +applications of JPEG, and related topics.) If you don't have the CACM issue +handy, a PDF file containing a revised version of Wallace's article is +available at http://www.ijg.org/files/Wallace.JPEG.pdf. The file (actually +a preprint for an article that appeared in IEEE Trans. Consumer Electronics) +omits the sample images that appeared in CACM, but it includes corrections +and some added material. Note: the Wallace article is copyright ACM and IEEE, +and it may not be used for commercial purposes. + +A somewhat less technical, more leisurely introduction to JPEG can be found in +"The Data Compression Book" by Mark Nelson and Jean-loup Gailly, published by +M&T Books (New York), 2nd ed. 1996, ISBN 1-55851-434-1. This book provides +good explanations and example C code for a multitude of compression methods +including JPEG. It is an excellent source if you are comfortable reading C +code but don't know much about data compression in general. The book's JPEG +sample code is far from industrial-strength, but when you are ready to look +at a full implementation, you've got one here... + +The best currently available description of JPEG is the textbook "JPEG Still +Image Data Compression Standard" by William B. Pennebaker and Joan L. +Mitchell, published by Van Nostrand Reinhold, 1993, ISBN 0-442-01272-1. +Price US$59.95, 638 pp. The book includes the complete text of the ISO JPEG +standards (DIS 10918-1 and draft DIS 10918-2). + +The original JPEG standard is divided into two parts, Part 1 being the actual +specification, while Part 2 covers compliance testing methods. Part 1 is +titled "Digital Compression and Coding of Continuous-tone Still Images, +Part 1: Requirements and guidelines" and has document numbers ISO/IEC IS +10918-1, ITU-T T.81. Part 2 is titled "Digital Compression and Coding of +Continuous-tone Still Images, Part 2: Compliance testing" and has document +numbers ISO/IEC IS 10918-2, ITU-T T.83. + +The JPEG standard does not specify all details of an interchangeable file +format. For the omitted details we follow the "JFIF" conventions, revision +1.02. JFIF 1.02 has been adopted as an Ecma International Technical Report +and thus received a formal publication status. It is available as a free +download in PDF format from +http://www.ecma-international.org/publications/techreports/E-TR-098.htm. +A PostScript version of the JFIF document is available at +http://www.ijg.org/files/jfif.ps.gz. There is also a plain text version at +http://www.ijg.org/files/jfif.txt.gz, but it is missing the figures. + +The TIFF 6.0 file format specification can be obtained by FTP from +ftp://ftp.sgi.com/graphics/tiff/TIFF6.ps.gz. The JPEG incorporation scheme +found in the TIFF 6.0 spec of 3-June-92 has a number of serious problems. +IJG does not recommend use of the TIFF 6.0 design (TIFF Compression tag 6). +Instead, we recommend the JPEG design proposed by TIFF Technical Note #2 +(Compression tag 7). Copies of this Note can be obtained from +http://www.ijg.org/files/. It is expected that the next revision +of the TIFF spec will replace the 6.0 JPEG design with the Note's design. +Although IJG's own code does not support TIFF/JPEG, the free libtiff library +uses our library to implement TIFF/JPEG per the Note. + +ARCHIVE LOCATIONS +================= + +The "official" archive site for this software is www.ijg.org. +The most recent released version can always be found there in +directory "files". + +The JPEG FAQ (Frequently Asked Questions) article is a source of some +general information about JPEG. +It is available on the World Wide Web at http://www.faqs.org/faqs/jpeg-faq +and other news.answers archive sites, including the official news.answers +archive at rtfm.mit.edu: ftp://rtfm.mit.edu/pub/usenet/news.answers/jpeg-faq/. +If you don't have Web or FTP access, send e-mail to mail-server@rtfm.mit.edu +with body + send usenet/news.answers/jpeg-faq/part1 + send usenet/news.answers/jpeg-faq/part2 + +FILE FORMAT WARS +================ + +The ISO/IEC JTC1/SC29/WG1 standards committee (also known as JPEG, together +with ITU-T SG16) currently promotes different formats containing the name +"JPEG" which are incompatible with original DCT-based JPEG. IJG therefore does +not support these formats (see REFERENCES). Indeed, one of the original +reasons for developing this free software was to help force convergence on +common, interoperable format standards for JPEG files. +Don't use an incompatible file format! +(In any case, our decoder will remain capable of reading existing JPEG +image files indefinitely.) + +TO DO +===== + +Please send bug reports, offers of help, etc. to jpeg-info@jpegclub.org. +-------------------------------------------------------------------------------- +libsdl +skia + +Copyright 2016 Google Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libwebp + +Copyright (c) 2010, Google Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libwebp + +Copyright 2010 Google Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libwebp + +Copyright 2011 Google Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libwebp + +Copyright 2012 Google Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libwebp + +Copyright 2013 Google Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libwebp + +Copyright 2014 Google Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libwebp + +Copyright 2015 Google Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libwebp + +Copyright 2016 Google Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +libwebp + +Copyright 2017 Google Inc. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +node_preamble + +The MIT License (MIT) + +Copyright (c) 2015 Michael Bullington + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +=== + +Copyright 2012, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- +observatory_pub_packages + +Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +observatory_pub_packages + +Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +observatory_pub_packages + +Copyright (c) 2013, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +* Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +observatory_pub_packages + +Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +observatory_pub_packages + +Copyright (c) 2014, Michael Bostock and Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +observatory_pub_packages + +Copyright (c) 2014, the Dart project authors. +Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +observatory_pub_packages + +Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +observatory_pub_packages + +Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +observatory_pub_packages + +Copyright (c) 2017, the Dart project authors. +Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +observatory_pub_packages + +Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +observatory_pub_packages + +Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +observatory_pub_packages + +Copyright 2013, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +observatory_pub_packages + +Copyright 2014, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +observatory_pub_packages + +Copyright 2015, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +observatory_pub_packages + +Copyright 2016, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +observatory_pub_packages +pkg + +Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +quiver + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. +-------------------------------------------------------------------------------- +rapidjson + +Copyright (c) 2006-2013 Alexander Chemeris + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of the product nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +rapidjson + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +root_certificates + +Mozilla Public License +Version 2.0 + +1. Definitions + +1.1. “Contributor” + +means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software. + +1.2. “Contributor Version” + +means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor’s Contribution. + +1.3. “Contribution” + +means Covered Software of a particular Contributor. + +1.4. “Covered Software” + +means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof. + +1.5. “Incompatible With Secondary Licenses” + +means + + a. that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or + + b. that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License. + +1.6. “Executable Form” + +means any form of the work other than Source Code Form. + +1.7. “Larger Work” + +means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software. + +1.8. “License” + +means this document. + +1.9. “Licensable” + +means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License. + +1.10. “Modifications” + +means any of the following: + + a. any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or + + b. any new file in Source Code Form that contains any Covered Software. + +1.11. “Patent Claims” of a Contributor + +means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version. + +1.12. “Secondary License” + +means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses. + +1.13. “Source Code Form” + +means the form of the work preferred for making modifications. + +1.14. “You” (or “Your”) + +means an individual or a legal entity exercising rights under this License. For legal entities, “You” includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + +2. License Grants and Conditions + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license: + + a. under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and + + b. under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor: + + a. for any code that a Contributor has removed from Covered Software; or + + b. for infringements caused by: (i) Your and any other third party’s modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or + + c. under Patent Claims infringed by Covered Software in the absence of its Contributions. + +This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1. + +3. Responsibilities + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients’ rights in the Source Code Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + + a. such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and + + b. You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients’ rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction. + +4. Inability to Comply Due to Statute or Regulation + +If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + +5. Termination + +5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination. + +6. Disclaimer of Warranty + + Covered Software is provided under this License on an “as is” basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the Covered Software is with You. Should any Covered Software prove defective in any respect, You (not any Contributor) assume the cost of any necessary servicing, repair, or correction. This disclaimer of warranty constitutes an essential part of this License. No use of any Covered Software is authorized under this License except under this disclaimer. + +7. Limitation of Liability + + Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall any Contributor, or anyone who distributes Covered Software as permitted above, be liable to You for any direct, indirect, special, incidental, or consequential damages of any character including, without limitation, damages for lost profits, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from such party’s negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You. + +8. Litigation + +Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party’s ability to bring cross-claims or counter-claims. + +9. Miscellaneous + +This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor. + +10. Versions of the License + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses + +If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice + + This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - “Incompatible With Secondary Licenses” Notice + + This Source Code Form is “Incompatible With Secondary Licenses”, as defined by the Mozilla Public License, v. 2.0. +-------------------------------------------------------------------------------- +root_certificates + +Mozilla Public License Version 2.0 +================================== + +1. Definitions + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +* 6. Disclaimer of Warranty + +* Covered Software is provided under this License on an "as is" +* basis, without warranty of any kind, either expressed, implied, or +* statutory, including, without limitation, warranties that the +* Covered Software is free of defects, merchantable, fit for a +* particular purpose or non-infringing. The entire risk as to the +* quality and performance of the Covered Software is with You. +* Should any Covered Software prove defective in any respect, You +* (not any Contributor) assume the cost of any necessary servicing, +* repair, or correction. This disclaimer of warranty constitutes an +* essential part of this License. No use of any Covered Software is +* authorized under this License except under this disclaimer. + +* 7. Limitation of Liability + +* Under no circumstances and under no legal theory, whether tort +* (including negligence), contract, or otherwise, shall any +* Contributor, or anyone who distributes Covered Software as +* permitted above, be liable to You for any direct, indirect, +* special, incidental, or consequential damages of any character +* including, without limitation, damages for lost profits, loss of +* goodwill, work stoppage, computer failure or malfunction, or any +* and all other commercial damages or losses, even if such party +* shall have been informed of the possibility of such damages. This +* limitation of liability shall not apply to liability for death or +* personal injury resulting from such party's negligence to the +* extent applicable law prohibits such limitation. Some +* jurisdictions do not allow the exclusion or limitation of +* incidental or consequential damages, so this exclusion and +* limitation may not apply to You. + +8. Litigation + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. +-------------------------------------------------------------------------------- +skcms + +Copyright (c) 2018 Google Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skcms +skia +vulkan +vulkanmemoryallocator + +Copyright 2018 Google Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright (C) 2006 Apple Computer, Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright (C) 2014 Google Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright (c) 2011 Google Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright (c) 2014 Google Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright (c) 2014-2016 The Khronos Group Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and/or associated documentation files (the "Materials"), +to deal in the Materials without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Materials, and to permit persons to whom the +Materials are furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Materials. +-------------------------------------------------------------------------------- +skia + +Copyright (c) 2015 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2005 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2006 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2006-2012 The Android Open Source Project +Copyright 2012 Mozilla Foundation + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2007 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2008 Google Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2008 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2009 Motorola + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2009 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2009-2015 Google Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2010 Google Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2010 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2011 Google Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2011 Google Inc. +Copyright 2012 Mozilla Foundation + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2011 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2012 Google Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2012 Intel Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2012 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2013 Google Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2013 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2014 Google Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2014 Google Inc. +Copyright 2017 ARM Ltd. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2014 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2015 Google Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2015 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2016 Mozilla Foundation + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2016 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2017 ARM Ltd. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2017 Google Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2018 Google LLC + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2018 Google LLC. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2018 Google, LLC + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +Copyright 2018 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +skia + +NEON optimized code (C) COPYRIGHT 2009 Motorola + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +tcmalloc + +Copyright (c) 2003, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +tcmalloc + +Copyright (c) 2005, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +topaz + +Copyright 2016 The Fuchsia Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +topaz + +Copyright 2017 Th%e Fuchsia Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +topaz + +Copyright 2017, the Flutter project authors. Please see the AUTHORS file +for details. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +vector_math + +Copyright 2015, Google Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- +vulkanmemoryallocator + +Copyright (c) 2017-2018 Advanced Micro Devices, Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 1995-2003, 2010 Jean-loup Gailly. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 1995-2003, 2010 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 1995-2005 Jean-loup Gailly. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 1995-2005, 2010 Jean-loup Gailly. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 1995-2005, 2010 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 1995-2006, 2010 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 1995-2007 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 1995-2008, 2010 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 1995-2009 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 1995-2010 Jean-loup Gailly + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 1995-2010 Jean-loup Gailly +detect_data_type() function provided freely by Cosmin Truta, 2006 + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 1995-2010 Jean-loup Gailly. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 1995-2010 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) + +Modifications for Zip64 support +Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) + +For more info read MiniZip_info.txt + +Condition of use and distribution are the same than zlib : + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) + +Modifications of Unzip for Zip64 +Copyright (C) 2007-2008 Even Rouault + +Modifications for Zip64 support on both zip and unzip +Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) + +For more info read MiniZip_info.txt + +Condition of use and distribution are the same than zlib : + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 2004, 2005, 2010 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 2004, 2010 Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 2013 Intel Corporation +Authors: + Arjan van de Ven + Jim Kukunas + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 2013 Intel Corporation Jim Kukunas + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 2013 Intel Corporation. All rights reserved. +Author: + Jim Kukunas + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 2013 Intel Corporation. All rights reserved. +Authors: + Wajdi Feghali + Jim Guilford + Vinodh Gopal + Erdinc Ozturk + Jim Kukunas + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (C) 2014 Intel Corporation + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +-------------------------------------------------------------------------------- +zlib + +Copyright (c) 2011 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +zlib + +Copyright (c) 2012 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +zlib + +zlib.h -- interface of the 'zlib' general purpose compression library +version 1.2.4, March 14th, 2010 + +Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. + +Jean-loup Gailly +Mark Adler diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/fonts/MaterialIcons-Regular.ttf b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/fonts/MaterialIcons-Regular.ttf new file mode 100644 index 000000000000..9519e1d75e8e Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/fonts/MaterialIcons-Regular.ttf differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/isolate_snapshot_data b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/isolate_snapshot_data new file mode 100644 index 000000000000..bd2b61b191f3 Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/isolate_snapshot_data differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/kernel_blob.bin b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/kernel_blob.bin new file mode 100644 index 000000000000..b5f3e292ebac Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/kernel_blob.bin differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/platform_strong.dill b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/platform_strong.dill new file mode 100644 index 000000000000..4b1ea432898c Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/platform_strong.dill differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/vm_snapshot_data b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/vm_snapshot_data new file mode 100644 index 000000000000..6c10cae0dd24 Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Flutter/flutter_assets/vm_snapshot_data differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner.xcodeproj/project.pbxproj b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 000000000000..efd7d0a1e7f6 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,436 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */ = {isa = PBXBuildFile; fileRef = 2D5378251FAA1A9400D5DBA9 /* flutter_assets */; }; + 3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; }; + 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; }; + 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; }; + 9740EEB51CF90195004384FC /* Generated.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB31CF90195004384FC /* Generated.xcconfig */; }; + 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; + 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */, + 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 2D5378251FAA1A9400D5DBA9 /* flutter_assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = flutter_assets; path = Flutter/flutter_assets; sourceTree = SOURCE_ROOT; }; + 3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */, + 3B80C3941E831B6300D905FE /* App.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B80C3931E831B6300D905FE /* App.framework */, + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 2D5378251FAA1A9400D5DBA9 /* flutter_assets */, + 9740EEBA1CF902C7004384FC /* Flutter.framework */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + CF3B75C9A7D2FA2A4C99F110 /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */, + 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */, + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 97C146F11CF9000F007C117D /* Supporting Files */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + ); + path = Runner; + sourceTree = ""; + }; + 97C146F11CF9000F007C117D /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 97C146F21CF9000F007C117D /* main.m */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0910; + ORGANIZATIONNAME = "The Chromium Authors"; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 9740EEB51CF90195004384FC /* Generated.xcconfig in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */, + 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */, + 97C146F31CF9000F007C117D /* main.m in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ARCHS = arm64; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.flutterPetstore; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ARCHS = arm64; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.flutterPetstore; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000000..1d526a16ed0f --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 000000000000..1263ac84b105 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner.xcworkspace/contents.xcworkspacedata b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000000..1d526a16ed0f --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/AppDelegate.h b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/AppDelegate.h new file mode 100644 index 000000000000..cf210d213f27 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/AppDelegate.h @@ -0,0 +1,6 @@ +#import +#import + +@interface AppDelegate : FlutterAppDelegate + +@end diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/AppDelegate.m b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/AppDelegate.m new file mode 100644 index 000000000000..112becd13b36 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/AppDelegate.m @@ -0,0 +1,12 @@ +#include "AppDelegate.h" +#include "GeneratedPluginRegistrant.h" + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + [GeneratedPluginRegistrant registerWithRegistry:self]; + // Override point for customization after application launch. + return [super application:application didFinishLaunchingWithOptions:launchOptions]; +} + +@end diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000000..d22f10b2ab63 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,116 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png new file mode 100644 index 000000000000..28c6bf03016f Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 000000000000..2ccbfd967d96 Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 000000000000..f091b6b0bca8 Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 000000000000..4cde12118dda Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 000000000000..d0ef06e7edb8 Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png new file mode 100644 index 000000000000..dcdc2306c285 Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png new file mode 100644 index 000000000000..2ccbfd967d96 Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 000000000000..c8f9ed8f5cee Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 000000000000..a6d6b8609df0 Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 000000000000..a6d6b8609df0 Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 000000000000..75b2d164a5a9 Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 000000000000..c4df70d39da7 Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png new file mode 100644 index 000000000000..6a84f41e14e2 Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 000000000000..d0e1f5853602 Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 000000000000..0bedcf2fd467 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 000000000000..9da19eacad3b Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 000000000000..9da19eacad3b Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 000000000000..9da19eacad3b Binary files /dev/null and b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png differ diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 000000000000..89c2725b70f1 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Base.lproj/LaunchScreen.storyboard b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 000000000000..f2e259c7c939 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Base.lproj/Main.storyboard b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 000000000000..f3c28516fb38 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Info.plist b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Info.plist new file mode 100644 index 000000000000..b5a04ef774f2 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + flutter_petstore + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + arm64 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/main.m b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/main.m new file mode 100644 index 000000000000..0ccc450011c4 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/ios/Runner/main.m @@ -0,0 +1,9 @@ +#import +#import +#import "AppDelegate.h" + +int main(int argc, char * argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/lib/main.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/lib/main.dart new file mode 100644 index 000000000000..e49040d0895c --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/lib/main.dart @@ -0,0 +1,172 @@ +import 'package:flutter/material.dart'; +import 'package:http/http.dart'; +import 'package:swagger/api.dart'; +import 'package:swagger/model/order.dart'; +import 'package:swagger/model/pet.dart'; +import 'package:swagger/model/user.dart'; +import 'package:jaguar_resty/jaguar_resty.dart'; + + +void main() { + globalClient = IOClient(); + runApp(MyApp()); +} + +class MyApp extends StatelessWidget { + // This widget is the root of your application. + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Flutter Demo', + theme: ThemeData( + // This is the theme of your application. + // + // Try running your application with "flutter run". You'll see the + // application has a blue toolbar. Then, without quitting the app, try + // changing the primarySwatch below to Colors.green and then invoke + // "hot reload" (press "r" in the console where you ran "flutter run", + // or press Run > Flutter Hot Reload in IntelliJ). Notice that the + // counter didn't reset back to zero; the application is not restarted. + primarySwatch: Colors.blue, + ), + home: MyHomePage(title: 'Flutter Demo Home Page'), + ); + } +} + +class MyHomePage extends StatefulWidget { + MyHomePage({Key key, this.title}) : super(key: key); + + // This widget is the home page of your application. It is stateful, meaning + // that it has a State object (defined below) that contains fields that affect + // how it looks. + + // This class is the configuration for the state. It holds the values (in this + // case the title) provided by the parent (in this case the App widget) and + // used by the build method of the State. Fields in a Widget subclass are + // always marked "final". + + final String title; + + @override + _MyHomePageState createState() => _MyHomePageState(); +} + +class _MyHomePageState extends State { + int _counter = 0; + JaguarApiGen jaguarApiGen = JaguarApiGen(); + + void _incrementCounter() { + setState(() { + // This call to setState tells the Flutter framework that something has + // changed in this State, which causes it to rerun the build method below + // so that the display can reflect the updated values. If we changed + // _counter without calling setState(), then the build method would not be + // called again, and so nothing would appear to happen. + _counter++; + }); + } + + @override + void initState() { + super.initState(); + fetchPets(); + fetchStoreInventory(); + fetchUser(); + } + + void fetchPets() { + print('fetching pets by status...'); + var statuses = List(); + statuses.add('available'); + jaguarApiGen.getPetApi().findPetsByStatus(statuses) + .then((List pets) { + print('pets received: '); + print(pets); + var order = Order(petId: pets[0].id, quantity: 1); + jaguarApiGen.getStoreApi().placeOrder(order) + .then((Order order) => print(order)); + }).catchError((error) { + print('error fetching pets'); + throw error; + }); + } + + void fetchStoreInventory() { + print('fetching inventory...'); + jaguarApiGen.getStoreApi().getInventory() + .then((Map inventory) { + print('inventory received: '); + print(inventory); + }).catchError((error) { + print('error fetching inventory'); + throw error; + }); + } + + void fetchUser() { + print('fetching user1...'); + jaguarApiGen.getUserApi().getUserByName('user1') + .then((User user) { + print('user received: '); + print(user); + }).catchError((error) { + print('error fetching user'); + throw error; + }); + } + + @override + Widget build(BuildContext context) { + // This method is rerun every time setState is called, for instance as done + // by the _incrementCounter method above. + // + // The Flutter framework has been optimized to make rerunning build methods + // fast, so that you can just rebuild anything that needs updating rather + // than having to individually change instances of widgets. + return Scaffold( + appBar: AppBar( + // Here we take the value from the MyHomePage object that was created by + // the App.build method, and use it to set our appbar title. + title: Text(widget.title), + ), + body: Center( + // Center is a layout widget. It takes a single child and positions it + // in the middle of the parent. + child: Column( + // Column is also layout widget. It takes a list of children and + // arranges them vertically. By default, it sizes itself to fit its + // children horizontally, and tries to be as tall as its parent. + // + // Invoke "debug paint" (press "p" in the console where you ran + // "flutter run", or select "Toggle Debug Paint" from the Flutter tool + // window in IntelliJ) to see the wireframe for each widget. + // + // Column has various properties to control how it sizes itself and + // how it positions its children. Here we use mainAxisAlignment to + // center the children vertically; the main axis here is the vertical + // axis because Columns are vertical (the cross axis would be + // horizontal). + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'You have pushed the button this many times:', + ), + Text( + '$_counter', + style: Theme + .of(context) + .textTheme + .display1, + ), + ], + ), + ), + floatingActionButton: FloatingActionButton( + onPressed: _incrementCounter, + tooltip: 'Increment', + child: Icon(Icons.add), + ), // This trailing comma makes auto-formatting nicer for build methods. + ); + } +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/pubspec.yaml b/samples/client/petstore/dart-jaguar/flutter_petstore/pubspec.yaml new file mode 100644 index 000000000000..b5ff79c337ab --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/pubspec.yaml @@ -0,0 +1,59 @@ +name: flutter_petstore +description: Swagger petstore sample flutter + +dependencies: + flutter: + sdk: flutter + swagger: + path: ./swagger + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^0.1.0 + +dev_dependencies: + flutter_test: + sdk: flutter + + +# For information on the generic Dart part of this file, see the +# following page: https://www.dartlang.org/tools/pub/pubspec + +# The following section is specific to Flutter. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + # assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.io/assets-and-images/#resolution-aware. + + # For details regarding adding assets from package dependencies, see + # https://flutter.io/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.io/custom-fonts/#from-packages diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/.gitignore b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/.gitignore new file mode 100644 index 000000000000..7c2804416498 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/.gitignore @@ -0,0 +1,27 @@ +# See https://www.dartlang.org/tools/private-files.html + +# Files and directories created by pub +.buildlog +.packages +.project +.pub/ +build/ +**/packages/ + +# Files created by dart2js +# (Most Dart developers will use pub build to compile Dart, use/modify these +# rules if you intend to use dart2js directly +# Convention is to use extension '.dart.js' for Dart compiled to Javascript to +# differentiate from explicit Javascript files) +*.dart.js +*.part.js +*.js.deps +*.js.map +*.info.json + +# Directory created by dartdoc +doc/api/ + +# Don't commit pubspec lock file +# (Library packages only! Remove pattern if developing an application package) +pubspec.lock diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/.swagger-codegen-ignore b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/.swagger-codegen-ignore new file mode 100644 index 000000000000..c5fa491b4c55 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/.swagger-codegen-ignore @@ -0,0 +1,23 @@ +# Swagger Codegen Ignore +# Generated by swagger-codegen https://github.com/swagger-api/swagger-codegen + +# 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 Swagger Codgen 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/dart-jaguar/flutter_petstore/swagger/.swagger-codegen/VERSION b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/.swagger-codegen/VERSION new file mode 100644 index 000000000000..855ff9501eb8 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.4.0-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/README.md b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/README.md new file mode 100644 index 000000000000..74753f03f9b5 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/README.md @@ -0,0 +1,133 @@ +# swagger +This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. + +This Dart package is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: + +- API version: 1.0.0 +- Build date: 2018-09-11T20:08:23.044+02:00 +- Build package: io.swagger.codegen.languages.DartJaguarClientCodegen + +## Requirements + +Dart 2 or later OR Flutter 0.7.0 or later. + +Once your code is generated, you need to run the build_runner command to let Jaguar implement your API: + +```sh +flutter packages pub run build_runner build +or +pub run build_runner build +``` + +## Installation & Usage + +### Github +If this Dart package is published to Github, please include the following in pubspec.yaml +``` +name: swagger +version: 1.0.0 +description: Swagger API client +dependencies: + swagger: + git: https://github.com/GIT_USER_ID/GIT_REPO_ID.git + version: 'any' +``` + +### Local +To use the package in your local drive, please include the following in pubspec.yaml +``` +dependencies: + swagger: + path: /path/to/swagger +``` + +## Tests + +TODO + +## Getting Started + +Please follow the [installation procedure](#installation--usage) and then run the following: + +```dart +import 'package:swagger/api.dart'; + +// TODO Configure OAuth2 access token for authorization: petstore_auth +//swagger.api.Configuration.accessToken = 'YOUR_ACCESS_TOKEN'; + +final swaggerGen = SwaggerGen(); +var api_instance = swaggerGen.getPetApi(); +var body = new Pet(); // Pet | Pet object that needs to be added to the store + +try { + api_instance.addPet(body); +} catch (e) { + print("Exception when calling PetApi->addPet: $e\n"); +} + +``` + +## Documentation for API Endpoints + +All URIs are relative to *http://petstore.swagger.io/v2* + +Class | Method | HTTP request | Description +------------ | ------------- | ------------- | ------------- +*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 +*StoreApi* | [**deleteOrder**](docs//StoreApi.md#deleteorder) | **Delete** /store/order/:orderId | 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/:orderId | 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 + + - [Amount](docs//Amount.md) + - [ApiResponse](docs//ApiResponse.md) + - [Category](docs//Category.md) + - [Currency](docs//Currency.md) + - [Order](docs//Order.md) + - [Pet](docs//Pet.md) + - [Tag](docs//Tag.md) + - [User](docs//User.md) + + +## Documentation For Authorization + + +## api_key + +- **Type**: API key +- **API key parameter name**: api_key +- **Location**: HTTP header + +## 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 + + +## Author + +apiteam@swagger.io + + diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/analysis_options.yaml b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/analysis_options.yaml new file mode 100644 index 000000000000..518eb901a6ff --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/analysis_options.yaml @@ -0,0 +1,2 @@ +analyzer: + strong-mode: true \ No newline at end of file diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/Amount.md b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/Amount.md new file mode 100644 index 000000000000..12c2fc20a7a7 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/Amount.md @@ -0,0 +1,16 @@ +# swagger.model.Amount + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**value** | **double** | some description | [default to null] +**currency** | [**Currency**](Currency.md) | | [default to null] + +[[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/dart-jaguar/flutter_petstore/swagger/docs/ApiResponse.md b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/ApiResponse.md new file mode 100644 index 000000000000..7bc0c834d782 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/ApiResponse.md @@ -0,0 +1,17 @@ +# swagger.model.ApiResponse + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | | [optional] [default to null] +**type** | **String** | | [optional] [default to null] +**message** | **String** | | [optional] [default to null] + +[[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/dart-jaguar/flutter_petstore/swagger/docs/Category.md b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/Category.md new file mode 100644 index 000000000000..3f5d01c5e1ce --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/Category.md @@ -0,0 +1,16 @@ +# swagger.model.Category + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **int** | | [optional] [default to null] +**name** | **String** | | [optional] [default to null] + +[[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/dart-jaguar/flutter_petstore/swagger/docs/Currency.md b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/Currency.md new file mode 100644 index 000000000000..0b25bce60f58 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/Currency.md @@ -0,0 +1,14 @@ +# swagger.model.Currency + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## 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/dart-jaguar/flutter_petstore/swagger/docs/Order.md b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/Order.md new file mode 100644 index 000000000000..c076322a76e3 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/Order.md @@ -0,0 +1,20 @@ +# swagger.model.Order + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **int** | | [optional] [default to null] +**petId** | **int** | | [optional] [default to null] +**quantity** | **int** | | [optional] [default to null] +**shipDate** | [**DateTime**](DateTime.md) | | [optional] [default to null] +**status** | **String** | Order Status | [optional] [default to null] +**complete** | **bool** | | [optional] [default to null] + +[[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/dart-jaguar/flutter_petstore/swagger/docs/Pet.md b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/Pet.md new file mode 100644 index 000000000000..a9e12476aafe --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/Pet.md @@ -0,0 +1,20 @@ +# swagger.model.Pet + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **int** | | [optional] [default to null] +**category** | [**Category**](Category.md) | | [optional] [default to null] +**name** | **String** | | [default to null] +**photoUrls** | **List<String>** | | [default to const []] +**tags** | [**List<Tag>**](Tag.md) | | [optional] [default to const []] +**status** | **String** | pet status in the store | [optional] [default to null] + +[[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/dart-jaguar/flutter_petstore/swagger/docs/PetApi.md b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/PetApi.md new file mode 100644 index 000000000000..91fb5270942c --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/PetApi.md @@ -0,0 +1,389 @@ +# swagger.api.PetApi + +## Load the API package +```dart +import 'package:swagger/api.dart'; +``` + +All URIs are relative to *http://petstore.swagger.io/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 + + +# **addPet** +> addPet(body) + +Add a new pet to the store + + + +### Example +```dart +import 'package:swagger/api.dart'; +// TODO Configure OAuth2 access token for authorization: petstore_auth +//swagger.api.Configuration.accessToken = 'YOUR_ACCESS_TOKEN'; + +var api_instance = new PetApi(); +var body = new Pet(); // Pet | Pet object that needs to be added to the store + +try { + api_instance.addPet(body); +} catch (e) { + print("Exception when calling PetApi->addPet: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | [**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**: 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) + +# **deletePet** +> deletePet(petId, apiKey) + +Deletes a pet + + + +### Example +```dart +import 'package:swagger/api.dart'; +// TODO Configure OAuth2 access token for authorization: petstore_auth +//swagger.api.Configuration.accessToken = 'YOUR_ACCESS_TOKEN'; + +var api_instance = new PetApi(); +var petId = 789; // int | Pet id to delete +var apiKey = apiKey_example; // String | + +try { + api_instance.deletePet(petId, apiKey); +} catch (e) { + print("Exception when calling PetApi->deletePet: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **petId** | **int**| 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**: 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) + +# **findPetsByStatus** +> List findPetsByStatus(status) + +Finds Pets by status + +Multiple status values can be provided with comma separated strings + +### Example +```dart +import 'package:swagger/api.dart'; +// TODO Configure OAuth2 access token for authorization: petstore_auth +//swagger.api.Configuration.accessToken = 'YOUR_ACCESS_TOKEN'; + +var api_instance = new PetApi(); +var status = []; // List | Status values that need to be considered for filter + +try { + var result = api_instance.findPetsByStatus(status); + print(result); +} catch (e) { + print("Exception when calling PetApi->findPetsByStatus: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **status** | [**List<String>**](String.md)| 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(tags) + +Finds Pets by tags + +Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + +### Example +```dart +import 'package:swagger/api.dart'; +// TODO Configure OAuth2 access token for authorization: petstore_auth +//swagger.api.Configuration.accessToken = 'YOUR_ACCESS_TOKEN'; + +var api_instance = new PetApi(); +var tags = []; // List | Tags to filter by + +try { + var result = api_instance.findPetsByTags(tags); + print(result); +} catch (e) { + print("Exception when calling PetApi->findPetsByTags: $e\n"); +} +``` + +### 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(petId) + +Find pet by ID + +Returns a single pet + +### Example +```dart +import 'package:swagger/api.dart'; +// TODO Configure API key authorization: api_key +//swagger.api.Configuration.apiKey{'api_key'} = 'YOUR_API_KEY'; +// uncomment below to setup prefix (e.g. Bearer) for API key, if needed +//swagger.api.Configuration.apiKeyPrefix{'api_key'} = "Bearer"; + +var api_instance = new PetApi(); +var petId = 789; // int | ID of pet to return + +try { + var result = api_instance.getPetById(petId); + print(result); +} catch (e) { + print("Exception when calling PetApi->getPetById: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **petId** | **int**| 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** +> updatePet(body) + +Update an existing pet + + + +### Example +```dart +import 'package:swagger/api.dart'; +// TODO Configure OAuth2 access token for authorization: petstore_auth +//swagger.api.Configuration.accessToken = 'YOUR_ACCESS_TOKEN'; + +var api_instance = new PetApi(); +var body = new Pet(); // Pet | Pet object that needs to be added to the store + +try { + api_instance.updatePet(body); +} catch (e) { + print("Exception when calling PetApi->updatePet: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | [**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**: 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) + +# **updatePetWithForm** +> updatePetWithForm(petId, name, status) + +Updates a pet in the store with form data + + + +### Example +```dart +import 'package:swagger/api.dart'; +// TODO Configure OAuth2 access token for authorization: petstore_auth +//swagger.api.Configuration.accessToken = 'YOUR_ACCESS_TOKEN'; + +var api_instance = new PetApi(); +var petId = 789; // int | ID of pet that needs to be updated +var name = name_example; // String | Updated name of the pet +var status = status_example; // String | Updated status of the pet + +try { + api_instance.updatePetWithForm(petId, name, status); +} catch (e) { + print("Exception when calling PetApi->updatePetWithForm: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **petId** | **int**| 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**: 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) + +# **uploadFile** +> ApiResponse uploadFile(petId, additionalMetadata, file) + +uploads an image + + + +### Example +```dart +import 'package:swagger/api.dart'; +// TODO Configure OAuth2 access token for authorization: petstore_auth +//swagger.api.Configuration.accessToken = 'YOUR_ACCESS_TOKEN'; + +var api_instance = new PetApi(); +var petId = 789; // int | ID of pet to update +var additionalMetadata = additionalMetadata_example; // String | Additional data to pass to server +var file = /path/to/file.txt; // MultipartFile | file to upload + +try { + var result = api_instance.uploadFile(petId, additionalMetadata, file); + print(result); +} catch (e) { + print("Exception when calling PetApi->uploadFile: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **petId** | **int**| ID of pet to update | + **additionalMetadata** | **String**| Additional data to pass to server | [optional] + **file** | **MultipartFile**| 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) + diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/StoreApi.md b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/StoreApi.md new file mode 100644 index 000000000000..4ce520a8dfb8 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/StoreApi.md @@ -0,0 +1,188 @@ +# swagger.api.StoreApi + +## Load the API package +```dart +import 'package:swagger/api.dart'; +``` + +All URIs are relative to *http://petstore.swagger.io/v2* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**deleteOrder**](StoreApi.md#deleteOrder) | **Delete** /store/order/:orderId | Delete purchase order by ID +[**getInventory**](StoreApi.md#getInventory) | **Get** /store/inventory | Returns pet inventories by status +[**getOrderById**](StoreApi.md#getOrderById) | **Get** /store/order/:orderId | Find purchase order by ID +[**placeOrder**](StoreApi.md#placeOrder) | **Post** /store/order | Place an order for a pet + + +# **deleteOrder** +> deleteOrder(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 +```dart +import 'package:swagger/api.dart'; + +var api_instance = new StoreApi(); +var orderId = orderId_example; // String | ID of the order that needs to be deleted + +try { + api_instance.deleteOrder(orderId); +} catch (e) { + print("Exception when calling StoreApi->deleteOrder: $e\n"); +} +``` + +### 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**: 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) + +# **getInventory** +> Map getInventory() + +Returns pet inventories by status + +Returns a map of status codes to quantities + +### Example +```dart +import 'package:swagger/api.dart'; +// TODO Configure API key authorization: api_key +//swagger.api.Configuration.apiKey{'api_key'} = 'YOUR_API_KEY'; +// uncomment below to setup prefix (e.g. Bearer) for API key, if needed +//swagger.api.Configuration.apiKeyPrefix{'api_key'} = "Bearer"; + +var api_instance = new StoreApi(); + +try { + var result = api_instance.getInventory(); + print(result); +} catch (e) { + print("Exception when calling StoreApi->getInventory: $e\n"); +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +**Map** + +### 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(orderId) + +Find purchase order by ID + +For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + +### Example +```dart +import 'package:swagger/api.dart'; + +var api_instance = new StoreApi(); +var orderId = 789; // int | ID of pet that needs to be fetched + +try { + var result = api_instance.getOrderById(orderId); + print(result); +} catch (e) { + print("Exception when calling StoreApi->getOrderById: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **orderId** | **int**| 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(body) + +Place an order for a pet + + + +### Example +```dart +import 'package:swagger/api.dart'; + +var api_instance = new StoreApi(); +var body = new Order(); // Order | order placed for purchasing the pet + +try { + var result = api_instance.placeOrder(body); + print(result); +} catch (e) { + print("Exception when calling StoreApi->placeOrder: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | [**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/dart-jaguar/flutter_petstore/swagger/docs/Tag.md b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/Tag.md new file mode 100644 index 000000000000..c644f1e826ae --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/Tag.md @@ -0,0 +1,16 @@ +# swagger.model.Tag + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **int** | | [optional] [default to null] +**name** | **String** | | [optional] [default to null] + +[[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/dart-jaguar/flutter_petstore/swagger/docs/User.md b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/User.md new file mode 100644 index 000000000000..d49bb37d96c5 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/User.md @@ -0,0 +1,22 @@ +# swagger.model.User + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **int** | | [optional] [default to null] +**username** | **String** | | [optional] [default to null] +**firstName** | **String** | | [optional] [default to null] +**lastName** | **String** | | [optional] [default to null] +**email** | **String** | | [optional] [default to null] +**password** | **String** | | [optional] [default to null] +**phone** | **String** | | [optional] [default to null] +**userStatus** | **int** | User Status | [optional] [default to null] + +[[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/dart-jaguar/flutter_petstore/swagger/docs/UserApi.md b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/UserApi.md new file mode 100644 index 000000000000..8f6261ec03dc --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/docs/UserApi.md @@ -0,0 +1,359 @@ +# swagger.api.UserApi + +## Load the API package +```dart +import 'package:swagger/api.dart'; +``` + +All URIs are relative to *http://petstore.swagger.io/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** +> createUser(body) + +Create user + +This can only be done by the logged in user. + +### Example +```dart +import 'package:swagger/api.dart'; + +var api_instance = new UserApi(); +var body = new User(); // User | Created user object + +try { + api_instance.createUser(body); +} catch (e) { + print("Exception when calling UserApi->createUser: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | [**User**](User.md)| Created user object | + +### Return type + +void (empty response body) + +### 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) + +# **createUsersWithArrayInput** +> createUsersWithArrayInput(body) + +Creates list of users with given input array + + + +### Example +```dart +import 'package:swagger/api.dart'; + +var api_instance = new UserApi(); +var body = [new List<User>()]; // List | List of user object + +try { + api_instance.createUsersWithArrayInput(body); +} catch (e) { + print("Exception when calling UserApi->createUsersWithArrayInput: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | [**List<User>**](User.md)| List of user object | + +### Return type + +void (empty response body) + +### 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) + +# **createUsersWithListInput** +> createUsersWithListInput(body) + +Creates list of users with given input array + + + +### Example +```dart +import 'package:swagger/api.dart'; + +var api_instance = new UserApi(); +var body = [new List<User>()]; // List | List of user object + +try { + api_instance.createUsersWithListInput(body); +} catch (e) { + print("Exception when calling UserApi->createUsersWithListInput: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | [**List<User>**](User.md)| List of user object | + +### Return type + +void (empty response body) + +### 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) + +# **deleteUser** +> deleteUser(username) + +Delete user + +This can only be done by the logged in user. + +### Example +```dart +import 'package:swagger/api.dart'; + +var api_instance = new UserApi(); +var username = username_example; // String | The name that needs to be deleted + +try { + api_instance.deleteUser(username); +} catch (e) { + print("Exception when calling UserApi->deleteUser: $e\n"); +} +``` + +### 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**: 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) + +# **getUserByName** +> User getUserByName(username) + +Get user by user name + + + +### Example +```dart +import 'package:swagger/api.dart'; + +var api_instance = new UserApi(); +var username = username_example; // String | The name that needs to be fetched. Use user1 for testing. + +try { + var result = api_instance.getUserByName(username); + print(result); +} catch (e) { + print("Exception when calling UserApi->getUserByName: $e\n"); +} +``` + +### 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(username, password) + +Logs user into the system + + + +### Example +```dart +import 'package:swagger/api.dart'; + +var api_instance = 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 { + var result = api_instance.loginUser(username, password); + print(result); +} catch (e) { + print("Exception when calling UserApi->loginUser: $e\n"); +} +``` + +### 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** +> logoutUser() + +Logs out current logged in user session + + + +### Example +```dart +import 'package:swagger/api.dart'; + +var api_instance = new UserApi(); + +try { + api_instance.logoutUser(); +} catch (e) { + print("Exception when calling UserApi->logoutUser: $e\n"); +} +``` + +### 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**: 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) + +# **updateUser** +> updateUser(username, body) + +Updated user + +This can only be done by the logged in user. + +### Example +```dart +import 'package:swagger/api.dart'; + +var api_instance = new UserApi(); +var username = username_example; // String | name that need to be deleted +var body = new User(); // User | Updated user object + +try { + api_instance.updateUser(username, body); +} catch (e) { + print("Exception when calling UserApi->updateUser: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **username** | **String**| name that need to be deleted | + **body** | [**User**](User.md)| Updated user object | + +### Return type + +void (empty response body) + +### 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/dart-jaguar/flutter_petstore/swagger/git_push.sh b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/git_push.sh new file mode 100644 index 000000000000..83553a63a416 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/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 swagger-petstore "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/dart-jaguar/flutter_petstore/swagger/lib/api.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/api.dart new file mode 100644 index 000000000000..aa14f928126c --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/api.dart @@ -0,0 +1,121 @@ +library swagger.api; + +import 'package:http/http.dart'; +import 'package:jaguar_serializer/jaguar_serializer.dart'; +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; +import 'package:swagger/auth/api_key_auth.dart'; +import 'package:swagger/auth/basic_auth.dart'; +import 'package:swagger/auth/oauth.dart'; + +import 'package:swagger/api/pet_api.dart'; +import 'package:swagger/api/store_api.dart'; +import 'package:swagger/api/user_api.dart'; + +import 'package:swagger/model/amount.dart'; +import 'package:swagger/model/api_response.dart'; +import 'package:swagger/model/category.dart'; +import 'package:swagger/model/currency.dart'; +import 'package:swagger/model/order.dart'; +import 'package:swagger/model/pet.dart'; +import 'package:swagger/model/tag.dart'; +import 'package:swagger/model/user.dart'; + + +final jsonJaguarRepo = JsonRepo() +..add(AmountSerializer()) +..add(ApiResponseSerializer()) +..add(CategorySerializer()) +..add(CurrencySerializer()) +..add(OrderSerializer()) +..add(PetSerializer()) +..add(TagSerializer()) +..add(UserSerializer()) +; + +final _defaultInterceptors = [OAuthInterceptor(), BasicAuthInterceptor(), ApiKeyAuthInterceptor()]; + +class JaguarApiGen { + List interceptors; + String basePath = "http://petstore.swagger.io/v2"; + Route _baseRoute; + + /** + * Add custom global interceptors, put overrideInterceptors to true to set your interceptors only (auth interceptors will not be added) + */ + JaguarApiGen({List interceptors, bool overrideInterceptors = false, String baseUrl}) { + _baseRoute = Route(baseUrl ?? basePath).withClient(globalClient ?? IOClient()); + if(interceptors == null) { + this.interceptors = _defaultInterceptors; + } + else if(overrideInterceptors){ + this.interceptors = interceptors; + } + else { + this.interceptors = List.from(_defaultInterceptors)..addAll(interceptors); + } + + this.interceptors.forEach((interceptor) { + _baseRoute.before(interceptor.before); + _baseRoute.after(interceptor.after); + }); + } + + void setOAuthToken(String name, String token) { + (_defaultInterceptors[0] as OAuthInterceptor).tokens[name] = token; + } + + void setBasicAuth(String name, String username, String password) { + (_defaultInterceptors[1] as BasicAuthInterceptor).authInfo[name] = BasicAuthInfo(username, password); + } + + void setApiKey(String name, String apiKey) { + (_defaultInterceptors[2] as ApiKeyAuthInterceptor).apiKeys[name] = apiKey; + } + + + /** + * Get PetApi instance, base route and serializer can be overridden by a given but be careful, + * by doing that all interceptors will not be executed + */ + PetApi getPetApi({Route base, SerializerRepo serializers}) { + if(base == null) { + base = _baseRoute; + } + if(serializers == null) { + serializers = jsonJaguarRepo; + } + return PetApi(base: base, serializers: serializers); + } + + + /** + * Get StoreApi instance, base route and serializer can be overridden by a given but be careful, + * by doing that all interceptors will not be executed + */ + StoreApi getStoreApi({Route base, SerializerRepo serializers}) { + if(base == null) { + base = _baseRoute; + } + if(serializers == null) { + serializers = jsonJaguarRepo; + } + return StoreApi(base: base, serializers: serializers); + } + + + /** + * Get UserApi instance, base route and serializer can be overridden by a given but be careful, + * by doing that all interceptors will not be executed + */ + UserApi getUserApi({Route base, SerializerRepo serializers}) { + if(base == null) { + base = _baseRoute; + } + if(serializers == null) { + serializers = jsonJaguarRepo; + } + return UserApi(base: base, serializers: serializers); + } + + +} \ No newline at end of file diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/api/pet_api.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/api/pet_api.dart new file mode 100644 index 000000000000..29f976a6c173 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/api/pet_api.dart @@ -0,0 +1,99 @@ +import 'package:jaguar_retrofit/annotations/annotations.dart'; +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; +import 'package:jaguar_serializer/jaguar_serializer.dart'; +import 'package:jaguar_serializer/src/repo/repo.dart'; +import 'dart:async'; + +import 'package:swagger/model/pet.dart'; +import 'package:swagger/model/api_response.dart'; + + +part 'pet_api.jretro.dart'; + +@GenApiClient() +class PetApi extends _$PetApiClient implements ApiClient { + final Route base; + final SerializerRepo serializers; + + PetApi({this.base, this.serializers}); + + /// Add a new pet to the store + /// + /// + @PostReq(path: "/pet", metadata: {"auth": [ {"type": "oauth2", "name": "petstore_auth" }]}) + Future addPet( + + @AsJson() Pet body + ); + + /// Deletes a pet + /// + /// + @DeleteReq(path: "/pet/:petId", metadata: {"auth": [ {"type": "oauth2", "name": "petstore_auth" }]}) + Future deletePet( + @PathParam("petId") int petId + , + @Header("api_key") String apiKey + ); + + /// Finds Pets by status + /// + /// Multiple status values can be provided with comma separated strings + @GetReq(path: "/pet/findByStatus", metadata: {"auth": [ {"type": "oauth2", "name": "petstore_auth" }]}) + Future> findPetsByStatus( + + @QueryParam("status") List status + ); + + /// Finds Pets by tags + /// + /// Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + @GetReq(path: "/pet/findByTags", metadata: {"auth": [ {"type": "oauth2", "name": "petstore_auth" }]}) + Future> findPetsByTags( + + @QueryParam("tags") List tags + ); + + /// Find pet by ID + /// + /// Returns a single pet + @GetReq(path: "/pet/:petId", metadata: {"auth": [ {"type": "apiKey", "name": "api_key", "keyName": "api_key", "where": "header" }]}) + Future getPetById( + @PathParam("petId") int petId + ); + + /// Update an existing pet + /// + /// + @PutReq(path: "/pet", metadata: {"auth": [ {"type": "oauth2", "name": "petstore_auth" }]}) + Future updatePet( + + @AsJson() Pet body + ); + + /// Updates a pet in the store with form data + /// + /// + @PostReq(path: "/pet/:petId", metadata: {"auth": [ {"type": "oauth2", "name": "petstore_auth" }]}) + Future updatePetWithForm( + @PathParam("petId") int petId + , + @AsFormField() String name, + + @AsFormField() String status + ); + + /// uploads an image + /// + /// + @PostReq(path: "/pet/:petId/uploadImage", metadata: {"auth": [ {"type": "oauth2", "name": "petstore_auth" }]}) + Future uploadFile( + @PathParam("petId") int petId + , + @AsMultipartField() String additionalMetadata, + + @AsMultipartField() MultipartFile file + ); + + +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/api/pet_api.jretro.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/api/pet_api.jretro.dart new file mode 100644 index 000000000000..e92337222901 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/api/pet_api.jretro.dart @@ -0,0 +1,146 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'pet_api.dart'; + +// ************************************************************************** +// JaguarHttpGenerator +// ************************************************************************** + +abstract class _$PetApiClient implements ApiClient { + final String basePath = ""; + Future addPet(Pet body) async { + var req = base.post + .metadata({ + "auth": [ + { + "type": "oauth2", + "name": "petstore_auth", + } + ], + }) + .path(basePath) + .path("/pet") + .json(serializers.to(body)); + await req.go(); + } + + Future deletePet(int petId, String apiKey) async { + var req = base.delete + .metadata({ + "auth": [ + { + "type": "oauth2", + "name": "petstore_auth", + } + ], + }) + .path(basePath) + .path("/pet/:petId") + .pathParams("petId", petId) + .header("api_key", apiKey); + await req.go(); + } + + Future> findPetsByStatus(List status) async { + var req = base.get + .metadata({ + "auth": [ + { + "type": "oauth2", + "name": "petstore_auth", + } + ], + }) + .path(basePath) + .path("/pet/findByStatus") + .query("status", status); + return req.list(convert: serializers.oneFrom); + } + + Future> findPetsByTags(List tags) async { + var req = base.get + .metadata({ + "auth": [ + { + "type": "oauth2", + "name": "petstore_auth", + } + ], + }) + .path(basePath) + .path("/pet/findByTags") + .query("tags", tags); + return req.list(convert: serializers.oneFrom); + } + + Future getPetById(int petId) async { + var req = base.get + .metadata({ + "auth": [ + { + "type": "apiKey", + "name": "api_key", + "keyName": "api_key", + "where": "header", + } + ], + }) + .path(basePath) + .path("/pet/:petId") + .pathParams("petId", petId); + return req.one(convert: serializers.oneFrom); + } + + Future updatePet(Pet body) async { + var req = base.put + .metadata({ + "auth": [ + { + "type": "oauth2", + "name": "petstore_auth", + } + ], + }) + .path(basePath) + .path("/pet") + .json(serializers.to(body)); + await req.go(); + } + + Future updatePetWithForm(int petId, String name, String status) async { + var req = base.post + .metadata({ + "auth": [ + { + "type": "oauth2", + "name": "petstore_auth", + } + ], + }) + .path(basePath) + .path("/pet/:petId") + .pathParams("petId", petId) + .urlEncodedFormField(name, name) + .urlEncodedFormField(status, status); + await req.go(); + } + + Future uploadFile( + int petId, String additionalMetadata, MultipartFile file) async { + var req = base.post + .metadata({ + "auth": [ + { + "type": "oauth2", + "name": "petstore_auth", + } + ], + }) + .path(basePath) + .path("/pet/:petId/uploadImage") + .pathParams("petId", petId) + .multipart({"additionalMetadata": additionalMetadata}) + .multipart({"file": file}); + return req.one(convert: serializers.oneFrom); + } +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/api/store_api.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/api/store_api.dart new file mode 100644 index 000000000000..34fd84bb4aa7 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/api/store_api.dart @@ -0,0 +1,52 @@ +import 'package:jaguar_retrofit/annotations/annotations.dart'; +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; +import 'package:jaguar_serializer/jaguar_serializer.dart'; +import 'package:jaguar_serializer/src/repo/repo.dart'; +import 'dart:async'; + +import 'package:swagger/model/order.dart'; + + +part 'store_api.jretro.dart'; + +@GenApiClient() +class StoreApi extends _$StoreApiClient implements ApiClient { + final Route base; + final SerializerRepo serializers; + + StoreApi({this.base, this.serializers}); + + /// Delete purchase order by ID + /// + /// For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + @DeleteReq(path: "/store/order/:orderId") + Future deleteOrder( + @PathParam("orderId") String orderId + ); + + /// Returns pet inventories by status + /// + /// Returns a map of status codes to quantities + @GetReq(path: "/store/inventory", metadata: {"auth": [ {"type": "apiKey", "name": "api_key", "keyName": "api_key", "where": "header" }]}) + Future> getInventory( + ); + + /// Find purchase order by ID + /// + /// For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + @GetReq(path: "/store/order/:orderId") + Future getOrderById( + @PathParam("orderId") int orderId + ); + + /// Place an order for a pet + /// + /// + @PostReq(path: "/store/order") + Future placeOrder( + + @AsJson() Order body + ); + + +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/api/store_api.jretro.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/api/store_api.jretro.dart new file mode 100644 index 000000000000..843a38a54c3a --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/api/store_api.jretro.dart @@ -0,0 +1,51 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'store_api.dart'; + +// ************************************************************************** +// JaguarHttpGenerator +// ************************************************************************** + +abstract class _$StoreApiClient implements ApiClient { + final String basePath = ""; + Future deleteOrder(String orderId) async { + var req = base.delete + .path(basePath) + .path("/store/order/:orderId") + .pathParams("orderId", orderId); + await req.go(); + } + + Future> getInventory() async { + var req = base.get + .metadata({ + "auth": [ + { + "type": "apiKey", + "name": "api_key", + "keyName": "api_key", + "where": "header", + } + ], + }) + .path(basePath) + .path("/store/inventory"); + return req.one().then((v) => serializers.mapFrom(v)); + } + + Future getOrderById(int orderId) async { + var req = base.get + .path(basePath) + .path("/store/order/:orderId") + .pathParams("orderId", orderId); + return req.one(convert: serializers.oneFrom); + } + + Future placeOrder(Order body) async { + var req = base.post + .path(basePath) + .path("/store/order") + .json(serializers.to(body)); + return req.one(convert: serializers.oneFrom); + } +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/api/user_api.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/api/user_api.dart new file mode 100644 index 000000000000..24beeb136db0 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/api/user_api.dart @@ -0,0 +1,91 @@ +import 'package:jaguar_retrofit/annotations/annotations.dart'; +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; +import 'package:jaguar_serializer/jaguar_serializer.dart'; +import 'package:jaguar_serializer/src/repo/repo.dart'; +import 'dart:async'; + +import 'package:swagger/model/user.dart'; + + +part 'user_api.jretro.dart'; + +@GenApiClient() +class UserApi extends _$UserApiClient implements ApiClient { + final Route base; + final SerializerRepo serializers; + + UserApi({this.base, this.serializers}); + + /// Create user + /// + /// This can only be done by the logged in user. + @PostReq(path: "/user") + Future createUser( + + @AsJson() User body + ); + + /// Creates list of users with given input array + /// + /// + @PostReq(path: "/user/createWithArray") + Future createUsersWithArrayInput( + + @AsJson() List body + ); + + /// Creates list of users with given input array + /// + /// + @PostReq(path: "/user/createWithList") + Future createUsersWithListInput( + + @AsJson() List body + ); + + /// Delete user + /// + /// This can only be done by the logged in user. + @DeleteReq(path: "/user/:username") + Future deleteUser( + @PathParam("username") String username + ); + + /// Get user by user name + /// + /// + @GetReq(path: "/user/:username") + Future getUserByName( + @PathParam("username") String username + ); + + /// Logs user into the system + /// + /// + @GetReq(path: "/user/login") + Future loginUser( + + @QueryParam("username") String username, + + @QueryParam("password") String password + ); + + /// Logs out current logged in user session + /// + /// + @GetReq(path: "/user/logout") + Future logoutUser( + ); + + /// Updated user + /// + /// This can only be done by the logged in user. + @PutReq(path: "/user/:username") + Future updateUser( + @PathParam("username") String username + , + @AsJson() User body + ); + + +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/api/user_api.jretro.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/api/user_api.jretro.dart new file mode 100644 index 000000000000..061f95a81bae --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/api/user_api.jretro.dart @@ -0,0 +1,70 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'user_api.dart'; + +// ************************************************************************** +// JaguarHttpGenerator +// ************************************************************************** + +abstract class _$UserApiClient implements ApiClient { + final String basePath = ""; + Future createUser(User body) async { + var req = base.post.path(basePath).path("/user").json(serializers.to(body)); + await req.go(); + } + + Future createUsersWithArrayInput(List body) async { + var req = base.post + .path(basePath) + .path("/user/createWithArray") + .json(serializers.to(body)); + await req.go(); + } + + Future createUsersWithListInput(List body) async { + var req = base.post + .path(basePath) + .path("/user/createWithList") + .json(serializers.to(body)); + await req.go(); + } + + Future deleteUser(String username) async { + var req = base.delete + .path(basePath) + .path("/user/:username") + .pathParams("username", username); + await req.go(); + } + + Future getUserByName(String username) async { + var req = base.get + .path(basePath) + .path("/user/:username") + .pathParams("username", username); + return req.one(convert: serializers.oneFrom); + } + + Future loginUser(String username, String password) async { + var req = base.get + .path(basePath) + .path("/user/login") + .query("username", username) + .query("password", password); + return req.one(); + } + + Future logoutUser() async { + var req = base.get.path(basePath).path("/user/logout"); + await req.go(); + } + + Future updateUser(String username, User body) async { + var req = base.put + .path(basePath) + .path("/user/:username") + .pathParams("username", username) + .json(serializers.to(body)); + await req.go(); + } +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/auth/api_key_auth.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/auth/api_key_auth.dart new file mode 100644 index 000000000000..398338b17229 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/auth/api_key_auth.dart @@ -0,0 +1,33 @@ +import 'dart:async'; +import 'package:swagger/auth/auth.dart'; +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; + +class ApiKeyAuthInterceptor extends AuthInterceptor { + Map apiKeys = {}; + + @override + FutureOr before(RouteBase route) { + final authInfo = getAuthInfo(route, "apiKey"); + for (var info in authInfo) { + final authName = info["name"]; + final authKeyName = info["keyName"]; + final authWhere = info["where"]; + final apiKey = apiKeys[authName]; + if(apiKey != null) { + if(authWhere == 'query'){ + route.query(authKeyName, apiKey); + } + else { + route.header(authKeyName, apiKey); + } + break; + } + } + return super.before(route); + } + + @override + FutureOr after(StringResponse response) { + return Future.value(response); + } +} \ No newline at end of file diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/auth/auth.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/auth/auth.dart new file mode 100644 index 000000000000..477fbbf83743 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/auth/auth.dart @@ -0,0 +1,23 @@ +import 'dart:async'; + +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; + +abstract class AuthInterceptor extends Interceptor { + /* + * Get auth information on given route for the given type + * Can return null if type is not present on auth data or if route doesn't need authentication + */ + List> getAuthInfo(RouteBase route, String type) { + if (route.metadataMap.containsKey("auth")) { + final auth = route.metadataMap["auth"]; + List> results = []; + for (var info in auth) { + if(info["type"] == type) { + results.add(info); + } + } + return results; + } + return []; + } +} \ No newline at end of file diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/auth/basic_auth.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/auth/basic_auth.dart new file mode 100644 index 000000000000..de25d170b420 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/auth/basic_auth.dart @@ -0,0 +1,34 @@ +import 'dart:async'; +import 'package:swagger/auth/auth.dart'; +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; + +class BasicAuthInfo { + final String username; + final String password; + + const BasicAuthInfo(this.username, this.password); + +} + +class BasicAuthInterceptor extends AuthInterceptor { + Map authInfo = {}; + + @override + FutureOr before(RouteBase route) { + final metadataAuthInfo = getAuthInfo(route, "basic"); + for (var info in metadataAuthInfo) { + final authName = info["name"]; + final basicAuthInfo = authInfo[authName]; + if(basicAuthInfo != null) { + route.basicAuth(basicAuthInfo.username, basicAuthInfo.password); + break; + } + } + return super.before(route); + } + + @override + FutureOr after(StringResponse response) { + return Future.value(response); + } +} \ No newline at end of file diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/auth/oauth.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/auth/oauth.dart new file mode 100644 index 000000000000..05bd70fdbcc6 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/auth/oauth.dart @@ -0,0 +1,25 @@ +import 'dart:async'; +import 'package:swagger/auth/auth.dart'; +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; + +class OAuthInterceptor extends AuthInterceptor { + Map tokens = {}; + + @override + FutureOr before(RouteBase route) { + final authInfo = getAuthInfo(route, "oauth"); + for (var info in authInfo) { + final token = tokens[info["name"]]; + if(token != null) { + route.header("Authorization", "Bearer ${token}"); + break; + } + } + return super.before(route); + } + + @override + FutureOr after(StringResponse response) { + return Future.value(response); + } +} \ No newline at end of file diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/amount.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/amount.dart new file mode 100644 index 000000000000..e701e966bf0d --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/amount.dart @@ -0,0 +1,32 @@ +import 'package:jaguar_serializer/jaguar_serializer.dart'; + +import 'package:swagger/model/currency.dart'; +part 'amount.jser.dart'; + +class Amount { + /* some description */ + final double value; + // range from 0.01 to 1000000000000000// + final Currency currency; + + + Amount( + + +{ + + this.value = null, + this.currency = null + } + ); + + @override + String toString() { + return 'Amount[value=$value, currency=$currency, ]'; + } +} + +@GenSerializer() +class AmountSerializer extends Serializer with _$AmountSerializer { + +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/amount.jser.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/amount.jser.dart new file mode 100644 index 000000000000..9c03e8a62d49 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/amount.jser.dart @@ -0,0 +1,31 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'amount.dart'; + +// ************************************************************************** +// JaguarSerializerGenerator +// ************************************************************************** + +abstract class _$AmountSerializer implements Serializer { + Serializer __currencySerializer; + Serializer get _currencySerializer => + __currencySerializer ??= new CurrencySerializer(); + @override + Map toMap(Amount model) { + if (model == null) return null; + Map ret = {}; + setMapValue(ret, 'value', model.value); + setMapValue(ret, 'currency', _currencySerializer.toMap(model.currency)); + return ret; + } + + @override + Amount fromMap(Map map) { + if (map == null) return null; + final obj = new Amount( + value: map['value'] as double ?? getJserDefault('value'), + currency: _currencySerializer.fromMap(map['currency'] as Map) ?? + getJserDefault('currency')); + return obj; + } +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/api_response.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/api_response.dart new file mode 100644 index 000000000000..2b9fa763b009 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/api_response.dart @@ -0,0 +1,34 @@ +import 'package:jaguar_serializer/jaguar_serializer.dart'; + +part 'api_response.jser.dart'; + +class ApiResponse { + + final int code; + + final String type; + + final String message; + + + ApiResponse( + + +{ + this.code = null, + this.type = null, + this.message = null + + } + ); + + @override + String toString() { + return 'ApiResponse[code=$code, type=$type, message=$message, ]'; + } +} + +@GenSerializer() +class ApiResponseSerializer extends Serializer with _$ApiResponseSerializer { + +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/api_response.jser.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/api_response.jser.dart new file mode 100644 index 000000000000..b4b6c090975c --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/api_response.jser.dart @@ -0,0 +1,29 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'api_response.dart'; + +// ************************************************************************** +// JaguarSerializerGenerator +// ************************************************************************** + +abstract class _$ApiResponseSerializer implements Serializer { + @override + Map toMap(ApiResponse model) { + if (model == null) return null; + Map ret = {}; + setMapValue(ret, 'code', model.code); + setMapValue(ret, 'type', model.type); + setMapValue(ret, 'message', model.message); + return ret; + } + + @override + ApiResponse fromMap(Map map) { + if (map == null) return null; + final obj = new ApiResponse( + code: map['code'] as int ?? getJserDefault('code'), + type: map['type'] as String ?? getJserDefault('type'), + message: map['message'] as String ?? getJserDefault('message')); + return obj; + } +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/category.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/category.dart new file mode 100644 index 000000000000..2f5e7bd9c50f --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/category.dart @@ -0,0 +1,31 @@ +import 'package:jaguar_serializer/jaguar_serializer.dart'; + +part 'category.jser.dart'; + +class Category { + + final int id; + + final String name; + + + Category( + + +{ + this.id = null, + this.name = null + + } + ); + + @override + String toString() { + return 'Category[id=$id, name=$name, ]'; + } +} + +@GenSerializer() +class CategorySerializer extends Serializer with _$CategorySerializer { + +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/category.jser.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/category.jser.dart new file mode 100644 index 000000000000..763bcd3dd6e2 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/category.jser.dart @@ -0,0 +1,27 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'category.dart'; + +// ************************************************************************** +// JaguarSerializerGenerator +// ************************************************************************** + +abstract class _$CategorySerializer implements Serializer { + @override + Map toMap(Category model) { + if (model == null) return null; + Map ret = {}; + setMapValue(ret, 'id', model.id); + setMapValue(ret, 'name', model.name); + return ret; + } + + @override + Category fromMap(Map map) { + if (map == null) return null; + final obj = new Category( + id: map['id'] as int ?? getJserDefault('id'), + name: map['name'] as String ?? getJserDefault('name')); + return obj; + } +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/currency.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/currency.dart new file mode 100644 index 000000000000..9a5825e52d55 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/currency.dart @@ -0,0 +1,23 @@ +import 'package:jaguar_serializer/jaguar_serializer.dart'; + +part 'currency.jser.dart'; + +class Currency { + + + Currency( + + + + ); + + @override + String toString() { + return 'Currency[]'; + } +} + +@GenSerializer() +class CurrencySerializer extends Serializer with _$CurrencySerializer { + +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/currency.jser.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/currency.jser.dart new file mode 100644 index 000000000000..6bc06bc69bc0 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/currency.jser.dart @@ -0,0 +1,23 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'currency.dart'; + +// ************************************************************************** +// JaguarSerializerGenerator +// ************************************************************************** + +abstract class _$CurrencySerializer implements Serializer { + @override + Map toMap(Currency model) { + if (model == null) return null; + Map ret = {}; + return ret; + } + + @override + Currency fromMap(Map map) { + if (map == null) return null; + final obj = new Currency(); + return obj; + } +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/order.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/order.dart new file mode 100644 index 000000000000..46a7a839b3b0 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/order.dart @@ -0,0 +1,43 @@ +import 'package:jaguar_serializer/jaguar_serializer.dart'; + +part 'order.jser.dart'; + +class Order { + + final int id; + + final int petId; + + final int quantity; + + final DateTime shipDate; + /* Order Status */ + final String status; + //enum statusEnum { placed, approved, delivered, }; + final bool complete; + + + Order( + + +{ + this.id = null, + this.petId = null, + this.quantity = null, + this.shipDate = null, + this.status = null, + this.complete = null + + } + ); + + @override + String toString() { + return 'Order[id=$id, petId=$petId, quantity=$quantity, shipDate=$shipDate, status=$status, complete=$complete, ]'; + } +} + +@GenSerializer() +class OrderSerializer extends Serializer with _$OrderSerializer { + +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/order.jser.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/order.jser.dart new file mode 100644 index 000000000000..52e5d7a01bad --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/order.jser.dart @@ -0,0 +1,37 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'order.dart'; + +// ************************************************************************** +// JaguarSerializerGenerator +// ************************************************************************** + +abstract class _$OrderSerializer implements Serializer { + @override + Map toMap(Order model) { + if (model == null) return null; + Map ret = {}; + setMapValue(ret, 'id', model.id); + setMapValue(ret, 'petId', model.petId); + setMapValue(ret, 'quantity', model.quantity); + setMapValue( + ret, 'shipDate', dateTimeUtcProcessor.serialize(model.shipDate)); + setMapValue(ret, 'status', model.status); + setMapValue(ret, 'complete', model.complete); + return ret; + } + + @override + Order fromMap(Map map) { + if (map == null) return null; + final obj = new Order( + id: map['id'] as int ?? getJserDefault('id'), + petId: map['petId'] as int ?? getJserDefault('petId'), + quantity: map['quantity'] as int ?? getJserDefault('quantity'), + shipDate: dateTimeUtcProcessor.deserialize(map['shipDate'] as String) ?? + getJserDefault('shipDate'), + status: map['status'] as String ?? getJserDefault('status'), + complete: map['complete'] as bool ?? getJserDefault('complete')); + return obj; + } +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/pet.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/pet.dart new file mode 100644 index 000000000000..0c1d274b8b4a --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/pet.dart @@ -0,0 +1,45 @@ +import 'package:jaguar_serializer/jaguar_serializer.dart'; + +import 'package:swagger/model/tag.dart'; +import 'package:swagger/model/category.dart'; +part 'pet.jser.dart'; + +class Pet { + + final int id; + + final Category category; + + final String name; + + final List photoUrls; + + final List tags; + /* pet status in the store */ + final String status; + //enum statusEnum { available, pending, sold, }; + + Pet( + + +{ + this.id = null, + this.category = null, + + this.name = null, + this.photoUrls = const [], this.tags = const [], + this.status = null + + } + ); + + @override + String toString() { + return 'Pet[id=$id, category=$category, name=$name, photoUrls=$photoUrls, tags=$tags, status=$status, ]'; + } +} + +@GenSerializer() +class PetSerializer extends Serializer with _$PetSerializer { + +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/pet.jser.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/pet.jser.dart new file mode 100644 index 000000000000..ce4f22f96865 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/pet.jser.dart @@ -0,0 +1,47 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'pet.dart'; + +// ************************************************************************** +// JaguarSerializerGenerator +// ************************************************************************** + +abstract class _$PetSerializer implements Serializer { + Serializer __categorySerializer; + Serializer get _categorySerializer => + __categorySerializer ??= new CategorySerializer(); + Serializer __tagSerializer; + Serializer get _tagSerializer => __tagSerializer ??= new TagSerializer(); + @override + Map toMap(Pet model) { + if (model == null) return null; + Map ret = {}; + setMapValue(ret, 'id', model.id); + setMapValue(ret, 'category', _categorySerializer.toMap(model.category)); + setMapValue(ret, 'name', model.name); + setMapValue(ret, 'photoUrls', + codeIterable(model.photoUrls, (val) => val as String)); + setMapValue(ret, 'tags', + codeIterable(model.tags, (val) => _tagSerializer.toMap(val as Tag))); + setMapValue(ret, 'status', model.status); + return ret; + } + + @override + Pet fromMap(Map map) { + if (map == null) return null; + final obj = new Pet( + id: map['id'] as int ?? getJserDefault('id'), + category: _categorySerializer.fromMap(map['category'] as Map) ?? + getJserDefault('category'), + name: map['name'] as String ?? getJserDefault('name'), + photoUrls: codeIterable( + map['photoUrls'] as Iterable, (val) => val as String) ?? + getJserDefault('photoUrls'), + tags: codeIterable(map['tags'] as Iterable, + (val) => _tagSerializer.fromMap(val as Map)) ?? + getJserDefault('tags'), + status: map['status'] as String ?? getJserDefault('status')); + return obj; + } +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/tag.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/tag.dart new file mode 100644 index 000000000000..7b294b3008b5 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/tag.dart @@ -0,0 +1,31 @@ +import 'package:jaguar_serializer/jaguar_serializer.dart'; + +part 'tag.jser.dart'; + +class Tag { + + final int id; + + final String name; + + + Tag( + + +{ + this.id = null, + this.name = null + + } + ); + + @override + String toString() { + return 'Tag[id=$id, name=$name, ]'; + } +} + +@GenSerializer() +class TagSerializer extends Serializer with _$TagSerializer { + +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/tag.jser.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/tag.jser.dart new file mode 100644 index 000000000000..cdb14e1783ee --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/tag.jser.dart @@ -0,0 +1,27 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'tag.dart'; + +// ************************************************************************** +// JaguarSerializerGenerator +// ************************************************************************** + +abstract class _$TagSerializer implements Serializer { + @override + Map toMap(Tag model) { + if (model == null) return null; + Map ret = {}; + setMapValue(ret, 'id', model.id); + setMapValue(ret, 'name', model.name); + return ret; + } + + @override + Tag fromMap(Map map) { + if (map == null) return null; + final obj = new Tag( + id: map['id'] as int ?? getJserDefault('id'), + name: map['name'] as String ?? getJserDefault('name')); + return obj; + } +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/user.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/user.dart new file mode 100644 index 000000000000..fddc756616a1 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/user.dart @@ -0,0 +1,49 @@ +import 'package:jaguar_serializer/jaguar_serializer.dart'; + +part 'user.jser.dart'; + +class User { + + final int id; + + final String username; + + final String firstName; + + final String lastName; + + final String email; + + final String password; + + final String phone; + /* User Status */ + final int userStatus; + + + User( + + +{ + this.id = null, + this.username = null, + this.firstName = null, + this.lastName = null, + this.email = null, + this.password = null, + this.phone = null, + this.userStatus = null + + } + ); + + @override + String toString() { + return 'User[id=$id, username=$username, firstName=$firstName, lastName=$lastName, email=$email, password=$password, phone=$phone, userStatus=$userStatus, ]'; + } +} + +@GenSerializer() +class UserSerializer extends Serializer with _$UserSerializer { + +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/user.jser.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/user.jser.dart new file mode 100644 index 000000000000..0eced9472d04 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/lib/model/user.jser.dart @@ -0,0 +1,39 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'user.dart'; + +// ************************************************************************** +// JaguarSerializerGenerator +// ************************************************************************** + +abstract class _$UserSerializer implements Serializer { + @override + Map toMap(User model) { + if (model == null) return null; + Map ret = {}; + setMapValue(ret, 'id', model.id); + setMapValue(ret, 'username', model.username); + setMapValue(ret, 'firstName', model.firstName); + setMapValue(ret, 'lastName', model.lastName); + setMapValue(ret, 'email', model.email); + setMapValue(ret, 'password', model.password); + setMapValue(ret, 'phone', model.phone); + setMapValue(ret, 'userStatus', model.userStatus); + return ret; + } + + @override + User fromMap(Map map) { + if (map == null) return null; + final obj = new User( + id: map['id'] as int ?? getJserDefault('id'), + username: map['username'] as String ?? getJserDefault('username'), + firstName: map['firstName'] as String ?? getJserDefault('firstName'), + lastName: map['lastName'] as String ?? getJserDefault('lastName'), + email: map['email'] as String ?? getJserDefault('email'), + password: map['password'] as String ?? getJserDefault('password'), + phone: map['phone'] as String ?? getJserDefault('phone'), + userStatus: map['userStatus'] as int ?? getJserDefault('userStatus')); + return obj; + } +} diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/pubspec.yaml b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/pubspec.yaml new file mode 100644 index 000000000000..ed3ac632ff10 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/swagger/pubspec.yaml @@ -0,0 +1,12 @@ +name: swagger +version: 1.0.0 +description: Swagger API client +environment: + sdk: ">=2.0.0 <3.0.0" +dependencies: + jaguar_retrofit: '^2.5.4' + jaguar_serializer: '^2.2.2' +dev_dependencies: + jaguar_retrofit_gen: '^2.5.2' + jaguar_serializer_cli: '^2.2.1' + build_runner: '^0.10.0' \ No newline at end of file diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/test/widget_test.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/test/widget_test.dart new file mode 100644 index 000000000000..ae01c7b8e72c --- /dev/null +++ b/samples/client/petstore/dart-jaguar/flutter_petstore/test/widget_test.dart @@ -0,0 +1,29 @@ +// This is a basic Flutter widget test. +// To perform an interaction with a widget in your test, use the WidgetTester utility that Flutter +// provides. For example, you can send tap and scroll gestures. You can also use WidgetTester to +// find child widgets in the widget tree, read text, and verify that the values of widget properties +// are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:flutter_petstore/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(new MyApp()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +} diff --git a/samples/client/petstore/dart-jaguar/swagger/.gitignore b/samples/client/petstore/dart-jaguar/swagger/.gitignore new file mode 100644 index 000000000000..7c2804416498 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/.gitignore @@ -0,0 +1,27 @@ +# See https://www.dartlang.org/tools/private-files.html + +# Files and directories created by pub +.buildlog +.packages +.project +.pub/ +build/ +**/packages/ + +# Files created by dart2js +# (Most Dart developers will use pub build to compile Dart, use/modify these +# rules if you intend to use dart2js directly +# Convention is to use extension '.dart.js' for Dart compiled to Javascript to +# differentiate from explicit Javascript files) +*.dart.js +*.part.js +*.js.deps +*.js.map +*.info.json + +# Directory created by dartdoc +doc/api/ + +# Don't commit pubspec lock file +# (Library packages only! Remove pattern if developing an application package) +pubspec.lock diff --git a/samples/client/petstore/dart-jaguar/swagger/.swagger-codegen-ignore b/samples/client/petstore/dart-jaguar/swagger/.swagger-codegen-ignore new file mode 100644 index 000000000000..c5fa491b4c55 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/.swagger-codegen-ignore @@ -0,0 +1,23 @@ +# Swagger Codegen Ignore +# Generated by swagger-codegen https://github.com/swagger-api/swagger-codegen + +# 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 Swagger Codgen 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/dart-jaguar/swagger/.swagger-codegen/VERSION b/samples/client/petstore/dart-jaguar/swagger/.swagger-codegen/VERSION new file mode 100644 index 000000000000..855ff9501eb8 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.4.0-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/dart-jaguar/swagger/README.md b/samples/client/petstore/dart-jaguar/swagger/README.md new file mode 100644 index 000000000000..13aeb663d2ab --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/README.md @@ -0,0 +1,133 @@ +# swagger +This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. + +This Dart package is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: + +- API version: 1.0.0 +- Build date: 2018-09-11T20:08:21.783+02:00 +- Build package: io.swagger.codegen.languages.DartJaguarClientCodegen + +## Requirements + +Dart 2 or later OR Flutter 0.7.0 or later. + +Once your code is generated, you need to run the build_runner command to let Jaguar implement your API: + +```sh +flutter packages pub run build_runner build +or +pub run build_runner build +``` + +## Installation & Usage + +### Github +If this Dart package is published to Github, please include the following in pubspec.yaml +``` +name: swagger +version: 1.0.0 +description: Swagger API client +dependencies: + swagger: + git: https://github.com/GIT_USER_ID/GIT_REPO_ID.git + version: 'any' +``` + +### Local +To use the package in your local drive, please include the following in pubspec.yaml +``` +dependencies: + swagger: + path: /path/to/swagger +``` + +## Tests + +TODO + +## Getting Started + +Please follow the [installation procedure](#installation--usage) and then run the following: + +```dart +import 'package:swagger/api.dart'; + +// TODO Configure OAuth2 access token for authorization: petstore_auth +//swagger.api.Configuration.accessToken = 'YOUR_ACCESS_TOKEN'; + +final swaggerGen = SwaggerGen(); +var api_instance = swaggerGen.getPetApi(); +var body = new Pet(); // Pet | Pet object that needs to be added to the store + +try { + api_instance.addPet(body); +} catch (e) { + print("Exception when calling PetApi->addPet: $e\n"); +} + +``` + +## Documentation for API Endpoints + +All URIs are relative to *http://petstore.swagger.io/v2* + +Class | Method | HTTP request | Description +------------ | ------------- | ------------- | ------------- +*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 +*StoreApi* | [**deleteOrder**](docs//StoreApi.md#deleteorder) | **Delete** /store/order/:orderId | 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/:orderId | 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 + + - [Amount](docs//Amount.md) + - [ApiResponse](docs//ApiResponse.md) + - [Category](docs//Category.md) + - [Currency](docs//Currency.md) + - [Order](docs//Order.md) + - [Pet](docs//Pet.md) + - [Tag](docs//Tag.md) + - [User](docs//User.md) + + +## Documentation For Authorization + + +## api_key + +- **Type**: API key +- **API key parameter name**: api_key +- **Location**: HTTP header + +## 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 + + +## Author + +apiteam@swagger.io + + diff --git a/samples/client/petstore/dart-jaguar/swagger/analysis_options.yaml b/samples/client/petstore/dart-jaguar/swagger/analysis_options.yaml new file mode 100644 index 000000000000..518eb901a6ff --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/analysis_options.yaml @@ -0,0 +1,2 @@ +analyzer: + strong-mode: true \ No newline at end of file diff --git a/samples/client/petstore/dart-jaguar/swagger/docs/Amount.md b/samples/client/petstore/dart-jaguar/swagger/docs/Amount.md new file mode 100644 index 000000000000..12c2fc20a7a7 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/docs/Amount.md @@ -0,0 +1,16 @@ +# swagger.model.Amount + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**value** | **double** | some description | [default to null] +**currency** | [**Currency**](Currency.md) | | [default to null] + +[[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/dart-jaguar/swagger/docs/ApiResponse.md b/samples/client/petstore/dart-jaguar/swagger/docs/ApiResponse.md new file mode 100644 index 000000000000..7bc0c834d782 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/docs/ApiResponse.md @@ -0,0 +1,17 @@ +# swagger.model.ApiResponse + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | | [optional] [default to null] +**type** | **String** | | [optional] [default to null] +**message** | **String** | | [optional] [default to null] + +[[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/dart-jaguar/swagger/docs/Category.md b/samples/client/petstore/dart-jaguar/swagger/docs/Category.md new file mode 100644 index 000000000000..3f5d01c5e1ce --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/docs/Category.md @@ -0,0 +1,16 @@ +# swagger.model.Category + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **int** | | [optional] [default to null] +**name** | **String** | | [optional] [default to null] + +[[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/dart-jaguar/swagger/docs/Currency.md b/samples/client/petstore/dart-jaguar/swagger/docs/Currency.md new file mode 100644 index 000000000000..0b25bce60f58 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/docs/Currency.md @@ -0,0 +1,14 @@ +# swagger.model.Currency + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## 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/dart-jaguar/swagger/docs/Order.md b/samples/client/petstore/dart-jaguar/swagger/docs/Order.md new file mode 100644 index 000000000000..c076322a76e3 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/docs/Order.md @@ -0,0 +1,20 @@ +# swagger.model.Order + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **int** | | [optional] [default to null] +**petId** | **int** | | [optional] [default to null] +**quantity** | **int** | | [optional] [default to null] +**shipDate** | [**DateTime**](DateTime.md) | | [optional] [default to null] +**status** | **String** | Order Status | [optional] [default to null] +**complete** | **bool** | | [optional] [default to null] + +[[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/dart-jaguar/swagger/docs/Pet.md b/samples/client/petstore/dart-jaguar/swagger/docs/Pet.md new file mode 100644 index 000000000000..a9e12476aafe --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/docs/Pet.md @@ -0,0 +1,20 @@ +# swagger.model.Pet + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **int** | | [optional] [default to null] +**category** | [**Category**](Category.md) | | [optional] [default to null] +**name** | **String** | | [default to null] +**photoUrls** | **List<String>** | | [default to const []] +**tags** | [**List<Tag>**](Tag.md) | | [optional] [default to const []] +**status** | **String** | pet status in the store | [optional] [default to null] + +[[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/dart-jaguar/swagger/docs/PetApi.md b/samples/client/petstore/dart-jaguar/swagger/docs/PetApi.md new file mode 100644 index 000000000000..91fb5270942c --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/docs/PetApi.md @@ -0,0 +1,389 @@ +# swagger.api.PetApi + +## Load the API package +```dart +import 'package:swagger/api.dart'; +``` + +All URIs are relative to *http://petstore.swagger.io/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 + + +# **addPet** +> addPet(body) + +Add a new pet to the store + + + +### Example +```dart +import 'package:swagger/api.dart'; +// TODO Configure OAuth2 access token for authorization: petstore_auth +//swagger.api.Configuration.accessToken = 'YOUR_ACCESS_TOKEN'; + +var api_instance = new PetApi(); +var body = new Pet(); // Pet | Pet object that needs to be added to the store + +try { + api_instance.addPet(body); +} catch (e) { + print("Exception when calling PetApi->addPet: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | [**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**: 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) + +# **deletePet** +> deletePet(petId, apiKey) + +Deletes a pet + + + +### Example +```dart +import 'package:swagger/api.dart'; +// TODO Configure OAuth2 access token for authorization: petstore_auth +//swagger.api.Configuration.accessToken = 'YOUR_ACCESS_TOKEN'; + +var api_instance = new PetApi(); +var petId = 789; // int | Pet id to delete +var apiKey = apiKey_example; // String | + +try { + api_instance.deletePet(petId, apiKey); +} catch (e) { + print("Exception when calling PetApi->deletePet: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **petId** | **int**| 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**: 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) + +# **findPetsByStatus** +> List findPetsByStatus(status) + +Finds Pets by status + +Multiple status values can be provided with comma separated strings + +### Example +```dart +import 'package:swagger/api.dart'; +// TODO Configure OAuth2 access token for authorization: petstore_auth +//swagger.api.Configuration.accessToken = 'YOUR_ACCESS_TOKEN'; + +var api_instance = new PetApi(); +var status = []; // List | Status values that need to be considered for filter + +try { + var result = api_instance.findPetsByStatus(status); + print(result); +} catch (e) { + print("Exception when calling PetApi->findPetsByStatus: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **status** | [**List<String>**](String.md)| 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(tags) + +Finds Pets by tags + +Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + +### Example +```dart +import 'package:swagger/api.dart'; +// TODO Configure OAuth2 access token for authorization: petstore_auth +//swagger.api.Configuration.accessToken = 'YOUR_ACCESS_TOKEN'; + +var api_instance = new PetApi(); +var tags = []; // List | Tags to filter by + +try { + var result = api_instance.findPetsByTags(tags); + print(result); +} catch (e) { + print("Exception when calling PetApi->findPetsByTags: $e\n"); +} +``` + +### 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(petId) + +Find pet by ID + +Returns a single pet + +### Example +```dart +import 'package:swagger/api.dart'; +// TODO Configure API key authorization: api_key +//swagger.api.Configuration.apiKey{'api_key'} = 'YOUR_API_KEY'; +// uncomment below to setup prefix (e.g. Bearer) for API key, if needed +//swagger.api.Configuration.apiKeyPrefix{'api_key'} = "Bearer"; + +var api_instance = new PetApi(); +var petId = 789; // int | ID of pet to return + +try { + var result = api_instance.getPetById(petId); + print(result); +} catch (e) { + print("Exception when calling PetApi->getPetById: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **petId** | **int**| 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** +> updatePet(body) + +Update an existing pet + + + +### Example +```dart +import 'package:swagger/api.dart'; +// TODO Configure OAuth2 access token for authorization: petstore_auth +//swagger.api.Configuration.accessToken = 'YOUR_ACCESS_TOKEN'; + +var api_instance = new PetApi(); +var body = new Pet(); // Pet | Pet object that needs to be added to the store + +try { + api_instance.updatePet(body); +} catch (e) { + print("Exception when calling PetApi->updatePet: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | [**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**: 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) + +# **updatePetWithForm** +> updatePetWithForm(petId, name, status) + +Updates a pet in the store with form data + + + +### Example +```dart +import 'package:swagger/api.dart'; +// TODO Configure OAuth2 access token for authorization: petstore_auth +//swagger.api.Configuration.accessToken = 'YOUR_ACCESS_TOKEN'; + +var api_instance = new PetApi(); +var petId = 789; // int | ID of pet that needs to be updated +var name = name_example; // String | Updated name of the pet +var status = status_example; // String | Updated status of the pet + +try { + api_instance.updatePetWithForm(petId, name, status); +} catch (e) { + print("Exception when calling PetApi->updatePetWithForm: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **petId** | **int**| 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**: 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) + +# **uploadFile** +> ApiResponse uploadFile(petId, additionalMetadata, file) + +uploads an image + + + +### Example +```dart +import 'package:swagger/api.dart'; +// TODO Configure OAuth2 access token for authorization: petstore_auth +//swagger.api.Configuration.accessToken = 'YOUR_ACCESS_TOKEN'; + +var api_instance = new PetApi(); +var petId = 789; // int | ID of pet to update +var additionalMetadata = additionalMetadata_example; // String | Additional data to pass to server +var file = /path/to/file.txt; // MultipartFile | file to upload + +try { + var result = api_instance.uploadFile(petId, additionalMetadata, file); + print(result); +} catch (e) { + print("Exception when calling PetApi->uploadFile: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **petId** | **int**| ID of pet to update | + **additionalMetadata** | **String**| Additional data to pass to server | [optional] + **file** | **MultipartFile**| 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) + diff --git a/samples/client/petstore/dart-jaguar/swagger/docs/StoreApi.md b/samples/client/petstore/dart-jaguar/swagger/docs/StoreApi.md new file mode 100644 index 000000000000..4ce520a8dfb8 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/docs/StoreApi.md @@ -0,0 +1,188 @@ +# swagger.api.StoreApi + +## Load the API package +```dart +import 'package:swagger/api.dart'; +``` + +All URIs are relative to *http://petstore.swagger.io/v2* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**deleteOrder**](StoreApi.md#deleteOrder) | **Delete** /store/order/:orderId | Delete purchase order by ID +[**getInventory**](StoreApi.md#getInventory) | **Get** /store/inventory | Returns pet inventories by status +[**getOrderById**](StoreApi.md#getOrderById) | **Get** /store/order/:orderId | Find purchase order by ID +[**placeOrder**](StoreApi.md#placeOrder) | **Post** /store/order | Place an order for a pet + + +# **deleteOrder** +> deleteOrder(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 +```dart +import 'package:swagger/api.dart'; + +var api_instance = new StoreApi(); +var orderId = orderId_example; // String | ID of the order that needs to be deleted + +try { + api_instance.deleteOrder(orderId); +} catch (e) { + print("Exception when calling StoreApi->deleteOrder: $e\n"); +} +``` + +### 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**: 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) + +# **getInventory** +> Map getInventory() + +Returns pet inventories by status + +Returns a map of status codes to quantities + +### Example +```dart +import 'package:swagger/api.dart'; +// TODO Configure API key authorization: api_key +//swagger.api.Configuration.apiKey{'api_key'} = 'YOUR_API_KEY'; +// uncomment below to setup prefix (e.g. Bearer) for API key, if needed +//swagger.api.Configuration.apiKeyPrefix{'api_key'} = "Bearer"; + +var api_instance = new StoreApi(); + +try { + var result = api_instance.getInventory(); + print(result); +} catch (e) { + print("Exception when calling StoreApi->getInventory: $e\n"); +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +**Map** + +### 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(orderId) + +Find purchase order by ID + +For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + +### Example +```dart +import 'package:swagger/api.dart'; + +var api_instance = new StoreApi(); +var orderId = 789; // int | ID of pet that needs to be fetched + +try { + var result = api_instance.getOrderById(orderId); + print(result); +} catch (e) { + print("Exception when calling StoreApi->getOrderById: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **orderId** | **int**| 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(body) + +Place an order for a pet + + + +### Example +```dart +import 'package:swagger/api.dart'; + +var api_instance = new StoreApi(); +var body = new Order(); // Order | order placed for purchasing the pet + +try { + var result = api_instance.placeOrder(body); + print(result); +} catch (e) { + print("Exception when calling StoreApi->placeOrder: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | [**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/dart-jaguar/swagger/docs/Tag.md b/samples/client/petstore/dart-jaguar/swagger/docs/Tag.md new file mode 100644 index 000000000000..c644f1e826ae --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/docs/Tag.md @@ -0,0 +1,16 @@ +# swagger.model.Tag + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **int** | | [optional] [default to null] +**name** | **String** | | [optional] [default to null] + +[[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/dart-jaguar/swagger/docs/User.md b/samples/client/petstore/dart-jaguar/swagger/docs/User.md new file mode 100644 index 000000000000..d49bb37d96c5 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/docs/User.md @@ -0,0 +1,22 @@ +# swagger.model.User + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **int** | | [optional] [default to null] +**username** | **String** | | [optional] [default to null] +**firstName** | **String** | | [optional] [default to null] +**lastName** | **String** | | [optional] [default to null] +**email** | **String** | | [optional] [default to null] +**password** | **String** | | [optional] [default to null] +**phone** | **String** | | [optional] [default to null] +**userStatus** | **int** | User Status | [optional] [default to null] + +[[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/dart-jaguar/swagger/docs/UserApi.md b/samples/client/petstore/dart-jaguar/swagger/docs/UserApi.md new file mode 100644 index 000000000000..8f6261ec03dc --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/docs/UserApi.md @@ -0,0 +1,359 @@ +# swagger.api.UserApi + +## Load the API package +```dart +import 'package:swagger/api.dart'; +``` + +All URIs are relative to *http://petstore.swagger.io/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** +> createUser(body) + +Create user + +This can only be done by the logged in user. + +### Example +```dart +import 'package:swagger/api.dart'; + +var api_instance = new UserApi(); +var body = new User(); // User | Created user object + +try { + api_instance.createUser(body); +} catch (e) { + print("Exception when calling UserApi->createUser: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | [**User**](User.md)| Created user object | + +### Return type + +void (empty response body) + +### 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) + +# **createUsersWithArrayInput** +> createUsersWithArrayInput(body) + +Creates list of users with given input array + + + +### Example +```dart +import 'package:swagger/api.dart'; + +var api_instance = new UserApi(); +var body = [new List<User>()]; // List | List of user object + +try { + api_instance.createUsersWithArrayInput(body); +} catch (e) { + print("Exception when calling UserApi->createUsersWithArrayInput: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | [**List<User>**](User.md)| List of user object | + +### Return type + +void (empty response body) + +### 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) + +# **createUsersWithListInput** +> createUsersWithListInput(body) + +Creates list of users with given input array + + + +### Example +```dart +import 'package:swagger/api.dart'; + +var api_instance = new UserApi(); +var body = [new List<User>()]; // List | List of user object + +try { + api_instance.createUsersWithListInput(body); +} catch (e) { + print("Exception when calling UserApi->createUsersWithListInput: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | [**List<User>**](User.md)| List of user object | + +### Return type + +void (empty response body) + +### 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) + +# **deleteUser** +> deleteUser(username) + +Delete user + +This can only be done by the logged in user. + +### Example +```dart +import 'package:swagger/api.dart'; + +var api_instance = new UserApi(); +var username = username_example; // String | The name that needs to be deleted + +try { + api_instance.deleteUser(username); +} catch (e) { + print("Exception when calling UserApi->deleteUser: $e\n"); +} +``` + +### 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**: 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) + +# **getUserByName** +> User getUserByName(username) + +Get user by user name + + + +### Example +```dart +import 'package:swagger/api.dart'; + +var api_instance = new UserApi(); +var username = username_example; // String | The name that needs to be fetched. Use user1 for testing. + +try { + var result = api_instance.getUserByName(username); + print(result); +} catch (e) { + print("Exception when calling UserApi->getUserByName: $e\n"); +} +``` + +### 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(username, password) + +Logs user into the system + + + +### Example +```dart +import 'package:swagger/api.dart'; + +var api_instance = 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 { + var result = api_instance.loginUser(username, password); + print(result); +} catch (e) { + print("Exception when calling UserApi->loginUser: $e\n"); +} +``` + +### 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** +> logoutUser() + +Logs out current logged in user session + + + +### Example +```dart +import 'package:swagger/api.dart'; + +var api_instance = new UserApi(); + +try { + api_instance.logoutUser(); +} catch (e) { + print("Exception when calling UserApi->logoutUser: $e\n"); +} +``` + +### 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**: 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) + +# **updateUser** +> updateUser(username, body) + +Updated user + +This can only be done by the logged in user. + +### Example +```dart +import 'package:swagger/api.dart'; + +var api_instance = new UserApi(); +var username = username_example; // String | name that need to be deleted +var body = new User(); // User | Updated user object + +try { + api_instance.updateUser(username, body); +} catch (e) { + print("Exception when calling UserApi->updateUser: $e\n"); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **username** | **String**| name that need to be deleted | + **body** | [**User**](User.md)| Updated user object | + +### Return type + +void (empty response body) + +### 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/dart-jaguar/swagger/git_push.sh b/samples/client/petstore/dart-jaguar/swagger/git_push.sh new file mode 100644 index 000000000000..83553a63a416 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/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 swagger-petstore "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/dart-jaguar/swagger/lib/api.dart b/samples/client/petstore/dart-jaguar/swagger/lib/api.dart new file mode 100644 index 000000000000..aa14f928126c --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/api.dart @@ -0,0 +1,121 @@ +library swagger.api; + +import 'package:http/http.dart'; +import 'package:jaguar_serializer/jaguar_serializer.dart'; +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; +import 'package:swagger/auth/api_key_auth.dart'; +import 'package:swagger/auth/basic_auth.dart'; +import 'package:swagger/auth/oauth.dart'; + +import 'package:swagger/api/pet_api.dart'; +import 'package:swagger/api/store_api.dart'; +import 'package:swagger/api/user_api.dart'; + +import 'package:swagger/model/amount.dart'; +import 'package:swagger/model/api_response.dart'; +import 'package:swagger/model/category.dart'; +import 'package:swagger/model/currency.dart'; +import 'package:swagger/model/order.dart'; +import 'package:swagger/model/pet.dart'; +import 'package:swagger/model/tag.dart'; +import 'package:swagger/model/user.dart'; + + +final jsonJaguarRepo = JsonRepo() +..add(AmountSerializer()) +..add(ApiResponseSerializer()) +..add(CategorySerializer()) +..add(CurrencySerializer()) +..add(OrderSerializer()) +..add(PetSerializer()) +..add(TagSerializer()) +..add(UserSerializer()) +; + +final _defaultInterceptors = [OAuthInterceptor(), BasicAuthInterceptor(), ApiKeyAuthInterceptor()]; + +class JaguarApiGen { + List interceptors; + String basePath = "http://petstore.swagger.io/v2"; + Route _baseRoute; + + /** + * Add custom global interceptors, put overrideInterceptors to true to set your interceptors only (auth interceptors will not be added) + */ + JaguarApiGen({List interceptors, bool overrideInterceptors = false, String baseUrl}) { + _baseRoute = Route(baseUrl ?? basePath).withClient(globalClient ?? IOClient()); + if(interceptors == null) { + this.interceptors = _defaultInterceptors; + } + else if(overrideInterceptors){ + this.interceptors = interceptors; + } + else { + this.interceptors = List.from(_defaultInterceptors)..addAll(interceptors); + } + + this.interceptors.forEach((interceptor) { + _baseRoute.before(interceptor.before); + _baseRoute.after(interceptor.after); + }); + } + + void setOAuthToken(String name, String token) { + (_defaultInterceptors[0] as OAuthInterceptor).tokens[name] = token; + } + + void setBasicAuth(String name, String username, String password) { + (_defaultInterceptors[1] as BasicAuthInterceptor).authInfo[name] = BasicAuthInfo(username, password); + } + + void setApiKey(String name, String apiKey) { + (_defaultInterceptors[2] as ApiKeyAuthInterceptor).apiKeys[name] = apiKey; + } + + + /** + * Get PetApi instance, base route and serializer can be overridden by a given but be careful, + * by doing that all interceptors will not be executed + */ + PetApi getPetApi({Route base, SerializerRepo serializers}) { + if(base == null) { + base = _baseRoute; + } + if(serializers == null) { + serializers = jsonJaguarRepo; + } + return PetApi(base: base, serializers: serializers); + } + + + /** + * Get StoreApi instance, base route and serializer can be overridden by a given but be careful, + * by doing that all interceptors will not be executed + */ + StoreApi getStoreApi({Route base, SerializerRepo serializers}) { + if(base == null) { + base = _baseRoute; + } + if(serializers == null) { + serializers = jsonJaguarRepo; + } + return StoreApi(base: base, serializers: serializers); + } + + + /** + * Get UserApi instance, base route and serializer can be overridden by a given but be careful, + * by doing that all interceptors will not be executed + */ + UserApi getUserApi({Route base, SerializerRepo serializers}) { + if(base == null) { + base = _baseRoute; + } + if(serializers == null) { + serializers = jsonJaguarRepo; + } + return UserApi(base: base, serializers: serializers); + } + + +} \ No newline at end of file diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/api/pet_api.dart b/samples/client/petstore/dart-jaguar/swagger/lib/api/pet_api.dart new file mode 100644 index 000000000000..29f976a6c173 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/api/pet_api.dart @@ -0,0 +1,99 @@ +import 'package:jaguar_retrofit/annotations/annotations.dart'; +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; +import 'package:jaguar_serializer/jaguar_serializer.dart'; +import 'package:jaguar_serializer/src/repo/repo.dart'; +import 'dart:async'; + +import 'package:swagger/model/pet.dart'; +import 'package:swagger/model/api_response.dart'; + + +part 'pet_api.jretro.dart'; + +@GenApiClient() +class PetApi extends _$PetApiClient implements ApiClient { + final Route base; + final SerializerRepo serializers; + + PetApi({this.base, this.serializers}); + + /// Add a new pet to the store + /// + /// + @PostReq(path: "/pet", metadata: {"auth": [ {"type": "oauth2", "name": "petstore_auth" }]}) + Future addPet( + + @AsJson() Pet body + ); + + /// Deletes a pet + /// + /// + @DeleteReq(path: "/pet/:petId", metadata: {"auth": [ {"type": "oauth2", "name": "petstore_auth" }]}) + Future deletePet( + @PathParam("petId") int petId + , + @Header("api_key") String apiKey + ); + + /// Finds Pets by status + /// + /// Multiple status values can be provided with comma separated strings + @GetReq(path: "/pet/findByStatus", metadata: {"auth": [ {"type": "oauth2", "name": "petstore_auth" }]}) + Future> findPetsByStatus( + + @QueryParam("status") List status + ); + + /// Finds Pets by tags + /// + /// Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + @GetReq(path: "/pet/findByTags", metadata: {"auth": [ {"type": "oauth2", "name": "petstore_auth" }]}) + Future> findPetsByTags( + + @QueryParam("tags") List tags + ); + + /// Find pet by ID + /// + /// Returns a single pet + @GetReq(path: "/pet/:petId", metadata: {"auth": [ {"type": "apiKey", "name": "api_key", "keyName": "api_key", "where": "header" }]}) + Future getPetById( + @PathParam("petId") int petId + ); + + /// Update an existing pet + /// + /// + @PutReq(path: "/pet", metadata: {"auth": [ {"type": "oauth2", "name": "petstore_auth" }]}) + Future updatePet( + + @AsJson() Pet body + ); + + /// Updates a pet in the store with form data + /// + /// + @PostReq(path: "/pet/:petId", metadata: {"auth": [ {"type": "oauth2", "name": "petstore_auth" }]}) + Future updatePetWithForm( + @PathParam("petId") int petId + , + @AsFormField() String name, + + @AsFormField() String status + ); + + /// uploads an image + /// + /// + @PostReq(path: "/pet/:petId/uploadImage", metadata: {"auth": [ {"type": "oauth2", "name": "petstore_auth" }]}) + Future uploadFile( + @PathParam("petId") int petId + , + @AsMultipartField() String additionalMetadata, + + @AsMultipartField() MultipartFile file + ); + + +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/api/pet_api.jretro.dart b/samples/client/petstore/dart-jaguar/swagger/lib/api/pet_api.jretro.dart new file mode 100644 index 000000000000..e92337222901 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/api/pet_api.jretro.dart @@ -0,0 +1,146 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'pet_api.dart'; + +// ************************************************************************** +// JaguarHttpGenerator +// ************************************************************************** + +abstract class _$PetApiClient implements ApiClient { + final String basePath = ""; + Future addPet(Pet body) async { + var req = base.post + .metadata({ + "auth": [ + { + "type": "oauth2", + "name": "petstore_auth", + } + ], + }) + .path(basePath) + .path("/pet") + .json(serializers.to(body)); + await req.go(); + } + + Future deletePet(int petId, String apiKey) async { + var req = base.delete + .metadata({ + "auth": [ + { + "type": "oauth2", + "name": "petstore_auth", + } + ], + }) + .path(basePath) + .path("/pet/:petId") + .pathParams("petId", petId) + .header("api_key", apiKey); + await req.go(); + } + + Future> findPetsByStatus(List status) async { + var req = base.get + .metadata({ + "auth": [ + { + "type": "oauth2", + "name": "petstore_auth", + } + ], + }) + .path(basePath) + .path("/pet/findByStatus") + .query("status", status); + return req.list(convert: serializers.oneFrom); + } + + Future> findPetsByTags(List tags) async { + var req = base.get + .metadata({ + "auth": [ + { + "type": "oauth2", + "name": "petstore_auth", + } + ], + }) + .path(basePath) + .path("/pet/findByTags") + .query("tags", tags); + return req.list(convert: serializers.oneFrom); + } + + Future getPetById(int petId) async { + var req = base.get + .metadata({ + "auth": [ + { + "type": "apiKey", + "name": "api_key", + "keyName": "api_key", + "where": "header", + } + ], + }) + .path(basePath) + .path("/pet/:petId") + .pathParams("petId", petId); + return req.one(convert: serializers.oneFrom); + } + + Future updatePet(Pet body) async { + var req = base.put + .metadata({ + "auth": [ + { + "type": "oauth2", + "name": "petstore_auth", + } + ], + }) + .path(basePath) + .path("/pet") + .json(serializers.to(body)); + await req.go(); + } + + Future updatePetWithForm(int petId, String name, String status) async { + var req = base.post + .metadata({ + "auth": [ + { + "type": "oauth2", + "name": "petstore_auth", + } + ], + }) + .path(basePath) + .path("/pet/:petId") + .pathParams("petId", petId) + .urlEncodedFormField(name, name) + .urlEncodedFormField(status, status); + await req.go(); + } + + Future uploadFile( + int petId, String additionalMetadata, MultipartFile file) async { + var req = base.post + .metadata({ + "auth": [ + { + "type": "oauth2", + "name": "petstore_auth", + } + ], + }) + .path(basePath) + .path("/pet/:petId/uploadImage") + .pathParams("petId", petId) + .multipart({"additionalMetadata": additionalMetadata}) + .multipart({"file": file}); + return req.one(convert: serializers.oneFrom); + } +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/api/store_api.dart b/samples/client/petstore/dart-jaguar/swagger/lib/api/store_api.dart new file mode 100644 index 000000000000..34fd84bb4aa7 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/api/store_api.dart @@ -0,0 +1,52 @@ +import 'package:jaguar_retrofit/annotations/annotations.dart'; +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; +import 'package:jaguar_serializer/jaguar_serializer.dart'; +import 'package:jaguar_serializer/src/repo/repo.dart'; +import 'dart:async'; + +import 'package:swagger/model/order.dart'; + + +part 'store_api.jretro.dart'; + +@GenApiClient() +class StoreApi extends _$StoreApiClient implements ApiClient { + final Route base; + final SerializerRepo serializers; + + StoreApi({this.base, this.serializers}); + + /// Delete purchase order by ID + /// + /// For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + @DeleteReq(path: "/store/order/:orderId") + Future deleteOrder( + @PathParam("orderId") String orderId + ); + + /// Returns pet inventories by status + /// + /// Returns a map of status codes to quantities + @GetReq(path: "/store/inventory", metadata: {"auth": [ {"type": "apiKey", "name": "api_key", "keyName": "api_key", "where": "header" }]}) + Future> getInventory( + ); + + /// Find purchase order by ID + /// + /// For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + @GetReq(path: "/store/order/:orderId") + Future getOrderById( + @PathParam("orderId") int orderId + ); + + /// Place an order for a pet + /// + /// + @PostReq(path: "/store/order") + Future placeOrder( + + @AsJson() Order body + ); + + +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/api/store_api.jretro.dart b/samples/client/petstore/dart-jaguar/swagger/lib/api/store_api.jretro.dart new file mode 100644 index 000000000000..843a38a54c3a --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/api/store_api.jretro.dart @@ -0,0 +1,51 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'store_api.dart'; + +// ************************************************************************** +// JaguarHttpGenerator +// ************************************************************************** + +abstract class _$StoreApiClient implements ApiClient { + final String basePath = ""; + Future deleteOrder(String orderId) async { + var req = base.delete + .path(basePath) + .path("/store/order/:orderId") + .pathParams("orderId", orderId); + await req.go(); + } + + Future> getInventory() async { + var req = base.get + .metadata({ + "auth": [ + { + "type": "apiKey", + "name": "api_key", + "keyName": "api_key", + "where": "header", + } + ], + }) + .path(basePath) + .path("/store/inventory"); + return req.one().then((v) => serializers.mapFrom(v)); + } + + Future getOrderById(int orderId) async { + var req = base.get + .path(basePath) + .path("/store/order/:orderId") + .pathParams("orderId", orderId); + return req.one(convert: serializers.oneFrom); + } + + Future placeOrder(Order body) async { + var req = base.post + .path(basePath) + .path("/store/order") + .json(serializers.to(body)); + return req.one(convert: serializers.oneFrom); + } +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/api/user_api.dart b/samples/client/petstore/dart-jaguar/swagger/lib/api/user_api.dart new file mode 100644 index 000000000000..24beeb136db0 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/api/user_api.dart @@ -0,0 +1,91 @@ +import 'package:jaguar_retrofit/annotations/annotations.dart'; +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; +import 'package:jaguar_serializer/jaguar_serializer.dart'; +import 'package:jaguar_serializer/src/repo/repo.dart'; +import 'dart:async'; + +import 'package:swagger/model/user.dart'; + + +part 'user_api.jretro.dart'; + +@GenApiClient() +class UserApi extends _$UserApiClient implements ApiClient { + final Route base; + final SerializerRepo serializers; + + UserApi({this.base, this.serializers}); + + /// Create user + /// + /// This can only be done by the logged in user. + @PostReq(path: "/user") + Future createUser( + + @AsJson() User body + ); + + /// Creates list of users with given input array + /// + /// + @PostReq(path: "/user/createWithArray") + Future createUsersWithArrayInput( + + @AsJson() List body + ); + + /// Creates list of users with given input array + /// + /// + @PostReq(path: "/user/createWithList") + Future createUsersWithListInput( + + @AsJson() List body + ); + + /// Delete user + /// + /// This can only be done by the logged in user. + @DeleteReq(path: "/user/:username") + Future deleteUser( + @PathParam("username") String username + ); + + /// Get user by user name + /// + /// + @GetReq(path: "/user/:username") + Future getUserByName( + @PathParam("username") String username + ); + + /// Logs user into the system + /// + /// + @GetReq(path: "/user/login") + Future loginUser( + + @QueryParam("username") String username, + + @QueryParam("password") String password + ); + + /// Logs out current logged in user session + /// + /// + @GetReq(path: "/user/logout") + Future logoutUser( + ); + + /// Updated user + /// + /// This can only be done by the logged in user. + @PutReq(path: "/user/:username") + Future updateUser( + @PathParam("username") String username + , + @AsJson() User body + ); + + +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/api/user_api.jretro.dart b/samples/client/petstore/dart-jaguar/swagger/lib/api/user_api.jretro.dart new file mode 100644 index 000000000000..061f95a81bae --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/api/user_api.jretro.dart @@ -0,0 +1,70 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'user_api.dart'; + +// ************************************************************************** +// JaguarHttpGenerator +// ************************************************************************** + +abstract class _$UserApiClient implements ApiClient { + final String basePath = ""; + Future createUser(User body) async { + var req = base.post.path(basePath).path("/user").json(serializers.to(body)); + await req.go(); + } + + Future createUsersWithArrayInput(List body) async { + var req = base.post + .path(basePath) + .path("/user/createWithArray") + .json(serializers.to(body)); + await req.go(); + } + + Future createUsersWithListInput(List body) async { + var req = base.post + .path(basePath) + .path("/user/createWithList") + .json(serializers.to(body)); + await req.go(); + } + + Future deleteUser(String username) async { + var req = base.delete + .path(basePath) + .path("/user/:username") + .pathParams("username", username); + await req.go(); + } + + Future getUserByName(String username) async { + var req = base.get + .path(basePath) + .path("/user/:username") + .pathParams("username", username); + return req.one(convert: serializers.oneFrom); + } + + Future loginUser(String username, String password) async { + var req = base.get + .path(basePath) + .path("/user/login") + .query("username", username) + .query("password", password); + return req.one(); + } + + Future logoutUser() async { + var req = base.get.path(basePath).path("/user/logout"); + await req.go(); + } + + Future updateUser(String username, User body) async { + var req = base.put + .path(basePath) + .path("/user/:username") + .pathParams("username", username) + .json(serializers.to(body)); + await req.go(); + } +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/auth/api_key_auth.dart b/samples/client/petstore/dart-jaguar/swagger/lib/auth/api_key_auth.dart new file mode 100644 index 000000000000..398338b17229 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/auth/api_key_auth.dart @@ -0,0 +1,33 @@ +import 'dart:async'; +import 'package:swagger/auth/auth.dart'; +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; + +class ApiKeyAuthInterceptor extends AuthInterceptor { + Map apiKeys = {}; + + @override + FutureOr before(RouteBase route) { + final authInfo = getAuthInfo(route, "apiKey"); + for (var info in authInfo) { + final authName = info["name"]; + final authKeyName = info["keyName"]; + final authWhere = info["where"]; + final apiKey = apiKeys[authName]; + if(apiKey != null) { + if(authWhere == 'query'){ + route.query(authKeyName, apiKey); + } + else { + route.header(authKeyName, apiKey); + } + break; + } + } + return super.before(route); + } + + @override + FutureOr after(StringResponse response) { + return Future.value(response); + } +} \ No newline at end of file diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/auth/auth.dart b/samples/client/petstore/dart-jaguar/swagger/lib/auth/auth.dart new file mode 100644 index 000000000000..477fbbf83743 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/auth/auth.dart @@ -0,0 +1,23 @@ +import 'dart:async'; + +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; + +abstract class AuthInterceptor extends Interceptor { + /* + * Get auth information on given route for the given type + * Can return null if type is not present on auth data or if route doesn't need authentication + */ + List> getAuthInfo(RouteBase route, String type) { + if (route.metadataMap.containsKey("auth")) { + final auth = route.metadataMap["auth"]; + List> results = []; + for (var info in auth) { + if(info["type"] == type) { + results.add(info); + } + } + return results; + } + return []; + } +} \ No newline at end of file diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/auth/basic_auth.dart b/samples/client/petstore/dart-jaguar/swagger/lib/auth/basic_auth.dart new file mode 100644 index 000000000000..de25d170b420 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/auth/basic_auth.dart @@ -0,0 +1,34 @@ +import 'dart:async'; +import 'package:swagger/auth/auth.dart'; +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; + +class BasicAuthInfo { + final String username; + final String password; + + const BasicAuthInfo(this.username, this.password); + +} + +class BasicAuthInterceptor extends AuthInterceptor { + Map authInfo = {}; + + @override + FutureOr before(RouteBase route) { + final metadataAuthInfo = getAuthInfo(route, "basic"); + for (var info in metadataAuthInfo) { + final authName = info["name"]; + final basicAuthInfo = authInfo[authName]; + if(basicAuthInfo != null) { + route.basicAuth(basicAuthInfo.username, basicAuthInfo.password); + break; + } + } + return super.before(route); + } + + @override + FutureOr after(StringResponse response) { + return Future.value(response); + } +} \ No newline at end of file diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/auth/oauth.dart b/samples/client/petstore/dart-jaguar/swagger/lib/auth/oauth.dart new file mode 100644 index 000000000000..05bd70fdbcc6 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/auth/oauth.dart @@ -0,0 +1,25 @@ +import 'dart:async'; +import 'package:swagger/auth/auth.dart'; +import 'package:jaguar_retrofit/jaguar_retrofit.dart'; + +class OAuthInterceptor extends AuthInterceptor { + Map tokens = {}; + + @override + FutureOr before(RouteBase route) { + final authInfo = getAuthInfo(route, "oauth"); + for (var info in authInfo) { + final token = tokens[info["name"]]; + if(token != null) { + route.header("Authorization", "Bearer ${token}"); + break; + } + } + return super.before(route); + } + + @override + FutureOr after(StringResponse response) { + return Future.value(response); + } +} \ No newline at end of file diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/model/amount.dart b/samples/client/petstore/dart-jaguar/swagger/lib/model/amount.dart new file mode 100644 index 000000000000..e701e966bf0d --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/model/amount.dart @@ -0,0 +1,32 @@ +import 'package:jaguar_serializer/jaguar_serializer.dart'; + +import 'package:swagger/model/currency.dart'; +part 'amount.jser.dart'; + +class Amount { + /* some description */ + final double value; + // range from 0.01 to 1000000000000000// + final Currency currency; + + + Amount( + + +{ + + this.value = null, + this.currency = null + } + ); + + @override + String toString() { + return 'Amount[value=$value, currency=$currency, ]'; + } +} + +@GenSerializer() +class AmountSerializer extends Serializer with _$AmountSerializer { + +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/model/amount.jser.dart b/samples/client/petstore/dart-jaguar/swagger/lib/model/amount.jser.dart new file mode 100644 index 000000000000..9c03e8a62d49 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/model/amount.jser.dart @@ -0,0 +1,31 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'amount.dart'; + +// ************************************************************************** +// JaguarSerializerGenerator +// ************************************************************************** + +abstract class _$AmountSerializer implements Serializer { + Serializer __currencySerializer; + Serializer get _currencySerializer => + __currencySerializer ??= new CurrencySerializer(); + @override + Map toMap(Amount model) { + if (model == null) return null; + Map ret = {}; + setMapValue(ret, 'value', model.value); + setMapValue(ret, 'currency', _currencySerializer.toMap(model.currency)); + return ret; + } + + @override + Amount fromMap(Map map) { + if (map == null) return null; + final obj = new Amount( + value: map['value'] as double ?? getJserDefault('value'), + currency: _currencySerializer.fromMap(map['currency'] as Map) ?? + getJserDefault('currency')); + return obj; + } +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/model/api_response.dart b/samples/client/petstore/dart-jaguar/swagger/lib/model/api_response.dart new file mode 100644 index 000000000000..2b9fa763b009 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/model/api_response.dart @@ -0,0 +1,34 @@ +import 'package:jaguar_serializer/jaguar_serializer.dart'; + +part 'api_response.jser.dart'; + +class ApiResponse { + + final int code; + + final String type; + + final String message; + + + ApiResponse( + + +{ + this.code = null, + this.type = null, + this.message = null + + } + ); + + @override + String toString() { + return 'ApiResponse[code=$code, type=$type, message=$message, ]'; + } +} + +@GenSerializer() +class ApiResponseSerializer extends Serializer with _$ApiResponseSerializer { + +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/model/api_response.jser.dart b/samples/client/petstore/dart-jaguar/swagger/lib/model/api_response.jser.dart new file mode 100644 index 000000000000..b4b6c090975c --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/model/api_response.jser.dart @@ -0,0 +1,29 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'api_response.dart'; + +// ************************************************************************** +// JaguarSerializerGenerator +// ************************************************************************** + +abstract class _$ApiResponseSerializer implements Serializer { + @override + Map toMap(ApiResponse model) { + if (model == null) return null; + Map ret = {}; + setMapValue(ret, 'code', model.code); + setMapValue(ret, 'type', model.type); + setMapValue(ret, 'message', model.message); + return ret; + } + + @override + ApiResponse fromMap(Map map) { + if (map == null) return null; + final obj = new ApiResponse( + code: map['code'] as int ?? getJserDefault('code'), + type: map['type'] as String ?? getJserDefault('type'), + message: map['message'] as String ?? getJserDefault('message')); + return obj; + } +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/model/category.dart b/samples/client/petstore/dart-jaguar/swagger/lib/model/category.dart new file mode 100644 index 000000000000..2f5e7bd9c50f --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/model/category.dart @@ -0,0 +1,31 @@ +import 'package:jaguar_serializer/jaguar_serializer.dart'; + +part 'category.jser.dart'; + +class Category { + + final int id; + + final String name; + + + Category( + + +{ + this.id = null, + this.name = null + + } + ); + + @override + String toString() { + return 'Category[id=$id, name=$name, ]'; + } +} + +@GenSerializer() +class CategorySerializer extends Serializer with _$CategorySerializer { + +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/model/category.jser.dart b/samples/client/petstore/dart-jaguar/swagger/lib/model/category.jser.dart new file mode 100644 index 000000000000..763bcd3dd6e2 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/model/category.jser.dart @@ -0,0 +1,27 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'category.dart'; + +// ************************************************************************** +// JaguarSerializerGenerator +// ************************************************************************** + +abstract class _$CategorySerializer implements Serializer { + @override + Map toMap(Category model) { + if (model == null) return null; + Map ret = {}; + setMapValue(ret, 'id', model.id); + setMapValue(ret, 'name', model.name); + return ret; + } + + @override + Category fromMap(Map map) { + if (map == null) return null; + final obj = new Category( + id: map['id'] as int ?? getJserDefault('id'), + name: map['name'] as String ?? getJserDefault('name')); + return obj; + } +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/model/currency.dart b/samples/client/petstore/dart-jaguar/swagger/lib/model/currency.dart new file mode 100644 index 000000000000..9a5825e52d55 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/model/currency.dart @@ -0,0 +1,23 @@ +import 'package:jaguar_serializer/jaguar_serializer.dart'; + +part 'currency.jser.dart'; + +class Currency { + + + Currency( + + + + ); + + @override + String toString() { + return 'Currency[]'; + } +} + +@GenSerializer() +class CurrencySerializer extends Serializer with _$CurrencySerializer { + +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/model/currency.jser.dart b/samples/client/petstore/dart-jaguar/swagger/lib/model/currency.jser.dart new file mode 100644 index 000000000000..6bc06bc69bc0 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/model/currency.jser.dart @@ -0,0 +1,23 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'currency.dart'; + +// ************************************************************************** +// JaguarSerializerGenerator +// ************************************************************************** + +abstract class _$CurrencySerializer implements Serializer { + @override + Map toMap(Currency model) { + if (model == null) return null; + Map ret = {}; + return ret; + } + + @override + Currency fromMap(Map map) { + if (map == null) return null; + final obj = new Currency(); + return obj; + } +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/model/order.dart b/samples/client/petstore/dart-jaguar/swagger/lib/model/order.dart new file mode 100644 index 000000000000..46a7a839b3b0 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/model/order.dart @@ -0,0 +1,43 @@ +import 'package:jaguar_serializer/jaguar_serializer.dart'; + +part 'order.jser.dart'; + +class Order { + + final int id; + + final int petId; + + final int quantity; + + final DateTime shipDate; + /* Order Status */ + final String status; + //enum statusEnum { placed, approved, delivered, }; + final bool complete; + + + Order( + + +{ + this.id = null, + this.petId = null, + this.quantity = null, + this.shipDate = null, + this.status = null, + this.complete = null + + } + ); + + @override + String toString() { + return 'Order[id=$id, petId=$petId, quantity=$quantity, shipDate=$shipDate, status=$status, complete=$complete, ]'; + } +} + +@GenSerializer() +class OrderSerializer extends Serializer with _$OrderSerializer { + +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/model/order.jser.dart b/samples/client/petstore/dart-jaguar/swagger/lib/model/order.jser.dart new file mode 100644 index 000000000000..52e5d7a01bad --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/model/order.jser.dart @@ -0,0 +1,37 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'order.dart'; + +// ************************************************************************** +// JaguarSerializerGenerator +// ************************************************************************** + +abstract class _$OrderSerializer implements Serializer { + @override + Map toMap(Order model) { + if (model == null) return null; + Map ret = {}; + setMapValue(ret, 'id', model.id); + setMapValue(ret, 'petId', model.petId); + setMapValue(ret, 'quantity', model.quantity); + setMapValue( + ret, 'shipDate', dateTimeUtcProcessor.serialize(model.shipDate)); + setMapValue(ret, 'status', model.status); + setMapValue(ret, 'complete', model.complete); + return ret; + } + + @override + Order fromMap(Map map) { + if (map == null) return null; + final obj = new Order( + id: map['id'] as int ?? getJserDefault('id'), + petId: map['petId'] as int ?? getJserDefault('petId'), + quantity: map['quantity'] as int ?? getJserDefault('quantity'), + shipDate: dateTimeUtcProcessor.deserialize(map['shipDate'] as String) ?? + getJserDefault('shipDate'), + status: map['status'] as String ?? getJserDefault('status'), + complete: map['complete'] as bool ?? getJserDefault('complete')); + return obj; + } +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/model/pet.dart b/samples/client/petstore/dart-jaguar/swagger/lib/model/pet.dart new file mode 100644 index 000000000000..0c1d274b8b4a --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/model/pet.dart @@ -0,0 +1,45 @@ +import 'package:jaguar_serializer/jaguar_serializer.dart'; + +import 'package:swagger/model/tag.dart'; +import 'package:swagger/model/category.dart'; +part 'pet.jser.dart'; + +class Pet { + + final int id; + + final Category category; + + final String name; + + final List photoUrls; + + final List tags; + /* pet status in the store */ + final String status; + //enum statusEnum { available, pending, sold, }; + + Pet( + + +{ + this.id = null, + this.category = null, + + this.name = null, + this.photoUrls = const [], this.tags = const [], + this.status = null + + } + ); + + @override + String toString() { + return 'Pet[id=$id, category=$category, name=$name, photoUrls=$photoUrls, tags=$tags, status=$status, ]'; + } +} + +@GenSerializer() +class PetSerializer extends Serializer with _$PetSerializer { + +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/model/pet.jser.dart b/samples/client/petstore/dart-jaguar/swagger/lib/model/pet.jser.dart new file mode 100644 index 000000000000..ce4f22f96865 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/model/pet.jser.dart @@ -0,0 +1,47 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'pet.dart'; + +// ************************************************************************** +// JaguarSerializerGenerator +// ************************************************************************** + +abstract class _$PetSerializer implements Serializer { + Serializer __categorySerializer; + Serializer get _categorySerializer => + __categorySerializer ??= new CategorySerializer(); + Serializer __tagSerializer; + Serializer get _tagSerializer => __tagSerializer ??= new TagSerializer(); + @override + Map toMap(Pet model) { + if (model == null) return null; + Map ret = {}; + setMapValue(ret, 'id', model.id); + setMapValue(ret, 'category', _categorySerializer.toMap(model.category)); + setMapValue(ret, 'name', model.name); + setMapValue(ret, 'photoUrls', + codeIterable(model.photoUrls, (val) => val as String)); + setMapValue(ret, 'tags', + codeIterable(model.tags, (val) => _tagSerializer.toMap(val as Tag))); + setMapValue(ret, 'status', model.status); + return ret; + } + + @override + Pet fromMap(Map map) { + if (map == null) return null; + final obj = new Pet( + id: map['id'] as int ?? getJserDefault('id'), + category: _categorySerializer.fromMap(map['category'] as Map) ?? + getJserDefault('category'), + name: map['name'] as String ?? getJserDefault('name'), + photoUrls: codeIterable( + map['photoUrls'] as Iterable, (val) => val as String) ?? + getJserDefault('photoUrls'), + tags: codeIterable(map['tags'] as Iterable, + (val) => _tagSerializer.fromMap(val as Map)) ?? + getJserDefault('tags'), + status: map['status'] as String ?? getJserDefault('status')); + return obj; + } +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/model/tag.dart b/samples/client/petstore/dart-jaguar/swagger/lib/model/tag.dart new file mode 100644 index 000000000000..7b294b3008b5 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/model/tag.dart @@ -0,0 +1,31 @@ +import 'package:jaguar_serializer/jaguar_serializer.dart'; + +part 'tag.jser.dart'; + +class Tag { + + final int id; + + final String name; + + + Tag( + + +{ + this.id = null, + this.name = null + + } + ); + + @override + String toString() { + return 'Tag[id=$id, name=$name, ]'; + } +} + +@GenSerializer() +class TagSerializer extends Serializer with _$TagSerializer { + +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/model/tag.jser.dart b/samples/client/petstore/dart-jaguar/swagger/lib/model/tag.jser.dart new file mode 100644 index 000000000000..cdb14e1783ee --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/model/tag.jser.dart @@ -0,0 +1,27 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'tag.dart'; + +// ************************************************************************** +// JaguarSerializerGenerator +// ************************************************************************** + +abstract class _$TagSerializer implements Serializer { + @override + Map toMap(Tag model) { + if (model == null) return null; + Map ret = {}; + setMapValue(ret, 'id', model.id); + setMapValue(ret, 'name', model.name); + return ret; + } + + @override + Tag fromMap(Map map) { + if (map == null) return null; + final obj = new Tag( + id: map['id'] as int ?? getJserDefault('id'), + name: map['name'] as String ?? getJserDefault('name')); + return obj; + } +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/model/user.dart b/samples/client/petstore/dart-jaguar/swagger/lib/model/user.dart new file mode 100644 index 000000000000..fddc756616a1 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/model/user.dart @@ -0,0 +1,49 @@ +import 'package:jaguar_serializer/jaguar_serializer.dart'; + +part 'user.jser.dart'; + +class User { + + final int id; + + final String username; + + final String firstName; + + final String lastName; + + final String email; + + final String password; + + final String phone; + /* User Status */ + final int userStatus; + + + User( + + +{ + this.id = null, + this.username = null, + this.firstName = null, + this.lastName = null, + this.email = null, + this.password = null, + this.phone = null, + this.userStatus = null + + } + ); + + @override + String toString() { + return 'User[id=$id, username=$username, firstName=$firstName, lastName=$lastName, email=$email, password=$password, phone=$phone, userStatus=$userStatus, ]'; + } +} + +@GenSerializer() +class UserSerializer extends Serializer with _$UserSerializer { + +} diff --git a/samples/client/petstore/dart-jaguar/swagger/lib/model/user.jser.dart b/samples/client/petstore/dart-jaguar/swagger/lib/model/user.jser.dart new file mode 100644 index 000000000000..0eced9472d04 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/lib/model/user.jser.dart @@ -0,0 +1,39 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'user.dart'; + +// ************************************************************************** +// JaguarSerializerGenerator +// ************************************************************************** + +abstract class _$UserSerializer implements Serializer { + @override + Map toMap(User model) { + if (model == null) return null; + Map ret = {}; + setMapValue(ret, 'id', model.id); + setMapValue(ret, 'username', model.username); + setMapValue(ret, 'firstName', model.firstName); + setMapValue(ret, 'lastName', model.lastName); + setMapValue(ret, 'email', model.email); + setMapValue(ret, 'password', model.password); + setMapValue(ret, 'phone', model.phone); + setMapValue(ret, 'userStatus', model.userStatus); + return ret; + } + + @override + User fromMap(Map map) { + if (map == null) return null; + final obj = new User( + id: map['id'] as int ?? getJserDefault('id'), + username: map['username'] as String ?? getJserDefault('username'), + firstName: map['firstName'] as String ?? getJserDefault('firstName'), + lastName: map['lastName'] as String ?? getJserDefault('lastName'), + email: map['email'] as String ?? getJserDefault('email'), + password: map['password'] as String ?? getJserDefault('password'), + phone: map['phone'] as String ?? getJserDefault('phone'), + userStatus: map['userStatus'] as int ?? getJserDefault('userStatus')); + return obj; + } +} diff --git a/samples/client/petstore/dart-jaguar/swagger/pubspec.yaml b/samples/client/petstore/dart-jaguar/swagger/pubspec.yaml new file mode 100644 index 000000000000..ed3ac632ff10 --- /dev/null +++ b/samples/client/petstore/dart-jaguar/swagger/pubspec.yaml @@ -0,0 +1,12 @@ +name: swagger +version: 1.0.0 +description: Swagger API client +environment: + sdk: ">=2.0.0 <3.0.0" +dependencies: + jaguar_retrofit: '^2.5.4' + jaguar_serializer: '^2.2.2' +dev_dependencies: + jaguar_retrofit_gen: '^2.5.2' + jaguar_serializer_cli: '^2.2.1' + build_runner: '^0.10.0' \ No newline at end of file diff --git a/samples/client/petstore/dart/flutter_petstore/ios/Runner.xcodeproj/project.pbxproj b/samples/client/petstore/dart/flutter_petstore/ios/Runner.xcodeproj/project.pbxproj index 9b2e4b7cda85..efd7d0a1e7f6 100644 --- a/samples/client/petstore/dart/flutter_petstore/ios/Runner.xcodeproj/project.pbxproj +++ b/samples/client/petstore/dart/flutter_petstore/ios/Runner.xcodeproj/project.pbxproj @@ -9,13 +9,13 @@ /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */ = {isa = PBXBuildFile; fileRef = 2D5378251FAA1A9400D5DBA9 /* flutter_assets */; }; 3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; }; 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; }; 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; }; 9740EEB51CF90195004384FC /* Generated.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB31CF90195004384FC /* Generated.xcconfig */; }; - 9740EEBB1CF902C7004384FC /* app.flx in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB71CF902C7004384FC /* app.flx */; }; 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; @@ -42,13 +42,13 @@ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 2D5378251FAA1A9400D5DBA9 /* flutter_assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = flutter_assets; path = Flutter/flutter_assets; sourceTree = SOURCE_ROOT; }; 3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; - 9740EEB71CF902C7004384FC /* app.flx */ = {isa = PBXFileReference; lastKnownFileType = file; name = app.flx; path = Flutter/app.flx; sourceTree = ""; }; 9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; 97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; @@ -74,9 +74,9 @@ 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( - 9740EEB71CF902C7004384FC /* app.flx */, 3B80C3931E831B6300D905FE /* App.framework */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 2D5378251FAA1A9400D5DBA9 /* flutter_assets */, 9740EEBA1CF902C7004384FC /* Flutter.framework */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, @@ -187,10 +187,10 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 9740EEBB1CF902C7004384FC /* app.flx in Resources */, 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, 9740EEB51CF90195004384FC /* Generated.xcconfig in Resources */, 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */, 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */, 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, diff --git a/samples/client/petstore/dart/flutter_petstore/pubspec.yaml b/samples/client/petstore/dart/flutter_petstore/pubspec.yaml index b5ff79c337ab..95d229666890 100644 --- a/samples/client/petstore/dart/flutter_petstore/pubspec.yaml +++ b/samples/client/petstore/dart/flutter_petstore/pubspec.yaml @@ -2,6 +2,7 @@ name: flutter_petstore description: Swagger petstore sample flutter dependencies: + http: flutter: sdk: flutter swagger: diff --git a/samples/client/petstore/dart/flutter_petstore/swagger/README.md b/samples/client/petstore/dart/flutter_petstore/swagger/README.md index 7244e3f3b944..599be44d8932 100644 --- a/samples/client/petstore/dart/flutter_petstore/swagger/README.md +++ b/samples/client/petstore/dart/flutter_petstore/swagger/README.md @@ -87,8 +87,10 @@ Class | Method | HTTP request | Description ## Documentation For Models + - [Amount](docs//Amount.md) - [ApiResponse](docs//ApiResponse.md) - [Category](docs//Category.md) + - [Currency](docs//Currency.md) - [Order](docs//Order.md) - [Pet](docs//Pet.md) - [Tag](docs//Tag.md) diff --git a/samples/client/petstore/dart/flutter_petstore/swagger/docs/Amount.md b/samples/client/petstore/dart/flutter_petstore/swagger/docs/Amount.md new file mode 100644 index 000000000000..12c2fc20a7a7 --- /dev/null +++ b/samples/client/petstore/dart/flutter_petstore/swagger/docs/Amount.md @@ -0,0 +1,16 @@ +# swagger.model.Amount + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**value** | **double** | some description | [default to null] +**currency** | [**Currency**](Currency.md) | | [default to null] + +[[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/dart/flutter_petstore/swagger/docs/Currency.md b/samples/client/petstore/dart/flutter_petstore/swagger/docs/Currency.md new file mode 100644 index 000000000000..0b25bce60f58 --- /dev/null +++ b/samples/client/petstore/dart/flutter_petstore/swagger/docs/Currency.md @@ -0,0 +1,14 @@ +# swagger.model.Currency + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## 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/dart/flutter_petstore/swagger/lib/api.dart b/samples/client/petstore/dart/flutter_petstore/swagger/lib/api.dart index 6853e7c628f6..708f053a4670 100644 --- a/samples/client/petstore/dart/flutter_petstore/swagger/lib/api.dart +++ b/samples/client/petstore/dart/flutter_petstore/swagger/lib/api.dart @@ -16,8 +16,10 @@ part 'api/pet_api.dart'; part 'api/store_api.dart'; part 'api/user_api.dart'; +part 'model/amount.dart'; part 'model/api_response.dart'; part 'model/category.dart'; +part 'model/currency.dart'; part 'model/order.dart'; part 'model/pet.dart'; part 'model/tag.dart'; diff --git a/samples/client/petstore/dart/flutter_petstore/swagger/lib/api_client.dart b/samples/client/petstore/dart/flutter_petstore/swagger/lib/api_client.dart index 5ba2bb32f510..865af26741e2 100644 --- a/samples/client/petstore/dart/flutter_petstore/swagger/lib/api_client.dart +++ b/samples/client/petstore/dart/flutter_petstore/swagger/lib/api_client.dart @@ -39,10 +39,14 @@ class ApiClient { return value is bool ? value : '$value'.toLowerCase() == 'true'; case 'double': return value is double ? value : double.parse('$value'); + case 'Amount': + return new Amount.fromJson(value); case 'ApiResponse': return new ApiResponse.fromJson(value); case 'Category': return new Category.fromJson(value); + case 'Currency': + return new Currency.fromJson(value); case 'Order': return new Order.fromJson(value); case 'Pet': @@ -72,13 +76,13 @@ class ApiClient { throw new ApiException(500, 'Could not find a suitable class for deserialization'); } - dynamic deserialize(String json, String targetType) { + dynamic deserialize(String jsonVal, String targetType) { // Remove all spaces. Necessary for reg expressions as well. targetType = targetType.replaceAll(' ', ''); - if (targetType == 'String') return json; + if (targetType == 'String') return jsonVal; - var decodedJson = JSON.decode(json); + var decodedJson = json.decode(jsonVal); return _deserialize(decodedJson, targetType); } @@ -87,7 +91,7 @@ class ApiClient { if (obj == null) { serialized = ''; } else { - serialized = JSON.encode(obj); + serialized = json.encode(obj); } return serialized; } diff --git a/samples/client/petstore/dart/flutter_petstore/swagger/lib/auth/http_basic_auth.dart b/samples/client/petstore/dart/flutter_petstore/swagger/lib/auth/http_basic_auth.dart index 7a118d6cdad8..3bb8e6e2b63b 100644 --- a/samples/client/petstore/dart/flutter_petstore/swagger/lib/auth/http_basic_auth.dart +++ b/samples/client/petstore/dart/flutter_petstore/swagger/lib/auth/http_basic_auth.dart @@ -8,7 +8,7 @@ class HttpBasicAuth implements Authentication { @override void applyToParams(List queryParams, Map headerParams) { String str = (username == null ? "" : username) + ":" + (password == null ? "" : password); - headerParams["Authorization"] = "Basic " + BASE64.encode(UTF8.encode(str)); + headerParams["Authorization"] = "Basic " + base64.encode(utf8.encode(str)); } } \ No newline at end of file diff --git a/samples/client/petstore/dart/flutter_petstore/swagger/lib/model/amount.dart b/samples/client/petstore/dart/flutter_petstore/swagger/lib/model/amount.dart new file mode 100644 index 000000000000..c30804fa2c0e --- /dev/null +++ b/samples/client/petstore/dart/flutter_petstore/swagger/lib/model/amount.dart @@ -0,0 +1,48 @@ +part of swagger.api; + +class Amount { + /* some description */ + double value = null; + // range from 0.01 to 1000000000000000// + + Currency currency = null; + + Amount(); + + @override + String toString() { + return 'Amount[value=$value, currency=$currency, ]'; + } + + Amount.fromJson(Map json) { + if (json == null) return; + value = + json['value'] + ; + currency = + + + new Currency.fromJson(json['currency']) +; + } + + Map toJson() { + return { + 'value': value, + 'currency': currency + }; + } + + static List listFromJson(List json) { + return json == null ? new List() : json.map((value) => new Amount.fromJson(value)).toList(); + } + + static Map mapFromJson(Map> json) { + var map = new Map(); + if (json != null && json.length > 0) { + json.forEach((String key, Map value) => map[key] = new Amount.fromJson(value)); + } + return map; + } +} + diff --git a/samples/client/petstore/dart/flutter_petstore/swagger/lib/model/currency.dart b/samples/client/petstore/dart/flutter_petstore/swagger/lib/model/currency.dart new file mode 100644 index 000000000000..ad19e8215d37 --- /dev/null +++ b/samples/client/petstore/dart/flutter_petstore/swagger/lib/model/currency.dart @@ -0,0 +1,32 @@ +part of swagger.api; + +class Currency { + Currency(); + + @override + String toString() { + return 'Currency[]'; + } + + Currency.fromJson(Map json) { + if (json == null) return; + } + + Map toJson() { + return { + }; + } + + static List listFromJson(List json) { + return json == null ? new List() : json.map((value) => new Currency.fromJson(value)).toList(); + } + + static Map mapFromJson(Map> json) { + var map = new Map(); + if (json != null && json.length > 0) { + json.forEach((String key, Map value) => map[key] = new Currency.fromJson(value)); + } + return map; + } +} + diff --git a/samples/client/petstore/dart/swagger-browser-client/README.md b/samples/client/petstore/dart/swagger-browser-client/README.md index 7244e3f3b944..599be44d8932 100644 --- a/samples/client/petstore/dart/swagger-browser-client/README.md +++ b/samples/client/petstore/dart/swagger-browser-client/README.md @@ -87,8 +87,10 @@ Class | Method | HTTP request | Description ## Documentation For Models + - [Amount](docs//Amount.md) - [ApiResponse](docs//ApiResponse.md) - [Category](docs//Category.md) + - [Currency](docs//Currency.md) - [Order](docs//Order.md) - [Pet](docs//Pet.md) - [Tag](docs//Tag.md) diff --git a/samples/client/petstore/dart/swagger-browser-client/docs/Amount.md b/samples/client/petstore/dart/swagger-browser-client/docs/Amount.md new file mode 100644 index 000000000000..12c2fc20a7a7 --- /dev/null +++ b/samples/client/petstore/dart/swagger-browser-client/docs/Amount.md @@ -0,0 +1,16 @@ +# swagger.model.Amount + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**value** | **double** | some description | [default to null] +**currency** | [**Currency**](Currency.md) | | [default to null] + +[[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/dart/swagger-browser-client/docs/Currency.md b/samples/client/petstore/dart/swagger-browser-client/docs/Currency.md new file mode 100644 index 000000000000..0b25bce60f58 --- /dev/null +++ b/samples/client/petstore/dart/swagger-browser-client/docs/Currency.md @@ -0,0 +1,14 @@ +# swagger.model.Currency + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## 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/dart/swagger-browser-client/lib/api.dart b/samples/client/petstore/dart/swagger-browser-client/lib/api.dart index 33dd7f750e20..ceb9e69c446a 100644 --- a/samples/client/petstore/dart/swagger-browser-client/lib/api.dart +++ b/samples/client/petstore/dart/swagger-browser-client/lib/api.dart @@ -17,8 +17,10 @@ part 'api/pet_api.dart'; part 'api/store_api.dart'; part 'api/user_api.dart'; +part 'model/amount.dart'; part 'model/api_response.dart'; part 'model/category.dart'; +part 'model/currency.dart'; part 'model/order.dart'; part 'model/pet.dart'; part 'model/tag.dart'; diff --git a/samples/client/petstore/dart/swagger-browser-client/lib/api_client.dart b/samples/client/petstore/dart/swagger-browser-client/lib/api_client.dart index 8edfc7e517fb..5b46c84545f5 100644 --- a/samples/client/petstore/dart/swagger-browser-client/lib/api_client.dart +++ b/samples/client/petstore/dart/swagger-browser-client/lib/api_client.dart @@ -39,10 +39,14 @@ class ApiClient { return value is bool ? value : '$value'.toLowerCase() == 'true'; case 'double': return value is double ? value : double.parse('$value'); + case 'Amount': + return new Amount.fromJson(value); case 'ApiResponse': return new ApiResponse.fromJson(value); case 'Category': return new Category.fromJson(value); + case 'Currency': + return new Currency.fromJson(value); case 'Order': return new Order.fromJson(value); case 'Pet': @@ -72,13 +76,13 @@ class ApiClient { throw new ApiException(500, 'Could not find a suitable class for deserialization'); } - dynamic deserialize(String json, String targetType) { + dynamic deserialize(String jsonVal, String targetType) { // Remove all spaces. Necessary for reg expressions as well. targetType = targetType.replaceAll(' ', ''); - if (targetType == 'String') return json; + if (targetType == 'String') return jsonVal; - var decodedJson = JSON.decode(json); + var decodedJson = json.decode(jsonVal); return _deserialize(decodedJson, targetType); } @@ -87,7 +91,7 @@ class ApiClient { if (obj == null) { serialized = ''; } else { - serialized = JSON.encode(obj); + serialized = json.encode(obj); } return serialized; } diff --git a/samples/client/petstore/dart/swagger-browser-client/lib/auth/http_basic_auth.dart b/samples/client/petstore/dart/swagger-browser-client/lib/auth/http_basic_auth.dart index 7a118d6cdad8..3bb8e6e2b63b 100644 --- a/samples/client/petstore/dart/swagger-browser-client/lib/auth/http_basic_auth.dart +++ b/samples/client/petstore/dart/swagger-browser-client/lib/auth/http_basic_auth.dart @@ -8,7 +8,7 @@ class HttpBasicAuth implements Authentication { @override void applyToParams(List queryParams, Map headerParams) { String str = (username == null ? "" : username) + ":" + (password == null ? "" : password); - headerParams["Authorization"] = "Basic " + BASE64.encode(UTF8.encode(str)); + headerParams["Authorization"] = "Basic " + base64.encode(utf8.encode(str)); } } \ No newline at end of file diff --git a/samples/client/petstore/dart/swagger-browser-client/lib/model/amount.dart b/samples/client/petstore/dart/swagger-browser-client/lib/model/amount.dart new file mode 100644 index 000000000000..c30804fa2c0e --- /dev/null +++ b/samples/client/petstore/dart/swagger-browser-client/lib/model/amount.dart @@ -0,0 +1,48 @@ +part of swagger.api; + +class Amount { + /* some description */ + double value = null; + // range from 0.01 to 1000000000000000// + + Currency currency = null; + + Amount(); + + @override + String toString() { + return 'Amount[value=$value, currency=$currency, ]'; + } + + Amount.fromJson(Map json) { + if (json == null) return; + value = + json['value'] + ; + currency = + + + new Currency.fromJson(json['currency']) +; + } + + Map toJson() { + return { + 'value': value, + 'currency': currency + }; + } + + static List listFromJson(List json) { + return json == null ? new List() : json.map((value) => new Amount.fromJson(value)).toList(); + } + + static Map mapFromJson(Map> json) { + var map = new Map(); + if (json != null && json.length > 0) { + json.forEach((String key, Map value) => map[key] = new Amount.fromJson(value)); + } + return map; + } +} + diff --git a/samples/client/petstore/dart/swagger-browser-client/lib/model/currency.dart b/samples/client/petstore/dart/swagger-browser-client/lib/model/currency.dart new file mode 100644 index 000000000000..ad19e8215d37 --- /dev/null +++ b/samples/client/petstore/dart/swagger-browser-client/lib/model/currency.dart @@ -0,0 +1,32 @@ +part of swagger.api; + +class Currency { + Currency(); + + @override + String toString() { + return 'Currency[]'; + } + + Currency.fromJson(Map json) { + if (json == null) return; + } + + Map toJson() { + return { + }; + } + + static List listFromJson(List json) { + return json == null ? new List() : json.map((value) => new Currency.fromJson(value)).toList(); + } + + static Map mapFromJson(Map> json) { + var map = new Map(); + if (json != null && json.length > 0) { + json.forEach((String key, Map value) => map[key] = new Currency.fromJson(value)); + } + return map; + } +} + diff --git a/samples/client/petstore/dart/swagger/README.md b/samples/client/petstore/dart/swagger/README.md index 7244e3f3b944..599be44d8932 100644 --- a/samples/client/petstore/dart/swagger/README.md +++ b/samples/client/petstore/dart/swagger/README.md @@ -87,8 +87,10 @@ Class | Method | HTTP request | Description ## Documentation For Models + - [Amount](docs//Amount.md) - [ApiResponse](docs//ApiResponse.md) - [Category](docs//Category.md) + - [Currency](docs//Currency.md) - [Order](docs//Order.md) - [Pet](docs//Pet.md) - [Tag](docs//Tag.md) diff --git a/samples/client/petstore/dart/swagger/docs/Amount.md b/samples/client/petstore/dart/swagger/docs/Amount.md new file mode 100644 index 000000000000..12c2fc20a7a7 --- /dev/null +++ b/samples/client/petstore/dart/swagger/docs/Amount.md @@ -0,0 +1,16 @@ +# swagger.model.Amount + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**value** | **double** | some description | [default to null] +**currency** | [**Currency**](Currency.md) | | [default to null] + +[[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/dart/swagger/docs/Currency.md b/samples/client/petstore/dart/swagger/docs/Currency.md new file mode 100644 index 000000000000..0b25bce60f58 --- /dev/null +++ b/samples/client/petstore/dart/swagger/docs/Currency.md @@ -0,0 +1,14 @@ +# swagger.model.Currency + +## Load the model package +```dart +import 'package:swagger/api.dart'; +``` + +## 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/dart/swagger/lib/api.dart b/samples/client/petstore/dart/swagger/lib/api.dart index 6853e7c628f6..708f053a4670 100644 --- a/samples/client/petstore/dart/swagger/lib/api.dart +++ b/samples/client/petstore/dart/swagger/lib/api.dart @@ -16,8 +16,10 @@ part 'api/pet_api.dart'; part 'api/store_api.dart'; part 'api/user_api.dart'; +part 'model/amount.dart'; part 'model/api_response.dart'; part 'model/category.dart'; +part 'model/currency.dart'; part 'model/order.dart'; part 'model/pet.dart'; part 'model/tag.dart'; diff --git a/samples/client/petstore/dart/swagger/lib/api_client.dart b/samples/client/petstore/dart/swagger/lib/api_client.dart index 5ba2bb32f510..865af26741e2 100644 --- a/samples/client/petstore/dart/swagger/lib/api_client.dart +++ b/samples/client/petstore/dart/swagger/lib/api_client.dart @@ -39,10 +39,14 @@ class ApiClient { return value is bool ? value : '$value'.toLowerCase() == 'true'; case 'double': return value is double ? value : double.parse('$value'); + case 'Amount': + return new Amount.fromJson(value); case 'ApiResponse': return new ApiResponse.fromJson(value); case 'Category': return new Category.fromJson(value); + case 'Currency': + return new Currency.fromJson(value); case 'Order': return new Order.fromJson(value); case 'Pet': @@ -72,13 +76,13 @@ class ApiClient { throw new ApiException(500, 'Could not find a suitable class for deserialization'); } - dynamic deserialize(String json, String targetType) { + dynamic deserialize(String jsonVal, String targetType) { // Remove all spaces. Necessary for reg expressions as well. targetType = targetType.replaceAll(' ', ''); - if (targetType == 'String') return json; + if (targetType == 'String') return jsonVal; - var decodedJson = JSON.decode(json); + var decodedJson = json.decode(jsonVal); return _deserialize(decodedJson, targetType); } @@ -87,7 +91,7 @@ class ApiClient { if (obj == null) { serialized = ''; } else { - serialized = JSON.encode(obj); + serialized = json.encode(obj); } return serialized; } diff --git a/samples/client/petstore/dart/swagger/lib/auth/http_basic_auth.dart b/samples/client/petstore/dart/swagger/lib/auth/http_basic_auth.dart index 7a118d6cdad8..3bb8e6e2b63b 100644 --- a/samples/client/petstore/dart/swagger/lib/auth/http_basic_auth.dart +++ b/samples/client/petstore/dart/swagger/lib/auth/http_basic_auth.dart @@ -8,7 +8,7 @@ class HttpBasicAuth implements Authentication { @override void applyToParams(List queryParams, Map headerParams) { String str = (username == null ? "" : username) + ":" + (password == null ? "" : password); - headerParams["Authorization"] = "Basic " + BASE64.encode(UTF8.encode(str)); + headerParams["Authorization"] = "Basic " + base64.encode(utf8.encode(str)); } } \ No newline at end of file diff --git a/samples/client/petstore/dart/swagger/lib/model/amount.dart b/samples/client/petstore/dart/swagger/lib/model/amount.dart new file mode 100644 index 000000000000..c30804fa2c0e --- /dev/null +++ b/samples/client/petstore/dart/swagger/lib/model/amount.dart @@ -0,0 +1,48 @@ +part of swagger.api; + +class Amount { + /* some description */ + double value = null; + // range from 0.01 to 1000000000000000// + + Currency currency = null; + + Amount(); + + @override + String toString() { + return 'Amount[value=$value, currency=$currency, ]'; + } + + Amount.fromJson(Map json) { + if (json == null) return; + value = + json['value'] + ; + currency = + + + new Currency.fromJson(json['currency']) +; + } + + Map toJson() { + return { + 'value': value, + 'currency': currency + }; + } + + static List listFromJson(List json) { + return json == null ? new List() : json.map((value) => new Amount.fromJson(value)).toList(); + } + + static Map mapFromJson(Map> json) { + var map = new Map(); + if (json != null && json.length > 0) { + json.forEach((String key, Map value) => map[key] = new Amount.fromJson(value)); + } + return map; + } +} + diff --git a/samples/client/petstore/dart/swagger/lib/model/currency.dart b/samples/client/petstore/dart/swagger/lib/model/currency.dart new file mode 100644 index 000000000000..ad19e8215d37 --- /dev/null +++ b/samples/client/petstore/dart/swagger/lib/model/currency.dart @@ -0,0 +1,32 @@ +part of swagger.api; + +class Currency { + Currency(); + + @override + String toString() { + return 'Currency[]'; + } + + Currency.fromJson(Map json) { + if (json == null) return; + } + + Map toJson() { + return { + }; + } + + static List listFromJson(List json) { + return json == null ? new List() : json.map((value) => new Currency.fromJson(value)).toList(); + } + + static Map mapFromJson(Map> json) { + var map = new Map(); + if (json != null && json.length > 0) { + json.forEach((String key, Map value) => map[key] = new Currency.fromJson(value)); + } + return map; + } +} + diff --git a/samples/client/petstore/javascript-es6/package.json b/samples/client/petstore/javascript-es6/package.json index afb99e8a97a0..5c981d5b89df 100644 --- a/samples/client/petstore/javascript-es6/package.json +++ b/samples/client/petstore/javascript-es6/package.json @@ -13,7 +13,7 @@ "dependencies": { "babel": "^6.23.0", "babel-cli": "^6.26.0", - "superagent": "3.5.2" + "superagent": "3.7.0" }, "devDependencies": { "babel-core": "6.26.0", diff --git a/samples/client/petstore/javascript-promise-es6/package.json b/samples/client/petstore/javascript-promise-es6/package.json index afb99e8a97a0..5c981d5b89df 100644 --- a/samples/client/petstore/javascript-promise-es6/package.json +++ b/samples/client/petstore/javascript-promise-es6/package.json @@ -13,7 +13,7 @@ "dependencies": { "babel": "^6.23.0", "babel-cli": "^6.26.0", - "superagent": "3.5.2" + "superagent": "3.7.0" }, "devDependencies": { "babel-core": "6.26.0", diff --git a/samples/client/petstore/javascript-promise/package.json b/samples/client/petstore/javascript-promise/package.json index e9678cd1878e..9254b302451b 100644 --- a/samples/client/petstore/javascript-promise/package.json +++ b/samples/client/petstore/javascript-promise/package.json @@ -11,7 +11,7 @@ "fs": false }, "dependencies": { - "superagent": "3.5.2" + "superagent": "3.7.0" }, "devDependencies": { "mocha": "~2.3.4", diff --git a/samples/client/petstore/javascript/package.json b/samples/client/petstore/javascript/package.json index e9678cd1878e..9254b302451b 100644 --- a/samples/client/petstore/javascript/package.json +++ b/samples/client/petstore/javascript/package.json @@ -11,7 +11,7 @@ "fs": false }, "dependencies": { - "superagent": "3.5.2" + "superagent": "3.7.0" }, "devDependencies": { "mocha": "~2.3.4", diff --git a/samples/client/petstore/kotlin/README.md b/samples/client/petstore/kotlin/README.md index 410e14e4adb8..1a2e050ba6e3 100644 --- a/samples/client/petstore/kotlin/README.md +++ b/samples/client/petstore/kotlin/README.md @@ -31,7 +31,7 @@ This runs all tests and packages the library. ## Documentation for API Endpoints -All URIs are relative to *http://petstore.swagger.io/v2* +All URIs are relative to *https://petstore.swagger.io/v2* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- @@ -83,7 +83,7 @@ Class | Method | HTTP request | Description - **Type**: OAuth - **Flow**: implicit -- **Authorization URL**: http://petstore.swagger.io/api/oauth/dialog +- **Authorization URL**: https://petstore.swagger.io/oauth/dialog - **Scopes**: - write:pets: modify pets in your account - read:pets: read your pets diff --git a/samples/client/petstore/kotlin/docs/PetApi.md b/samples/client/petstore/kotlin/docs/PetApi.md index 29fb5bd0eeb8..24bada35c8d6 100644 --- a/samples/client/petstore/kotlin/docs/PetApi.md +++ b/samples/client/petstore/kotlin/docs/PetApi.md @@ -1,6 +1,6 @@ # PetApi -All URIs are relative to *http://petstore.swagger.io/v2* +All URIs are relative to *https://petstore.swagger.io/v2* Method | HTTP request | Description ------------- | ------------- | ------------- @@ -161,7 +161,7 @@ Name | Type | Description | Notes Finds Pets by tags -Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. +Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. ### Example ```kotlin diff --git a/samples/client/petstore/kotlin/docs/StoreApi.md b/samples/client/petstore/kotlin/docs/StoreApi.md index 022e1362b0f8..4a0371c2f42c 100644 --- a/samples/client/petstore/kotlin/docs/StoreApi.md +++ b/samples/client/petstore/kotlin/docs/StoreApi.md @@ -1,6 +1,6 @@ # StoreApi -All URIs are relative to *http://petstore.swagger.io/v2* +All URIs are relative to *https://petstore.swagger.io/v2* Method | HTTP request | Description ------------- | ------------- | ------------- @@ -16,7 +16,7 @@ Method | HTTP request | Description Delete purchase order by ID -For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors +For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors ### Example ```kotlin @@ -25,7 +25,7 @@ For valid response try integer IDs with value < 1000. Anything above 1000 or //import io.swagger.client.models.* val apiInstance = StoreApi() -val orderId : kotlin.String = orderId_example // kotlin.String | ID of the order that needs to be deleted +val orderId : kotlin.Long = 789 // kotlin.Long | ID of the order that needs to be deleted try { apiInstance.deleteOrder(orderId) } catch (e: ClientException) { @@ -41,7 +41,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **orderId** | **kotlin.String**| ID of the order that needs to be deleted | + **orderId** | **kotlin.Long**| ID of the order that needs to be deleted | ### Return type @@ -105,7 +105,7 @@ This endpoint does not need any parameter. Find purchase order by ID -For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions +For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions ### Example ```kotlin diff --git a/samples/client/petstore/kotlin/docs/UserApi.md b/samples/client/petstore/kotlin/docs/UserApi.md index 0c4b9b79de84..67fd45527c43 100644 --- a/samples/client/petstore/kotlin/docs/UserApi.md +++ b/samples/client/petstore/kotlin/docs/UserApi.md @@ -1,6 +1,6 @@ # UserApi -All URIs are relative to *http://petstore.swagger.io/v2* +All URIs are relative to *https://petstore.swagger.io/v2* Method | HTTP request | Description ------------- | ------------- | ------------- @@ -213,7 +213,7 @@ Get user by user name //import io.swagger.client.models.* val apiInstance = UserApi() -val username : kotlin.String = username_example // kotlin.String | The name that needs to be fetched. Use user1 for testing. +val username : kotlin.String = username_example // kotlin.String | The name that needs to be fetched. Use user1 for testing. try { val result : User = apiInstance.getUserByName(username) println(result) @@ -230,7 +230,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **username** | **kotlin.String**| The name that needs to be fetched. Use user1 for testing. | + **username** | **kotlin.String**| The name that needs to be fetched. Use user1 for testing. | ### Return type @@ -351,7 +351,7 @@ This can only be done by the logged in user. //import io.swagger.client.models.* val apiInstance = UserApi() -val username : kotlin.String = username_example // kotlin.String | name that need to be deleted +val username : kotlin.String = username_example // kotlin.String | name that need to be updated val body : User = // User | Updated user object try { apiInstance.updateUser(username, body) @@ -368,7 +368,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **username** | **kotlin.String**| name that need to be deleted | + **username** | **kotlin.String**| name that need to be updated | **body** | [**User**](User.md)| Updated user object | ### Return type diff --git a/samples/client/petstore/kotlin/settings.gradle b/samples/client/petstore/kotlin/settings.gradle index 17e020387e21..50b05bef95ea 100644 --- a/samples/client/petstore/kotlin/settings.gradle +++ b/samples/client/petstore/kotlin/settings.gradle @@ -1 +1 @@ -rootProject.name = 'kotlin-petstore-client' \ No newline at end of file +rootProject.name = 'kotlin-client' \ No newline at end of file diff --git a/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/apis/PetApi.kt b/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/apis/PetApi.kt index 5d6d2f187ebc..607f39e07441 100644 --- a/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/apis/PetApi.kt +++ b/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/apis/PetApi.kt @@ -16,7 +16,7 @@ import io.swagger.client.models.Pet import io.swagger.client.infrastructure.* -class PetApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiClient(basePath) { +class PetApi(basePath: kotlin.String = "https://petstore.swagger.io/v2") : ApiClient(basePath) { /** * Add a new pet to the store @@ -27,7 +27,13 @@ class PetApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiCli fun addPet(body: Pet) : Unit { val localVariableBody: kotlin.Any? = body val localVariableQuery: MultiValueMap = mapOf() - val localVariableHeaders: kotlin.collections.Map = mapOf() + + val contentHeaders: kotlin.collections.Map = mapOf() + val acceptsHeaders: kotlin.collections.Map = mapOf("Accept" to "application/xml, application/json") + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf() + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.POST, "/pet", @@ -59,7 +65,13 @@ class PetApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiCli fun deletePet(petId: kotlin.Long, apiKey: kotlin.String) : Unit { val localVariableBody: kotlin.Any? = null val localVariableQuery: MultiValueMap = mapOf() - val localVariableHeaders: kotlin.collections.Map = mapOf("api_key" to apiKey) + + val contentHeaders: kotlin.collections.Map = mapOf() + val acceptsHeaders: kotlin.collections.Map = mapOf("Accept" to "application/xml, application/json") + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf("api_key" to apiKey) + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.DELETE, "/pet/{petId}".replace("{"+"petId"+"}", "$petId"), @@ -90,8 +102,14 @@ class PetApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiCli @Suppress("UNCHECKED_CAST") fun findPetsByStatus(status: kotlin.Array) : kotlin.Array { val localVariableBody: kotlin.Any? = null - val localVariableQuery: MultiValueMap = mapOf("status" to toMultiValue(status.toList(), "csv")) - val localVariableHeaders: kotlin.collections.Map = mapOf() + val localVariableQuery: MultiValueMap = mapOf("status" to toMultiValue(status.toList(), "multi")) + + val contentHeaders: kotlin.collections.Map = mapOf() + val acceptsHeaders: kotlin.collections.Map = mapOf("Accept" to "application/xml, application/json") + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf() + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.GET, "/pet/findByStatus", @@ -115,15 +133,21 @@ class PetApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiCli /** * Finds Pets by tags - * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + * Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. * @param tags Tags to filter by * @return kotlin.Array */ @Suppress("UNCHECKED_CAST") fun findPetsByTags(tags: kotlin.Array) : kotlin.Array { val localVariableBody: kotlin.Any? = null - val localVariableQuery: MultiValueMap = mapOf("tags" to toMultiValue(tags.toList(), "csv")) - val localVariableHeaders: kotlin.collections.Map = mapOf() + val localVariableQuery: MultiValueMap = mapOf("tags" to toMultiValue(tags.toList(), "multi")) + + val contentHeaders: kotlin.collections.Map = mapOf() + val acceptsHeaders: kotlin.collections.Map = mapOf("Accept" to "application/xml, application/json") + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf() + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.GET, "/pet/findByTags", @@ -155,7 +179,13 @@ class PetApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiCli fun getPetById(petId: kotlin.Long) : Pet { val localVariableBody: kotlin.Any? = null val localVariableQuery: MultiValueMap = mapOf() - val localVariableHeaders: kotlin.collections.Map = mapOf() + + val contentHeaders: kotlin.collections.Map = mapOf() + val acceptsHeaders: kotlin.collections.Map = mapOf("Accept" to "application/xml, application/json") + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf() + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.GET, "/pet/{petId}".replace("{"+"petId"+"}", "$petId"), @@ -186,7 +216,13 @@ class PetApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiCli fun updatePet(body: Pet) : Unit { val localVariableBody: kotlin.Any? = body val localVariableQuery: MultiValueMap = mapOf() - val localVariableHeaders: kotlin.collections.Map = mapOf() + + val contentHeaders: kotlin.collections.Map = mapOf() + val acceptsHeaders: kotlin.collections.Map = mapOf("Accept" to "application/xml, application/json") + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf() + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.PUT, "/pet", @@ -219,7 +255,13 @@ class PetApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiCli fun updatePetWithForm(petId: kotlin.Long, name: kotlin.String, status: kotlin.String) : Unit { val localVariableBody: kotlin.Any? = mapOf("name" to "$name", "status" to "$status") val localVariableQuery: MultiValueMap = mapOf() - val localVariableHeaders: kotlin.collections.Map = mapOf("Content-Type" to "multipart/form-data") + + val contentHeaders: kotlin.collections.Map = mapOf("Content-Type" to "multipart/form-data") + val acceptsHeaders: kotlin.collections.Map = mapOf("Accept" to "application/xml, application/json") + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf() + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.POST, "/pet/{petId}".replace("{"+"petId"+"}", "$petId"), @@ -253,7 +295,13 @@ class PetApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiCli fun uploadFile(petId: kotlin.Long, additionalMetadata: kotlin.String, file: java.io.File) : ApiResponse { val localVariableBody: kotlin.Any? = mapOf("additionalMetadata" to "$additionalMetadata", "file" to "$file") val localVariableQuery: MultiValueMap = mapOf() - val localVariableHeaders: kotlin.collections.Map = mapOf("Content-Type" to "multipart/form-data") + + val contentHeaders: kotlin.collections.Map = mapOf("Content-Type" to "multipart/form-data") + val acceptsHeaders: kotlin.collections.Map = mapOf("Accept" to "application/json") + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf() + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.POST, "/pet/{petId}/uploadImage".replace("{"+"petId"+"}", "$petId"), diff --git a/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/apis/StoreApi.kt b/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/apis/StoreApi.kt index 53e3813f4dc2..f4a95a366165 100644 --- a/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/apis/StoreApi.kt +++ b/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/apis/StoreApi.kt @@ -15,18 +15,24 @@ import io.swagger.client.models.Order import io.swagger.client.infrastructure.* -class StoreApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiClient(basePath) { +class StoreApi(basePath: kotlin.String = "https://petstore.swagger.io/v2") : ApiClient(basePath) { /** * Delete purchase order by ID - * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + * For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors * @param orderId ID of the order that needs to be deleted * @return void */ - fun deleteOrder(orderId: kotlin.String) : Unit { + fun deleteOrder(orderId: kotlin.Long) : Unit { val localVariableBody: kotlin.Any? = null val localVariableQuery: MultiValueMap = mapOf() - val localVariableHeaders: kotlin.collections.Map = mapOf() + + val contentHeaders: kotlin.collections.Map = mapOf() + val acceptsHeaders: kotlin.collections.Map = mapOf("Accept" to "application/xml, application/json") + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf() + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.DELETE, "/store/order/{orderId}".replace("{"+"orderId"+"}", "$orderId"), @@ -57,7 +63,13 @@ class StoreApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiC fun getInventory() : kotlin.collections.Map { val localVariableBody: kotlin.Any? = null val localVariableQuery: MultiValueMap = mapOf() - val localVariableHeaders: kotlin.collections.Map = mapOf() + + val contentHeaders: kotlin.collections.Map = mapOf() + val acceptsHeaders: kotlin.collections.Map = mapOf("Accept" to "application/json") + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf() + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.GET, "/store/inventory", @@ -81,7 +93,7 @@ class StoreApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiC /** * Find purchase order by ID - * For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + * For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions * @param orderId ID of pet that needs to be fetched * @return Order */ @@ -89,7 +101,13 @@ class StoreApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiC fun getOrderById(orderId: kotlin.Long) : Order { val localVariableBody: kotlin.Any? = null val localVariableQuery: MultiValueMap = mapOf() - val localVariableHeaders: kotlin.collections.Map = mapOf() + + val contentHeaders: kotlin.collections.Map = mapOf() + val acceptsHeaders: kotlin.collections.Map = mapOf("Accept" to "application/xml, application/json") + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf() + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.GET, "/store/order/{orderId}".replace("{"+"orderId"+"}", "$orderId"), @@ -121,7 +139,13 @@ class StoreApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiC fun placeOrder(body: Order) : Order { val localVariableBody: kotlin.Any? = body val localVariableQuery: MultiValueMap = mapOf() - val localVariableHeaders: kotlin.collections.Map = mapOf() + + val contentHeaders: kotlin.collections.Map = mapOf() + val acceptsHeaders: kotlin.collections.Map = mapOf("Accept" to "application/xml, application/json") + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf() + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.POST, "/store/order", diff --git a/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/apis/UserApi.kt b/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/apis/UserApi.kt index 9bd50f0f4c0f..dc83e3932ecf 100644 --- a/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/apis/UserApi.kt +++ b/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/apis/UserApi.kt @@ -15,7 +15,7 @@ import io.swagger.client.models.User import io.swagger.client.infrastructure.* -class UserApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiClient(basePath) { +class UserApi(basePath: kotlin.String = "https://petstore.swagger.io/v2") : ApiClient(basePath) { /** * Create user @@ -26,7 +26,13 @@ class UserApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiCl fun createUser(body: User) : Unit { val localVariableBody: kotlin.Any? = body val localVariableQuery: MultiValueMap = mapOf() - val localVariableHeaders: kotlin.collections.Map = mapOf() + + val contentHeaders: kotlin.collections.Map = mapOf() + val acceptsHeaders: kotlin.collections.Map = mapOf("Accept" to "application/xml, application/json") + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf() + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.POST, "/user", @@ -57,7 +63,13 @@ class UserApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiCl fun createUsersWithArrayInput(body: kotlin.Array) : Unit { val localVariableBody: kotlin.Any? = body val localVariableQuery: MultiValueMap = mapOf() - val localVariableHeaders: kotlin.collections.Map = mapOf() + + val contentHeaders: kotlin.collections.Map = mapOf() + val acceptsHeaders: kotlin.collections.Map = mapOf("Accept" to "application/xml, application/json") + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf() + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.POST, "/user/createWithArray", @@ -88,7 +100,13 @@ class UserApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiCl fun createUsersWithListInput(body: kotlin.Array) : Unit { val localVariableBody: kotlin.Any? = body val localVariableQuery: MultiValueMap = mapOf() - val localVariableHeaders: kotlin.collections.Map = mapOf() + + val contentHeaders: kotlin.collections.Map = mapOf() + val acceptsHeaders: kotlin.collections.Map = mapOf("Accept" to "application/xml, application/json") + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf() + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.POST, "/user/createWithList", @@ -119,7 +137,13 @@ class UserApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiCl fun deleteUser(username: kotlin.String) : Unit { val localVariableBody: kotlin.Any? = null val localVariableQuery: MultiValueMap = mapOf() - val localVariableHeaders: kotlin.collections.Map = mapOf() + + val contentHeaders: kotlin.collections.Map = mapOf() + val acceptsHeaders: kotlin.collections.Map = mapOf("Accept" to "application/xml, application/json") + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf() + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.DELETE, "/user/{username}".replace("{"+"username"+"}", "$username"), @@ -144,14 +168,20 @@ class UserApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiCl /** * Get user by user name * - * @param username The name that needs to be fetched. Use user1 for testing. + * @param username The name that needs to be fetched. Use user1 for testing. * @return User */ @Suppress("UNCHECKED_CAST") fun getUserByName(username: kotlin.String) : User { val localVariableBody: kotlin.Any? = null val localVariableQuery: MultiValueMap = mapOf() - val localVariableHeaders: kotlin.collections.Map = mapOf() + + val contentHeaders: kotlin.collections.Map = mapOf() + val acceptsHeaders: kotlin.collections.Map = mapOf("Accept" to "application/xml, application/json") + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf() + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.GET, "/user/{username}".replace("{"+"username"+"}", "$username"), @@ -184,7 +214,13 @@ class UserApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiCl fun loginUser(username: kotlin.String, password: kotlin.String) : kotlin.String { val localVariableBody: kotlin.Any? = null val localVariableQuery: MultiValueMap = mapOf("username" to listOf("$username"), "password" to listOf("$password")) - val localVariableHeaders: kotlin.collections.Map = mapOf() + + val contentHeaders: kotlin.collections.Map = mapOf() + val acceptsHeaders: kotlin.collections.Map = mapOf("Accept" to "application/xml, application/json") + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf() + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.GET, "/user/login", @@ -214,7 +250,13 @@ class UserApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiCl fun logoutUser() : Unit { val localVariableBody: kotlin.Any? = null val localVariableQuery: MultiValueMap = mapOf() - val localVariableHeaders: kotlin.collections.Map = mapOf() + + val contentHeaders: kotlin.collections.Map = mapOf() + val acceptsHeaders: kotlin.collections.Map = mapOf("Accept" to "application/xml, application/json") + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf() + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.GET, "/user/logout", @@ -239,14 +281,20 @@ class UserApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiCl /** * Updated user * This can only be done by the logged in user. - * @param username name that need to be deleted + * @param username name that need to be updated * @param body Updated user object * @return void */ fun updateUser(username: kotlin.String, body: User) : Unit { val localVariableBody: kotlin.Any? = body val localVariableQuery: MultiValueMap = mapOf() - val localVariableHeaders: kotlin.collections.Map = mapOf() + + val contentHeaders: kotlin.collections.Map = mapOf() + val acceptsHeaders: kotlin.collections.Map = mapOf("Accept" to "application/xml, application/json") + val localVariableHeaders: kotlin.collections.MutableMap = mutableMapOf() + localVariableHeaders.putAll(contentHeaders) + localVariableHeaders.putAll(acceptsHeaders) + val localVariableConfig = RequestConfig( RequestMethod.PUT, "/user/{username}".replace("{"+"username"+"}", "$username"), diff --git a/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/infrastructure/ApiClient.kt b/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/infrastructure/ApiClient.kt index 7e3a11664bd0..0595041a6d20 100644 --- a/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/infrastructure/ApiClient.kt +++ b/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/infrastructure/ApiClient.kt @@ -2,6 +2,8 @@ package io.swagger.client.infrastructure import okhttp3.* import java.io.File +import java.io.IOException +import java.util.regex.Pattern open class ApiClient(val baseUrl: String) { companion object { @@ -51,12 +53,31 @@ open class ApiClient(val baseUrl: String) { TODO("requestBody currently only supports JSON body and File body.") } - inline protected fun responseBody(body: ResponseBody?, mediaType: String = JsonMediaType): T? { - if(body == null) return null - return when(mediaType) { - JsonMediaType -> Serializer.moshi.adapter(T::class.java).fromJson(body.source()) - else -> TODO() + inline protected fun responseBody(response: Response, mediaType: String = JsonMediaType): T? { + if(response.body() == null) return null + + if(T::class.java == java.io.File::class.java){ + return downloadFileFromResponse(response) as T } + + var contentType = response.headers().get("Content-Type") + + if(contentType == null) { + contentType = JsonMediaType + } + + if(isJsonMime(contentType)){ + return Serializer.moshi.adapter(T::class.java).fromJson(response.body()?.source()) + } else if(contentType.equals(String.javaClass)){ + return response.body().toString() as T + } else { + TODO("Fill in more types!") + } + } + + fun isJsonMime(mime: String?): Boolean { + val jsonMime = "(?i)^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$" + return mime != null && (mime.matches(jsonMime.toRegex()) || mime == "*/*") } inline protected fun request(requestConfig: RequestConfig, body : Any? = null): ApiInfrastructureResponse { @@ -72,7 +93,7 @@ open class ApiClient(val baseUrl: String) { } val url = urlBuilder.build() - val headers = requestConfig.headers + defaultHeaders + val headers = defaultHeaders + requestConfig.headers if(headers[ContentType] ?: "" == "") { throw kotlin.IllegalStateException("Missing Content-Type header. This is required.") @@ -113,7 +134,7 @@ open class ApiClient(val baseUrl: String) { response.headers().toMultimap() ) response.isSuccessful -> return Success( - responseBody(response.body(), accept), + responseBody(response, accept), response.code(), response.headers().toMultimap() ) @@ -130,4 +151,50 @@ open class ApiClient(val baseUrl: String) { ) } } + + @Throws(IOException::class) + fun downloadFileFromResponse(response: Response): File { + val file = prepareDownloadFile(response) + + response.body()?.byteStream().use{ input -> + File(file.path).outputStream().use { input?.copyTo(it) } + } + + return file + } + + @Throws(IOException::class) + fun prepareDownloadFile(response: Response): File { + var filename: String? = null + var contentDisposition = response.headers().get("Content-Disposition") + + if(contentDisposition != null && contentDisposition != ""){ + val pattern = Pattern.compile("filename=['\"]?([^'\"\\s]+)['\"]?") + val matcher = pattern.matcher(contentDisposition) + + if (matcher.find()) + filename = matcher.group(1) + } + var prefix: String + var suffix: String? = null + + if (filename == null) { + prefix = "download-" + suffix = "" + } else { + val pos = filename.lastIndexOf('.') + + if (pos == -1) { + prefix = filename + "-"; + } else { + prefix = filename.substring(0, pos) + "-" + suffix = filename.substring(pos) + } + // File.createTempFile requires the prefix to be at least three characters long + if (prefix.length < 3) + prefix = "download-" + } + + return File.createTempFile(prefix, suffix); + } } \ No newline at end of file diff --git a/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/ApiResponse.kt b/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/ApiResponse.kt index c79864c2515c..923a0fee1e28 100644 --- a/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/ApiResponse.kt +++ b/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/ApiResponse.kt @@ -13,7 +13,7 @@ package io.swagger.client.models /** - * Describes the result of uploading an image resource + * * @param code * @param type * @param message diff --git a/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/Category.kt b/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/Category.kt index f14b8010fccb..c9a1ac7158f8 100644 --- a/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/Category.kt +++ b/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/Category.kt @@ -13,7 +13,7 @@ package io.swagger.client.models /** - * A category for a pet + * * @param id * @param name */ diff --git a/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/Order.kt b/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/Order.kt index 718a31cd0d34..041f9ea0f0db 100644 --- a/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/Order.kt +++ b/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/Order.kt @@ -14,7 +14,7 @@ package io.swagger.client.models import com.squareup.moshi.Json /** - * An order for a pets from the pet store + * * @param id * @param petId * @param quantity diff --git a/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/Pet.kt b/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/Pet.kt index 4008a46203c9..488dc73552f7 100644 --- a/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/Pet.kt +++ b/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/Pet.kt @@ -16,7 +16,7 @@ import io.swagger.client.models.Tag import com.squareup.moshi.Json /** - * A pet for sale in the pet store + * * @param id * @param category * @param name diff --git a/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/Tag.kt b/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/Tag.kt index 6686186b1a26..e5a51f1784d5 100644 --- a/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/Tag.kt +++ b/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/Tag.kt @@ -13,7 +13,7 @@ package io.swagger.client.models /** - * A tag for a pet + * * @param id * @param name */ diff --git a/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/User.kt b/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/User.kt index 527a75bad4b2..0c3847b34cc2 100644 --- a/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/User.kt +++ b/samples/client/petstore/kotlin/src/main/kotlin/io/swagger/client/models/User.kt @@ -13,7 +13,7 @@ package io.swagger.client.models /** - * A User who is purchasing from the pet store + * * @param id * @param username * @param firstName diff --git a/samples/client/petstore/php/SwaggerClient-php/.php_cs b/samples/client/petstore/php/SwaggerClient-php/.php_cs index 6b8e23c818a9..4fbe53ec5ff1 100644 --- a/samples/client/petstore/php/SwaggerClient-php/.php_cs +++ b/samples/client/petstore/php/SwaggerClient-php/.php_cs @@ -1,18 +1,23 @@ level(Symfony\CS\FixerInterface::PSR2_LEVEL) +return PhpCsFixer\Config::create() ->setUsingCache(true) - ->fixers( - [ - 'ordered_use', - 'phpdoc_order', - 'short_array_syntax', - 'strict', - 'strict_param' - ] - ) - ->finder( - Symfony\CS\Finder\DefaultFinder::create() - ->in(__DIR__) + ->setRules([ + '@PSR2' => true, + 'ordered_imports' => true, + 'phpdoc_order' => true, + 'array_syntax' => [ 'syntax' => 'short' ], + 'strict_comparison' => true, + 'strict_param' => true, + 'no_trailing_whitespace' => false, + 'no_trailing_whitespace_in_comment' => false, + 'braces' => false, + 'single_blank_line_at_eof' => false, + 'blank_line_after_namespace' => false, + ]) + ->setFinder( + PhpCsFixer\Finder::create() + ->exclude('test') + ->exclude('tests') + ->in(__DIR__) ); diff --git a/samples/client/petstore/php/SwaggerClient-php/README.md b/samples/client/petstore/php/SwaggerClient-php/README.md index 2fd020297c7d..fa5c5b4f50d3 100644 --- a/samples/client/petstore/php/SwaggerClient-php/README.md +++ b/samples/client/petstore/php/SwaggerClient-php/README.md @@ -80,11 +80,11 @@ All URIs are relative to *http://petstore.swagger.io:80/v2* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- *AnotherFakeApi* | [**testSpecialTags**](docs/Api/AnotherFakeApi.md#testspecialtags) | **PATCH** /another-fake/dummy | To test special tags -*DefaultApi* | [**testBodyWithQueryParams**](docs/Api/DefaultApi.md#testbodywithqueryparams) | **PUT** /fake/body-with-query-params | *FakeApi* | [**fakeOuterBooleanSerialize**](docs/Api/FakeApi.md#fakeouterbooleanserialize) | **POST** /fake/outer/boolean | *FakeApi* | [**fakeOuterCompositeSerialize**](docs/Api/FakeApi.md#fakeoutercompositeserialize) | **POST** /fake/outer/composite | *FakeApi* | [**fakeOuterNumberSerialize**](docs/Api/FakeApi.md#fakeouternumberserialize) | **POST** /fake/outer/number | *FakeApi* | [**fakeOuterStringSerialize**](docs/Api/FakeApi.md#fakeouterstringserialize) | **POST** /fake/outer/string | +*FakeApi* | [**testBodyWithQueryParams**](docs/Api/FakeApi.md#testbodywithqueryparams) | **PUT** /fake/body-with-query-params | *FakeApi* | [**testClientModel**](docs/Api/FakeApi.md#testclientmodel) | **PATCH** /fake | To test \"client\" model *FakeApi* | [**testEndpointParameters**](docs/Api/FakeApi.md#testendpointparameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 *FakeApi* | [**testEnumParameters**](docs/Api/FakeApi.md#testenumparameters) | **GET** /fake | To test enum parameters diff --git a/samples/client/petstore/php/SwaggerClient-php/composer.json b/samples/client/petstore/php/SwaggerClient-php/composer.json index 2ebbe805eea4..2d76f02819bf 100644 --- a/samples/client/petstore/php/SwaggerClient-php/composer.json +++ b/samples/client/petstore/php/SwaggerClient-php/composer.json @@ -25,7 +25,7 @@ "require-dev": { "phpunit/phpunit": "^4.8", "squizlabs/php_codesniffer": "~2.6", - "friendsofphp/php-cs-fixer": "~1.12" + "friendsofphp/php-cs-fixer": "~2.12" }, "autoload": { "psr-4": { "Swagger\\Client\\" : "lib/" } diff --git a/samples/client/petstore/php/SwaggerClient-php/docs/Api/FakeApi.md b/samples/client/petstore/php/SwaggerClient-php/docs/Api/FakeApi.md index da5558c386fc..d82c7a836897 100644 --- a/samples/client/petstore/php/SwaggerClient-php/docs/Api/FakeApi.md +++ b/samples/client/petstore/php/SwaggerClient-php/docs/Api/FakeApi.md @@ -8,6 +8,7 @@ Method | HTTP request | Description [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | [**fakeOuterStringSerialize**](FakeApi.md#fakeOuterStringSerialize) | **POST** /fake/outer/string | +[**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 @@ -211,6 +212,54 @@ 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) +# **testBodyWithQueryParams** +> testBodyWithQueryParams($body, $query) + + + +### Example +```php +testBodyWithQueryParams($body, $query); +} catch (Exception $e) { + echo 'Exception when calling FakeApi->testBodyWithQueryParams: ', $e->getMessage(), PHP_EOL; +} +?> +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **body** | [**\Swagger\Client\Model\User**](../Model/User.md)| | + **query** | **string**| | + +### 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** > \Swagger\Client\Model\Client testClientModel($body) diff --git a/samples/client/petstore/php/SwaggerClient-php/lib/Api/FakeApi.php b/samples/client/petstore/php/SwaggerClient-php/lib/Api/FakeApi.php index bb692f775b6a..c35e3528f72d 100644 --- a/samples/client/petstore/php/SwaggerClient-php/lib/Api/FakeApi.php +++ b/samples/client/petstore/php/SwaggerClient-php/lib/Api/FakeApi.php @@ -1075,6 +1075,237 @@ protected function fakeOuterStringSerializeRequest($body = null) ); } + /** + * Operation testBodyWithQueryParams + * + * @param \Swagger\Client\Model\User $body body (required) + * @param string $query query (required) + * + * @throws \Swagger\Client\ApiException on non-2xx response + * @throws \InvalidArgumentException + * @return void + */ + public function testBodyWithQueryParams($body, $query) + { + $this->testBodyWithQueryParamsWithHttpInfo($body, $query); + } + + /** + * Operation testBodyWithQueryParamsWithHttpInfo + * + * @param \Swagger\Client\Model\User $body (required) + * @param string $query (required) + * + * @throws \Swagger\Client\ApiException on non-2xx response + * @throws \InvalidArgumentException + * @return array of null, HTTP status code, HTTP response headers (array of strings) + */ + public function testBodyWithQueryParamsWithHttpInfo($body, $query) + { + $returnType = ''; + $request = $this->testBodyWithQueryParamsRequest($body, $query); + + try { + $options = $this->createHttpClientOption(); + try { + $response = $this->client->send($request, $options); + } catch (RequestException $e) { + throw new ApiException( + "[{$e->getCode()}] {$e->getMessage()}", + $e->getCode(), + $e->getResponse() ? $e->getResponse()->getHeaders() : null, + $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null + ); + } + + $statusCode = $response->getStatusCode(); + + if ($statusCode < 200 || $statusCode > 299) { + throw new ApiException( + sprintf( + '[%d] Error connecting to the API (%s)', + $statusCode, + $request->getUri() + ), + $statusCode, + $response->getHeaders(), + $response->getBody() + ); + } + + return [null, $statusCode, $response->getHeaders()]; + + } catch (ApiException $e) { + switch ($e->getCode()) { + } + throw $e; + } + } + + /** + * Operation testBodyWithQueryParamsAsync + * + * + * + * @param \Swagger\Client\Model\User $body (required) + * @param string $query (required) + * + * @throws \InvalidArgumentException + * @return \GuzzleHttp\Promise\PromiseInterface + */ + public function testBodyWithQueryParamsAsync($body, $query) + { + return $this->testBodyWithQueryParamsAsyncWithHttpInfo($body, $query) + ->then( + function ($response) { + return $response[0]; + } + ); + } + + /** + * Operation testBodyWithQueryParamsAsyncWithHttpInfo + * + * + * + * @param \Swagger\Client\Model\User $body (required) + * @param string $query (required) + * + * @throws \InvalidArgumentException + * @return \GuzzleHttp\Promise\PromiseInterface + */ + public function testBodyWithQueryParamsAsyncWithHttpInfo($body, $query) + { + $returnType = ''; + $request = $this->testBodyWithQueryParamsRequest($body, $query); + + return $this->client + ->sendAsync($request, $this->createHttpClientOption()) + ->then( + function ($response) use ($returnType) { + return [null, $response->getStatusCode(), $response->getHeaders()]; + }, + function ($exception) { + $response = $exception->getResponse(); + $statusCode = $response->getStatusCode(); + throw new ApiException( + sprintf( + '[%d] Error connecting to the API (%s)', + $statusCode, + $exception->getRequest()->getUri() + ), + $statusCode, + $response->getHeaders(), + $response->getBody() + ); + } + ); + } + + /** + * Create request for operation 'testBodyWithQueryParams' + * + * @param \Swagger\Client\Model\User $body (required) + * @param string $query (required) + * + * @throws \InvalidArgumentException + * @return \GuzzleHttp\Psr7\Request + */ + protected function testBodyWithQueryParamsRequest($body, $query) + { + // verify the required parameter 'body' is set + if ($body === null || (is_array($body) && count($body) === 0)) { + throw new \InvalidArgumentException( + 'Missing the required parameter $body when calling testBodyWithQueryParams' + ); + } + // verify the required parameter 'query' is set + if ($query === null || (is_array($query) && count($query) === 0)) { + throw new \InvalidArgumentException( + 'Missing the required parameter $query when calling testBodyWithQueryParams' + ); + } + + $resourcePath = '/fake/body-with-query-params'; + $formParams = []; + $queryParams = []; + $headerParams = []; + $httpBody = ''; + $multipart = false; + + // query params + if ($query !== null) { + $queryParams['query'] = ObjectSerializer::toQueryValue($query); + } + + + // body params + $_tempBody = null; + if (isset($body)) { + $_tempBody = $body; + } + + if ($multipart) { + $headers = $this->headerSelector->selectHeadersForMultipart( + [] + ); + } else { + $headers = $this->headerSelector->selectHeaders( + [], + ['application/json'] + ); + } + + // for model (json/xml) + if (isset($_tempBody)) { + // $_tempBody is the method argument, if present + $httpBody = $_tempBody; + // \stdClass has no __toString(), so we should encode it manually + if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') { + $httpBody = \GuzzleHttp\json_encode($httpBody); + } + } elseif (count($formParams) > 0) { + if ($multipart) { + $multipartContents = []; + foreach ($formParams as $formParamName => $formParamValue) { + $multipartContents[] = [ + 'name' => $formParamName, + 'contents' => $formParamValue + ]; + } + // for HTTP post (form) + $httpBody = new MultipartStream($multipartContents); + + } elseif ($headers['Content-Type'] === 'application/json') { + $httpBody = \GuzzleHttp\json_encode($formParams); + + } else { + // for HTTP post (form) + $httpBody = \GuzzleHttp\Psr7\build_query($formParams); + } + } + + + $defaultHeaders = []; + if ($this->config->getUserAgent()) { + $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); + } + + $headers = array_merge( + $defaultHeaders, + $headerParams, + $headers + ); + + $query = \GuzzleHttp\Psr7\build_query($queryParams); + return new Request( + 'PUT', + $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), + $headers, + $httpBody + ); + } + /** * Operation testClientModel * diff --git a/samples/client/petstore/php/SwaggerClient-php/lib/HeaderSelector.php b/samples/client/petstore/php/SwaggerClient-php/lib/HeaderSelector.php index a0e99dda06a4..a47a1c8157be 100644 --- a/samples/client/petstore/php/SwaggerClient-php/lib/HeaderSelector.php +++ b/samples/client/petstore/php/SwaggerClient-php/lib/HeaderSelector.php @@ -107,4 +107,3 @@ private function selectContentTypeHeader($contentType) } } } - diff --git a/samples/client/petstore/php/SwaggerClient-php/lib/Model/Animal.php b/samples/client/petstore/php/SwaggerClient-php/lib/Model/Animal.php index 0552169460bd..e4fcf5aef815 100644 --- a/samples/client/petstore/php/SwaggerClient-php/lib/Model/Animal.php +++ b/samples/client/petstore/php/SwaggerClient-php/lib/Model/Animal.php @@ -186,7 +186,7 @@ public function __construct(array $data = null) $this->container['color'] = isset($data['color']) ? $data['color'] : 'red'; // Initialize discriminator property with the model name. - $discriminator = array_search('className', self::$attributeMap); + $discriminator = array_search('className', self::$attributeMap, true); $this->container[$discriminator] = static::$swaggerModelName; } diff --git a/samples/client/petstore/php/SwaggerClient-php/lib/ObjectSerializer.php b/samples/client/petstore/php/SwaggerClient-php/lib/ObjectSerializer.php index 6a4225ff5d5a..ecea2fbd58ca 100644 --- a/samples/client/petstore/php/SwaggerClient-php/lib/ObjectSerializer.php +++ b/samples/client/petstore/php/SwaggerClient-php/lib/ObjectSerializer.php @@ -68,7 +68,7 @@ public static function sanitizeForSerialization($data, $type = null, $format = n if ($value !== null && !in_array($swaggerType, ['DateTime', 'bool', 'boolean', 'byte', 'double', 'float', 'int', 'integer', 'mixed', 'number', 'object', 'string', 'void'], true) && method_exists($swaggerType, 'getAllowableEnumValues') - && !in_array($value, $swaggerType::getAllowableEnumValues())) { + && !in_array($value, $swaggerType::getAllowableEnumValues(), true)) { $imploded = implode("', '", $swaggerType::getAllowableEnumValues()); throw new \InvalidArgumentException("Invalid value for enum '$swaggerType', must be one of: '$imploded'"); } @@ -284,7 +284,7 @@ public static function deserialize($data, $class, $httpHeaders = null) return new \SplFileObject($filename, 'r'); } elseif (method_exists($class, 'getAllowableEnumValues')) { - if (!in_array($data, $class::getAllowableEnumValues())) { + if (!in_array($data, $class::getAllowableEnumValues(), true)) { $imploded = implode("', '", $class::getAllowableEnumValues()); throw new \InvalidArgumentException("Invalid value for enum '$class', must be one of: '$imploded'"); } diff --git a/samples/client/petstore/php/SwaggerClient-php/test/Api/DefaultApiTest.php b/samples/client/petstore/php/SwaggerClient-php/test/Api/DefaultApiTest.php deleted file mode 100644 index f5d11998adff..000000000000 --- a/samples/client/petstore/php/SwaggerClient-php/test/Api/DefaultApiTest.php +++ /dev/null @@ -1,83 +0,0 @@ ->> thread = api.test_special_tags(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_special_tags(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Client body: client model (required) :return: Client If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_special_tags_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.test_special_tags_with_http_info(body, **kwargs) # noqa: E501 @@ -60,11 +60,11 @@ def test_special_tags_with_http_info(self, body, **kwargs): # noqa: E501 To test special tags # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_special_tags_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_special_tags_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Client body: client model (required) :return: Client If the method is called asynchronously, @@ -72,7 +72,7 @@ def test_special_tags_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -126,7 +126,7 @@ def test_special_tags_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type='Client', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), diff --git a/samples/client/petstore/python-asyncio/petstore_api/api/fake_api.py b/samples/client/petstore/python-asyncio/petstore_api/api/fake_api.py index e62868348862..e344a5030961 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/api/fake_api.py +++ b/samples/client/petstore/python-asyncio/petstore_api/api/fake_api.py @@ -38,18 +38,18 @@ def fake_outer_boolean_serialize(self, **kwargs): # noqa: E501 Test serialization of outer boolean types # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_boolean_serialize(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_boolean_serialize(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterBoolean body: Input boolean as post body :return: OuterBoolean If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.fake_outer_boolean_serialize_with_http_info(**kwargs) # noqa: E501 else: (data) = self.fake_outer_boolean_serialize_with_http_info(**kwargs) # noqa: E501 @@ -60,11 +60,11 @@ def fake_outer_boolean_serialize_with_http_info(self, **kwargs): # noqa: E501 Test serialization of outer boolean types # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_boolean_serialize_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_boolean_serialize_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterBoolean body: Input boolean as post body :return: OuterBoolean If the method is called asynchronously, @@ -72,7 +72,7 @@ def fake_outer_boolean_serialize_with_http_info(self, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -114,7 +114,7 @@ def fake_outer_boolean_serialize_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type='OuterBoolean', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -125,18 +125,18 @@ def fake_outer_composite_serialize(self, **kwargs): # noqa: E501 Test serialization of object with outer number type # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_composite_serialize(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_composite_serialize(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterComposite body: Input composite as post body :return: OuterComposite If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.fake_outer_composite_serialize_with_http_info(**kwargs) # noqa: E501 else: (data) = self.fake_outer_composite_serialize_with_http_info(**kwargs) # noqa: E501 @@ -147,11 +147,11 @@ def fake_outer_composite_serialize_with_http_info(self, **kwargs): # noqa: E501 Test serialization of object with outer number type # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_composite_serialize_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_composite_serialize_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterComposite body: Input composite as post body :return: OuterComposite If the method is called asynchronously, @@ -159,7 +159,7 @@ def fake_outer_composite_serialize_with_http_info(self, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -201,7 +201,7 @@ def fake_outer_composite_serialize_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type='OuterComposite', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -212,18 +212,18 @@ def fake_outer_number_serialize(self, **kwargs): # noqa: E501 Test serialization of outer number types # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_number_serialize(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_number_serialize(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterNumber body: Input number as post body :return: OuterNumber If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.fake_outer_number_serialize_with_http_info(**kwargs) # noqa: E501 else: (data) = self.fake_outer_number_serialize_with_http_info(**kwargs) # noqa: E501 @@ -234,11 +234,11 @@ def fake_outer_number_serialize_with_http_info(self, **kwargs): # noqa: E501 Test serialization of outer number types # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_number_serialize_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_number_serialize_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterNumber body: Input number as post body :return: OuterNumber If the method is called asynchronously, @@ -246,7 +246,7 @@ def fake_outer_number_serialize_with_http_info(self, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -288,7 +288,7 @@ def fake_outer_number_serialize_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type='OuterNumber', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -299,18 +299,18 @@ def fake_outer_string_serialize(self, **kwargs): # noqa: E501 Test serialization of outer string types # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_string_serialize(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_string_serialize(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterString body: Input string as post body :return: OuterString If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.fake_outer_string_serialize_with_http_info(**kwargs) # noqa: E501 else: (data) = self.fake_outer_string_serialize_with_http_info(**kwargs) # noqa: E501 @@ -321,11 +321,11 @@ def fake_outer_string_serialize_with_http_info(self, **kwargs): # noqa: E501 Test serialization of outer string types # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_string_serialize_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_string_serialize_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterString body: Input string as post body :return: OuterString If the method is called asynchronously, @@ -333,7 +333,7 @@ def fake_outer_string_serialize_with_http_info(self, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -375,7 +375,108 @@ def fake_outer_string_serialize_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type='OuterString', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def test_body_with_query_params(self, body, query, **kwargs): # noqa: E501 + """test_body_with_query_params # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_body_with_query_params(body, query, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param User body: (required) + :param str query: (required) + :return: None + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.test_body_with_query_params_with_http_info(body, query, **kwargs) # noqa: E501 + else: + (data) = self.test_body_with_query_params_with_http_info(body, query, **kwargs) # noqa: E501 + return data + + def test_body_with_query_params_with_http_info(self, body, query, **kwargs): # noqa: E501 + """test_body_with_query_params # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_body_with_query_params_with_http_info(body, query, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param User body: (required) + :param str query: (required) + :return: None + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['body', 'query'] # noqa: E501 + all_params.append('async_req') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method test_body_with_query_params" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'body' is set + if ('body' not in params or + params['body'] is None): + raise ValueError("Missing the required parameter `body` when calling `test_body_with_query_params`") # noqa: E501 + # verify the required parameter 'query' is set + if ('query' not in params or + params['query'] is None): + raise ValueError("Missing the required parameter `query` when calling `test_body_with_query_params`") # noqa: E501 + + collection_formats = {} + + path_params = {} + + query_params = [] + if 'query' in params: + query_params.append(('query', params['query'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + if 'body' in params: + body_params = params['body'] + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/fake/body-with-query-params', 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type=None, # noqa: E501 + auth_settings=auth_settings, + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -483,37 +584,37 @@ def test_body_with_query_params_with_http_info(self, body, query, **kwargs): # collection_formats=collection_formats) def test_client_model(self, body, **kwargs): # noqa: E501 - """To test \"client\" model # noqa: E501 + """To test \"client\" model # noqa: E501 To test \"client\" model # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_client_model(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_client_model(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Client body: client model (required) :return: Client If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_client_model_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.test_client_model_with_http_info(body, **kwargs) # noqa: E501 return data def test_client_model_with_http_info(self, body, **kwargs): # noqa: E501 - """To test \"client\" model # noqa: E501 + """To test \"client\" model # noqa: E501 To test \"client\" model # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_client_model_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_client_model_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Client body: client model (required) :return: Client If the method is called asynchronously, @@ -521,7 +622,7 @@ def test_client_model_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -575,7 +676,7 @@ def test_client_model_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type='Client', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -586,11 +687,11 @@ def test_endpoint_parameters(self, number, double, pattern_without_delimiter, by Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_endpoint_parameters(number, double, pattern_without_delimiter, byte, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_endpoint_parameters(number, double, pattern_without_delimiter, byte, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param float number: None (required) :param float double: None (required) :param str pattern_without_delimiter: None (required) @@ -610,7 +711,7 @@ def test_endpoint_parameters(self, number, double, pattern_without_delimiter, by returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_endpoint_parameters_with_http_info(number, double, pattern_without_delimiter, byte, **kwargs) # noqa: E501 else: (data) = self.test_endpoint_parameters_with_http_info(number, double, pattern_without_delimiter, byte, **kwargs) # noqa: E501 @@ -621,11 +722,11 @@ def test_endpoint_parameters_with_http_info(self, number, double, pattern_withou Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_endpoint_parameters_with_http_info(number, double, pattern_without_delimiter, byte, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_endpoint_parameters_with_http_info(number, double, pattern_without_delimiter, byte, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param float number: None (required) :param float double: None (required) :param str pattern_without_delimiter: None (required) @@ -646,7 +747,7 @@ def test_endpoint_parameters_with_http_info(self, number, double, pattern_withou """ all_params = ['number', 'double', 'pattern_without_delimiter', 'byte', 'integer', 'int32', 'int64', '_float', 'string', 'binary', '_date', 'date_time', 'password', 'param_callback'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -685,7 +786,7 @@ def test_endpoint_parameters_with_http_info(self, number, double, pattern_withou raise ValueError("Invalid value for parameter `double` when calling `test_endpoint_parameters`, must be a value less than or equal to `123.4`") # noqa: E501 if 'double' in params and params['double'] < 67.8: # noqa: E501 raise ValueError("Invalid value for parameter `double` when calling `test_endpoint_parameters`, must be a value greater than or equal to `67.8`") # noqa: E501 - if 'pattern_without_delimiter' in params and not re.search('^[A-Z].*', params['pattern_without_delimiter']): # noqa: E501 + if 'pattern_without_delimiter' in params and not re.search(r'^[A-Z].*', params['pattern_without_delimiter']): # noqa: E501 raise ValueError("Invalid value for parameter `pattern_without_delimiter` when calling `test_endpoint_parameters`, must conform to the pattern `/^[A-Z].*/`") # noqa: E501 if 'integer' in params and params['integer'] > 100: # noqa: E501 raise ValueError("Invalid value for parameter `integer` when calling `test_endpoint_parameters`, must be a value less than or equal to `100`") # noqa: E501 @@ -697,7 +798,7 @@ def test_endpoint_parameters_with_http_info(self, number, double, pattern_withou raise ValueError("Invalid value for parameter `int32` when calling `test_endpoint_parameters`, must be a value greater than or equal to `20`") # noqa: E501 if '_float' in params and params['_float'] > 987.6: # noqa: E501 raise ValueError("Invalid value for parameter `_float` when calling `test_endpoint_parameters`, must be a value less than or equal to `987.6`") # noqa: E501 - if 'string' in params and not re.search('[a-z]', params['string'], flags=re.IGNORECASE): # noqa: E501 + if 'string' in params and not re.search(r'[a-z]', params['string'], flags=re.IGNORECASE): # noqa: E501 raise ValueError("Invalid value for parameter `string` when calling `test_endpoint_parameters`, must conform to the pattern `/[a-z]/i`") # noqa: E501 if ('password' in params and len(params['password']) > 64): @@ -766,7 +867,7 @@ def test_endpoint_parameters_with_http_info(self, number, double, pattern_withou files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -777,11 +878,11 @@ def test_enum_parameters(self, **kwargs): # noqa: E501 To test enum parameters # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_enum_parameters(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_enum_parameters(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[str] enum_form_string_array: Form parameter enum test (string array) :param str enum_form_string: Form parameter enum test (string) :param list[str] enum_header_string_array: Header parameter enum test (string array) @@ -795,7 +896,7 @@ def test_enum_parameters(self, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_enum_parameters_with_http_info(**kwargs) # noqa: E501 else: (data) = self.test_enum_parameters_with_http_info(**kwargs) # noqa: E501 @@ -806,11 +907,11 @@ def test_enum_parameters_with_http_info(self, **kwargs): # noqa: E501 To test enum parameters # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_enum_parameters_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_enum_parameters_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[str] enum_form_string_array: Form parameter enum test (string array) :param str enum_form_string: Form parameter enum test (string) :param list[str] enum_header_string_array: Header parameter enum test (string array) @@ -825,7 +926,7 @@ def test_enum_parameters_with_http_info(self, **kwargs): # noqa: E501 """ all_params = ['enum_form_string_array', 'enum_form_string', 'enum_header_string_array', 'enum_header_string', 'enum_query_string_array', 'enum_query_string', 'enum_query_integer', 'enum_query_double'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -892,7 +993,7 @@ def test_enum_parameters_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -903,18 +1004,18 @@ def test_inline_additional_properties(self, param, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_inline_additional_properties(param, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_inline_additional_properties(param, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param object param: request body (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_inline_additional_properties_with_http_info(param, **kwargs) # noqa: E501 else: (data) = self.test_inline_additional_properties_with_http_info(param, **kwargs) # noqa: E501 @@ -925,11 +1026,11 @@ def test_inline_additional_properties_with_http_info(self, param, **kwargs): # # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_inline_additional_properties_with_http_info(param, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_inline_additional_properties_with_http_info(param, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param object param: request body (required) :return: None If the method is called asynchronously, @@ -937,7 +1038,7 @@ def test_inline_additional_properties_with_http_info(self, param, **kwargs): # """ all_params = ['param'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -987,7 +1088,7 @@ def test_inline_additional_properties_with_http_info(self, param, **kwargs): # files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -998,11 +1099,11 @@ def test_json_form_data(self, param, param2, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_json_form_data(param, param2, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_json_form_data(param, param2, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str param: field1 (required) :param str param2: field2 (required) :return: None @@ -1010,7 +1111,7 @@ def test_json_form_data(self, param, param2, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_json_form_data_with_http_info(param, param2, **kwargs) # noqa: E501 else: (data) = self.test_json_form_data_with_http_info(param, param2, **kwargs) # noqa: E501 @@ -1021,11 +1122,11 @@ def test_json_form_data_with_http_info(self, param, param2, **kwargs): # noqa: # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_json_form_data_with_http_info(param, param2, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_json_form_data_with_http_info(param, param2, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str param: field1 (required) :param str param2: field2 (required) :return: None @@ -1034,7 +1135,7 @@ def test_json_form_data_with_http_info(self, param, param2, **kwargs): # noqa: """ all_params = ['param', 'param2'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -1090,7 +1191,7 @@ def test_json_form_data_with_http_info(self, param, param2, **kwargs): # noqa: files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), diff --git a/samples/client/petstore/python-asyncio/petstore_api/api/fake_classname_tags_123_api.py b/samples/client/petstore/python-asyncio/petstore_api/api/fake_classname_tags_123_api.py index 230aa5ec4fca..8aa93d8dc324 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/api/fake_classname_tags_123_api.py +++ b/samples/client/petstore/python-asyncio/petstore_api/api/fake_classname_tags_123_api.py @@ -38,18 +38,18 @@ def test_classname(self, body, **kwargs): # noqa: E501 To test class name in snake case # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_classname(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_classname(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Client body: client model (required) :return: Client If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_classname_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.test_classname_with_http_info(body, **kwargs) # noqa: E501 @@ -60,11 +60,11 @@ def test_classname_with_http_info(self, body, **kwargs): # noqa: E501 To test class name in snake case # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_classname_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_classname_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Client body: client model (required) :return: Client If the method is called asynchronously, @@ -72,7 +72,7 @@ def test_classname_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -126,7 +126,7 @@ def test_classname_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type='Client', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), diff --git a/samples/client/petstore/python-asyncio/petstore_api/api/pet_api.py b/samples/client/petstore/python-asyncio/petstore_api/api/pet_api.py index ff1026f3fae1..bf71e96eab69 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/api/pet_api.py +++ b/samples/client/petstore/python-asyncio/petstore_api/api/pet_api.py @@ -38,18 +38,18 @@ def add_pet(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.add_pet(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.add_pet(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Pet body: Pet object that needs to be added to the store (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.add_pet_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.add_pet_with_http_info(body, **kwargs) # noqa: E501 @@ -60,11 +60,11 @@ def add_pet_with_http_info(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.add_pet_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.add_pet_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Pet body: Pet object that needs to be added to the store (required) :return: None If the method is called asynchronously, @@ -72,7 +72,7 @@ def add_pet_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -126,7 +126,7 @@ def add_pet_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -137,11 +137,11 @@ def delete_pet(self, pet_id, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.delete_pet(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.delete_pet(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: Pet id to delete (required) :param str api_key: :return: None @@ -149,7 +149,7 @@ def delete_pet(self, pet_id, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.delete_pet_with_http_info(pet_id, **kwargs) # noqa: E501 else: (data) = self.delete_pet_with_http_info(pet_id, **kwargs) # noqa: E501 @@ -160,11 +160,11 @@ def delete_pet_with_http_info(self, pet_id, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.delete_pet_with_http_info(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.delete_pet_with_http_info(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: Pet id to delete (required) :param str api_key: :return: None @@ -173,7 +173,7 @@ def delete_pet_with_http_info(self, pet_id, **kwargs): # noqa: E501 """ all_params = ['pet_id', 'api_key'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -225,7 +225,7 @@ def delete_pet_with_http_info(self, pet_id, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -236,18 +236,18 @@ def find_pets_by_status(self, status, **kwargs): # noqa: E501 Multiple status values can be provided with comma separated strings # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.find_pets_by_status(status, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.find_pets_by_status(status, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[str] status: Status values that need to be considered for filter (required) :return: list[Pet] If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.find_pets_by_status_with_http_info(status, **kwargs) # noqa: E501 else: (data) = self.find_pets_by_status_with_http_info(status, **kwargs) # noqa: E501 @@ -258,11 +258,11 @@ def find_pets_by_status_with_http_info(self, status, **kwargs): # noqa: E501 Multiple status values can be provided with comma separated strings # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.find_pets_by_status_with_http_info(status, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.find_pets_by_status_with_http_info(status, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[str] status: Status values that need to be considered for filter (required) :return: list[Pet] If the method is called asynchronously, @@ -270,7 +270,7 @@ def find_pets_by_status_with_http_info(self, status, **kwargs): # noqa: E501 """ all_params = ['status'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -321,7 +321,7 @@ def find_pets_by_status_with_http_info(self, status, **kwargs): # noqa: E501 files=local_var_files, response_type='list[Pet]', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -332,18 +332,18 @@ def find_pets_by_tags(self, tags, **kwargs): # noqa: E501 Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.find_pets_by_tags(tags, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.find_pets_by_tags(tags, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[str] tags: Tags to filter by (required) :return: list[Pet] If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.find_pets_by_tags_with_http_info(tags, **kwargs) # noqa: E501 else: (data) = self.find_pets_by_tags_with_http_info(tags, **kwargs) # noqa: E501 @@ -354,11 +354,11 @@ def find_pets_by_tags_with_http_info(self, tags, **kwargs): # noqa: E501 Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.find_pets_by_tags_with_http_info(tags, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.find_pets_by_tags_with_http_info(tags, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[str] tags: Tags to filter by (required) :return: list[Pet] If the method is called asynchronously, @@ -366,7 +366,7 @@ def find_pets_by_tags_with_http_info(self, tags, **kwargs): # noqa: E501 """ all_params = ['tags'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -417,7 +417,7 @@ def find_pets_by_tags_with_http_info(self, tags, **kwargs): # noqa: E501 files=local_var_files, response_type='list[Pet]', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -428,18 +428,18 @@ def get_pet_by_id(self, pet_id, **kwargs): # noqa: E501 Returns a single pet # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_pet_by_id(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_pet_by_id(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: ID of pet to return (required) :return: Pet If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.get_pet_by_id_with_http_info(pet_id, **kwargs) # noqa: E501 else: (data) = self.get_pet_by_id_with_http_info(pet_id, **kwargs) # noqa: E501 @@ -450,11 +450,11 @@ def get_pet_by_id_with_http_info(self, pet_id, **kwargs): # noqa: E501 Returns a single pet # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_pet_by_id_with_http_info(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_pet_by_id_with_http_info(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: ID of pet to return (required) :return: Pet If the method is called asynchronously, @@ -462,7 +462,7 @@ def get_pet_by_id_with_http_info(self, pet_id, **kwargs): # noqa: E501 """ all_params = ['pet_id'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -512,7 +512,7 @@ def get_pet_by_id_with_http_info(self, pet_id, **kwargs): # noqa: E501 files=local_var_files, response_type='Pet', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -523,18 +523,18 @@ def update_pet(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.update_pet(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_pet(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Pet body: Pet object that needs to be added to the store (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.update_pet_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.update_pet_with_http_info(body, **kwargs) # noqa: E501 @@ -545,11 +545,11 @@ def update_pet_with_http_info(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.update_pet_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_pet_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Pet body: Pet object that needs to be added to the store (required) :return: None If the method is called asynchronously, @@ -557,7 +557,7 @@ def update_pet_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -611,7 +611,7 @@ def update_pet_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -622,11 +622,11 @@ def update_pet_with_form(self, pet_id, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.update_pet_with_form(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_pet_with_form(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: ID of pet that needs to be updated (required) :param str name: Updated name of the pet :param str status: Updated status of the pet @@ -635,7 +635,7 @@ def update_pet_with_form(self, pet_id, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.update_pet_with_form_with_http_info(pet_id, **kwargs) # noqa: E501 else: (data) = self.update_pet_with_form_with_http_info(pet_id, **kwargs) # noqa: E501 @@ -646,11 +646,11 @@ def update_pet_with_form_with_http_info(self, pet_id, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.update_pet_with_form_with_http_info(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_pet_with_form_with_http_info(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: ID of pet that needs to be updated (required) :param str name: Updated name of the pet :param str status: Updated status of the pet @@ -660,7 +660,7 @@ def update_pet_with_form_with_http_info(self, pet_id, **kwargs): # noqa: E501 """ all_params = ['pet_id', 'name', 'status'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -718,7 +718,7 @@ def update_pet_with_form_with_http_info(self, pet_id, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -729,11 +729,11 @@ def upload_file(self, pet_id, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.upload_file(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.upload_file(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: ID of pet to update (required) :param str additional_metadata: Additional data to pass to server :param file file: file to upload @@ -742,7 +742,7 @@ def upload_file(self, pet_id, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.upload_file_with_http_info(pet_id, **kwargs) # noqa: E501 else: (data) = self.upload_file_with_http_info(pet_id, **kwargs) # noqa: E501 @@ -753,11 +753,11 @@ def upload_file_with_http_info(self, pet_id, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.upload_file_with_http_info(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.upload_file_with_http_info(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: ID of pet to update (required) :param str additional_metadata: Additional data to pass to server :param file file: file to upload @@ -767,7 +767,7 @@ def upload_file_with_http_info(self, pet_id, **kwargs): # noqa: E501 """ all_params = ['pet_id', 'additional_metadata', 'file'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -825,7 +825,7 @@ def upload_file_with_http_info(self, pet_id, **kwargs): # noqa: E501 files=local_var_files, response_type='ApiResponse', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), diff --git a/samples/client/petstore/python-asyncio/petstore_api/api/store_api.py b/samples/client/petstore/python-asyncio/petstore_api/api/store_api.py index ebb9a4eb27a4..27e1f7701922 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/api/store_api.py +++ b/samples/client/petstore/python-asyncio/petstore_api/api/store_api.py @@ -38,18 +38,18 @@ def delete_order(self, order_id, **kwargs): # noqa: E501 For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.delete_order(order_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.delete_order(order_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str order_id: ID of the order that needs to be deleted (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.delete_order_with_http_info(order_id, **kwargs) # noqa: E501 else: (data) = self.delete_order_with_http_info(order_id, **kwargs) # noqa: E501 @@ -60,11 +60,11 @@ def delete_order_with_http_info(self, order_id, **kwargs): # noqa: E501 For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.delete_order_with_http_info(order_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.delete_order_with_http_info(order_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str order_id: ID of the order that needs to be deleted (required) :return: None If the method is called asynchronously, @@ -72,7 +72,7 @@ def delete_order_with_http_info(self, order_id, **kwargs): # noqa: E501 """ all_params = ['order_id'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -122,7 +122,7 @@ def delete_order_with_http_info(self, order_id, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -133,17 +133,17 @@ def get_inventory(self, **kwargs): # noqa: E501 Returns a map of status codes to quantities # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_inventory(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_inventory(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :return: dict(str, int) If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.get_inventory_with_http_info(**kwargs) # noqa: E501 else: (data) = self.get_inventory_with_http_info(**kwargs) # noqa: E501 @@ -154,18 +154,18 @@ def get_inventory_with_http_info(self, **kwargs): # noqa: E501 Returns a map of status codes to quantities # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_inventory_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_inventory_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :return: dict(str, int) If the method is called asynchronously, returns the request thread. """ all_params = [] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -209,7 +209,7 @@ def get_inventory_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type='dict(str, int)', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -220,18 +220,18 @@ def get_order_by_id(self, order_id, **kwargs): # noqa: E501 For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_order_by_id(order_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_order_by_id(order_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int order_id: ID of pet that needs to be fetched (required) :return: Order If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.get_order_by_id_with_http_info(order_id, **kwargs) # noqa: E501 else: (data) = self.get_order_by_id_with_http_info(order_id, **kwargs) # noqa: E501 @@ -242,11 +242,11 @@ def get_order_by_id_with_http_info(self, order_id, **kwargs): # noqa: E501 For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_order_by_id_with_http_info(order_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_order_by_id_with_http_info(order_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int order_id: ID of pet that needs to be fetched (required) :return: Order If the method is called asynchronously, @@ -254,7 +254,7 @@ def get_order_by_id_with_http_info(self, order_id, **kwargs): # noqa: E501 """ all_params = ['order_id'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -308,7 +308,7 @@ def get_order_by_id_with_http_info(self, order_id, **kwargs): # noqa: E501 files=local_var_files, response_type='Order', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -319,18 +319,18 @@ def place_order(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.place_order(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.place_order(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Order body: order placed for purchasing the pet (required) :return: Order If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.place_order_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.place_order_with_http_info(body, **kwargs) # noqa: E501 @@ -341,11 +341,11 @@ def place_order_with_http_info(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.place_order_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.place_order_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Order body: order placed for purchasing the pet (required) :return: Order If the method is called asynchronously, @@ -353,7 +353,7 @@ def place_order_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -403,7 +403,7 @@ def place_order_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type='Order', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), diff --git a/samples/client/petstore/python-asyncio/petstore_api/api/user_api.py b/samples/client/petstore/python-asyncio/petstore_api/api/user_api.py index 1de89f28bb0e..62a87f2e4189 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/api/user_api.py +++ b/samples/client/petstore/python-asyncio/petstore_api/api/user_api.py @@ -38,18 +38,18 @@ def create_user(self, body, **kwargs): # noqa: E501 This can only be done by the logged in user. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.create_user(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.create_user(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param User body: Created user object (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.create_user_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.create_user_with_http_info(body, **kwargs) # noqa: E501 @@ -60,11 +60,11 @@ def create_user_with_http_info(self, body, **kwargs): # noqa: E501 This can only be done by the logged in user. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.create_user_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.create_user_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param User body: Created user object (required) :return: None If the method is called asynchronously, @@ -72,7 +72,7 @@ def create_user_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -122,7 +122,7 @@ def create_user_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -133,18 +133,18 @@ def create_users_with_array_input(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.create_users_with_array_input(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.create_users_with_array_input(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[User] body: List of user object (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.create_users_with_array_input_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.create_users_with_array_input_with_http_info(body, **kwargs) # noqa: E501 @@ -155,11 +155,11 @@ def create_users_with_array_input_with_http_info(self, body, **kwargs): # noqa: # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.create_users_with_array_input_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.create_users_with_array_input_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[User] body: List of user object (required) :return: None If the method is called asynchronously, @@ -167,7 +167,7 @@ def create_users_with_array_input_with_http_info(self, body, **kwargs): # noqa: """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -217,7 +217,7 @@ def create_users_with_array_input_with_http_info(self, body, **kwargs): # noqa: files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -228,18 +228,18 @@ def create_users_with_list_input(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.create_users_with_list_input(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.create_users_with_list_input(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[User] body: List of user object (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.create_users_with_list_input_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.create_users_with_list_input_with_http_info(body, **kwargs) # noqa: E501 @@ -250,11 +250,11 @@ def create_users_with_list_input_with_http_info(self, body, **kwargs): # noqa: # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.create_users_with_list_input_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.create_users_with_list_input_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[User] body: List of user object (required) :return: None If the method is called asynchronously, @@ -262,7 +262,7 @@ def create_users_with_list_input_with_http_info(self, body, **kwargs): # noqa: """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -312,7 +312,7 @@ def create_users_with_list_input_with_http_info(self, body, **kwargs): # noqa: files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -323,18 +323,18 @@ def delete_user(self, username, **kwargs): # noqa: E501 This can only be done by the logged in user. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.delete_user(username, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.delete_user(username, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: The name that needs to be deleted (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.delete_user_with_http_info(username, **kwargs) # noqa: E501 else: (data) = self.delete_user_with_http_info(username, **kwargs) # noqa: E501 @@ -345,11 +345,11 @@ def delete_user_with_http_info(self, username, **kwargs): # noqa: E501 This can only be done by the logged in user. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.delete_user_with_http_info(username, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.delete_user_with_http_info(username, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: The name that needs to be deleted (required) :return: None If the method is called asynchronously, @@ -357,7 +357,7 @@ def delete_user_with_http_info(self, username, **kwargs): # noqa: E501 """ all_params = ['username'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -407,7 +407,7 @@ def delete_user_with_http_info(self, username, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -418,18 +418,18 @@ def get_user_by_name(self, username, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_user_by_name(username, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_user_by_name(username, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: The name that needs to be fetched. Use user1 for testing. (required) :return: User If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.get_user_by_name_with_http_info(username, **kwargs) # noqa: E501 else: (data) = self.get_user_by_name_with_http_info(username, **kwargs) # noqa: E501 @@ -440,11 +440,11 @@ def get_user_by_name_with_http_info(self, username, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_user_by_name_with_http_info(username, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_user_by_name_with_http_info(username, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: The name that needs to be fetched. Use user1 for testing. (required) :return: User If the method is called asynchronously, @@ -452,7 +452,7 @@ def get_user_by_name_with_http_info(self, username, **kwargs): # noqa: E501 """ all_params = ['username'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -502,7 +502,7 @@ def get_user_by_name_with_http_info(self, username, **kwargs): # noqa: E501 files=local_var_files, response_type='User', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -513,11 +513,11 @@ def login_user(self, username, password, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.login_user(username, password, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.login_user(username, password, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: The user name for login (required) :param str password: The password for login in clear text (required) :return: str @@ -525,7 +525,7 @@ def login_user(self, username, password, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.login_user_with_http_info(username, password, **kwargs) # noqa: E501 else: (data) = self.login_user_with_http_info(username, password, **kwargs) # noqa: E501 @@ -536,11 +536,11 @@ def login_user_with_http_info(self, username, password, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.login_user_with_http_info(username, password, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.login_user_with_http_info(username, password, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: The user name for login (required) :param str password: The password for login in clear text (required) :return: str @@ -549,7 +549,7 @@ def login_user_with_http_info(self, username, password, **kwargs): # noqa: E501 """ all_params = ['username', 'password'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -605,7 +605,7 @@ def login_user_with_http_info(self, username, password, **kwargs): # noqa: E501 files=local_var_files, response_type='str', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -616,17 +616,17 @@ def logout_user(self, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.logout_user(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.logout_user(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.logout_user_with_http_info(**kwargs) # noqa: E501 else: (data) = self.logout_user_with_http_info(**kwargs) # noqa: E501 @@ -637,18 +637,18 @@ def logout_user_with_http_info(self, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.logout_user_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.logout_user_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :return: None If the method is called asynchronously, returns the request thread. """ all_params = [] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -692,7 +692,7 @@ def logout_user_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -703,11 +703,11 @@ def update_user(self, username, body, **kwargs): # noqa: E501 This can only be done by the logged in user. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.update_user(username, body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_user(username, body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: name that need to be deleted (required) :param User body: Updated user object (required) :return: None @@ -715,7 +715,7 @@ def update_user(self, username, body, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.update_user_with_http_info(username, body, **kwargs) # noqa: E501 else: (data) = self.update_user_with_http_info(username, body, **kwargs) # noqa: E501 @@ -726,11 +726,11 @@ def update_user_with_http_info(self, username, body, **kwargs): # noqa: E501 This can only be done by the logged in user. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.update_user_with_http_info(username, body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_user_with_http_info(username, body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: name that need to be deleted (required) :param User body: Updated user object (required) :return: None @@ -739,7 +739,7 @@ def update_user_with_http_info(self, username, body, **kwargs): # noqa: E501 """ all_params = ['username', 'body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -795,7 +795,7 @@ def update_user_with_http_info(self, username, body, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), 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 6bd415ded1bf..4bdb4ccaa5da 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/api_client.py +++ b/samples/client/petstore/python-asyncio/petstore_api/api_client.py @@ -260,12 +260,12 @@ def __deserialize(self, data, klass): if type(klass) == str: if klass.startswith('list['): - sub_kls = re.match('list\[(.*)\]', klass).group(1) + sub_kls = re.match(r'list\[(.*)\]', klass).group(1) return [self.__deserialize(sub_data, sub_kls) for sub_data in data] if klass.startswith('dict('): - sub_kls = re.match('dict\(([^,]*), (.*)\)', klass).group(2) + sub_kls = re.match(r'dict\(([^,]*), (.*)\)', klass).group(2) return {k: self.__deserialize(v, sub_kls) for k, v in six.iteritems(data)} @@ -289,12 +289,12 @@ def __deserialize(self, data, klass): def call_api(self, resource_path, method, path_params=None, query_params=None, header_params=None, body=None, post_params=None, files=None, - response_type=None, auth_settings=None, async=None, + response_type=None, auth_settings=None, async_req=None, _return_http_data_only=None, collection_formats=None, _preload_content=True, _request_timeout=None): """Makes the HTTP request (synchronous) and returns deserialized data. - To make an async request, set the async parameter. + To make an async request, set the async_req parameter. :param resource_path: Path to method endpoint. :param method: Method to call. @@ -309,7 +309,7 @@ def call_api(self, resource_path, method, :param response: Response data type. :param files dict: key -> filename, value -> filepath, for `multipart/form-data`. - :param async bool: execute request asynchronously + :param async_req bool: execute request asynchronously :param _return_http_data_only: response data without head status code and headers :param collection_formats: dict of collection formats for path, query, @@ -322,13 +322,13 @@ def call_api(self, resource_path, method, timeout. It can also be a pair (tuple) of (connection, read) timeouts. :return: - If async parameter is True, + If async_req parameter is True, the request will be called asynchronously. The method will return the request thread. - If parameter async is False or missing, + If parameter async_req is False or missing, then the method will return the response directly. """ - if not async: + if not async_req: return self.__call_api(resource_path, method, path_params, query_params, header_params, body, post_params, files, @@ -629,6 +629,12 @@ def __deserialize_model(self, data, klass): instance = klass(**kwargs) + if (isinstance(instance, dict) and + klass.swagger_types is not None and + isinstance(data, dict)): + for key, value in data.items(): + if key not in klass.swagger_types: + instance[key] = value if hasattr(instance, 'get_real_child_model'): klass_name = instance.get_real_child_model(data) if klass_name: diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/additional_properties_class.py b/samples/client/petstore/python-asyncio/petstore_api/models/additional_properties_class.py index 03dbe975f1bc..83de7092668b 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/additional_properties_class.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/additional_properties_class.py @@ -115,6 +115,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(AdditionalPropertiesClass, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/animal.py b/samples/client/petstore/python-asyncio/petstore_api/models/animal.py index 390ac83905eb..5175148b2d38 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/animal.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/animal.py @@ -126,6 +126,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Animal, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/animal_farm.py b/samples/client/petstore/python-asyncio/petstore_api/models/animal_farm.py index 6371257286e3..e7904d7fbf66 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/animal_farm.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/animal_farm.py @@ -63,6 +63,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(AnimalFarm, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/api_response.py b/samples/client/petstore/python-asyncio/petstore_api/models/api_response.py index 45c4831bb100..9da53da373b6 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/api_response.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/api_response.py @@ -141,6 +141,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(ApiResponse, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/array_of_array_of_number_only.py b/samples/client/petstore/python-asyncio/petstore_api/models/array_of_array_of_number_only.py index c6b363f19d88..1e5e8be1ed17 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/array_of_array_of_number_only.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/array_of_array_of_number_only.py @@ -89,6 +89,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(ArrayOfArrayOfNumberOnly, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/array_of_number_only.py b/samples/client/petstore/python-asyncio/petstore_api/models/array_of_number_only.py index 240362696cd0..0628f7af1e7a 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/array_of_number_only.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/array_of_number_only.py @@ -89,6 +89,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(ArrayOfNumberOnly, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/array_test.py b/samples/client/petstore/python-asyncio/petstore_api/models/array_test.py index c5cd6bfe1591..aa2d0d5e6331 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/array_test.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/array_test.py @@ -143,6 +143,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(ArrayTest, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/capitalization.py b/samples/client/petstore/python-asyncio/petstore_api/models/capitalization.py index 309642bdefff..83b0068aee2e 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/capitalization.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/capitalization.py @@ -221,6 +221,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Capitalization, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/cat.py b/samples/client/petstore/python-asyncio/petstore_api/models/cat.py index 526d3e2aaf5f..3660f18706bc 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/cat.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/cat.py @@ -19,7 +19,7 @@ from petstore_api.models.animal import Animal # noqa: F401,E501 -class Cat(object): +class Cat(Animal): """NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually. @@ -91,6 +91,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Cat, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/category.py b/samples/client/petstore/python-asyncio/petstore_api/models/category.py index 02d393af8883..dbc4fd288163 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/category.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/category.py @@ -115,6 +115,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Category, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/class_model.py b/samples/client/petstore/python-asyncio/petstore_api/models/class_model.py index 4bcb19b8dc2c..6042036beb5a 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/class_model.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/class_model.py @@ -89,6 +89,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(ClassModel, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/client.py b/samples/client/petstore/python-asyncio/petstore_api/models/client.py index e267fed6d8ca..337100c3946f 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/client.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/client.py @@ -89,6 +89,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Client, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/dog.py b/samples/client/petstore/python-asyncio/petstore_api/models/dog.py index 34aac6aaad4e..3d80d6442f4d 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/dog.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/dog.py @@ -19,7 +19,7 @@ from petstore_api.models.animal import Animal # noqa: F401,E501 -class Dog(object): +class Dog(Animal): """NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually. @@ -91,6 +91,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Dog, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/enum_arrays.py b/samples/client/petstore/python-asyncio/petstore_api/models/enum_arrays.py index d02be298d2f9..5257b181b88f 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/enum_arrays.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/enum_arrays.py @@ -128,6 +128,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(EnumArrays, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/enum_class.py b/samples/client/petstore/python-asyncio/petstore_api/models/enum_class.py index e4721545e836..2282270dda1d 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/enum_class.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/enum_class.py @@ -68,6 +68,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(EnumClass, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/enum_test.py b/samples/client/petstore/python-asyncio/petstore_api/models/enum_test.py index 565975d725c8..d977ef918bca 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/enum_test.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/enum_test.py @@ -220,6 +220,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(EnumTest, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/format_test.py b/samples/client/petstore/python-asyncio/petstore_api/models/format_test.py index 467b4a2573d0..206b991719d9 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/format_test.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/format_test.py @@ -269,8 +269,8 @@ def string(self, string): :param string: The string of this FormatTest. # noqa: E501 :type: str """ - if string is not None and not re.search('[a-z]', string, flags=re.IGNORECASE): # noqa: E501 - raise ValueError("Invalid value for `string`, must be a follow pattern or equal to `/[a-z]/i`") # noqa: E501 + if string is not None and not re.search(r'[a-z]', string, flags=re.IGNORECASE): # noqa: E501 + raise ValueError(r"Invalid value for `string`, must be a follow pattern or equal to `/[a-z]/i`") # noqa: E501 self._string = string @@ -294,8 +294,8 @@ def byte(self, byte): """ if byte is None: raise ValueError("Invalid value for `byte`, must not be `None`") # noqa: E501 - if byte is not None and not re.search('^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$', byte): # noqa: E501 - raise ValueError("Invalid value for `byte`, must be a follow pattern or equal to `/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/`") # noqa: E501 + if byte is not None and not re.search(r'^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$', byte): # noqa: E501 + raise ValueError(r"Invalid value for `byte`, must be a follow pattern or equal to `/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/`") # noqa: E501 self._byte = byte @@ -433,6 +433,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(FormatTest, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/has_only_read_only.py b/samples/client/petstore/python-asyncio/petstore_api/models/has_only_read_only.py index 3c93eb309969..76e5ceb1e22b 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/has_only_read_only.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/has_only_read_only.py @@ -115,6 +115,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(HasOnlyReadOnly, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/list.py b/samples/client/petstore/python-asyncio/petstore_api/models/list.py index fbe30e6d01e3..46eef1e90f35 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/list.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/list.py @@ -89,6 +89,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(List, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/map_test.py b/samples/client/petstore/python-asyncio/petstore_api/models/map_test.py index 374c0661ba56..f2633c30a99a 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/map_test.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/map_test.py @@ -122,6 +122,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(MapTest, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/mixed_properties_and_additional_properties_class.py b/samples/client/petstore/python-asyncio/petstore_api/models/mixed_properties_and_additional_properties_class.py index dba1f2613527..dfed6cc90bd3 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/mixed_properties_and_additional_properties_class.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/mixed_properties_and_additional_properties_class.py @@ -143,6 +143,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(MixedPropertiesAndAdditionalPropertiesClass, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/model200_response.py b/samples/client/petstore/python-asyncio/petstore_api/models/model200_response.py index 60f9c96a676f..1fcaabca10ec 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/model200_response.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/model200_response.py @@ -115,6 +115,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Model200Response, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/model_return.py b/samples/client/petstore/python-asyncio/petstore_api/models/model_return.py index c9d8b5682aa4..792536114953 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/model_return.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/model_return.py @@ -89,6 +89,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(ModelReturn, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/name.py b/samples/client/petstore/python-asyncio/petstore_api/models/name.py index cbfbddeb1ab7..53be7953ea96 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/name.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/name.py @@ -168,6 +168,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Name, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/number_only.py b/samples/client/petstore/python-asyncio/petstore_api/models/number_only.py index b96321109b97..2f43a834f8bd 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/number_only.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/number_only.py @@ -89,6 +89,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(NumberOnly, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/order.py b/samples/client/petstore/python-asyncio/petstore_api/models/order.py index 6636542e941c..9291652787e1 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/order.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/order.py @@ -227,6 +227,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Order, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/outer_boolean.py b/samples/client/petstore/python-asyncio/petstore_api/models/outer_boolean.py index 9b3aebd36084..3b273333e75a 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/outer_boolean.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/outer_boolean.py @@ -61,6 +61,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(OuterBoolean, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/outer_composite.py b/samples/client/petstore/python-asyncio/petstore_api/models/outer_composite.py index 19775255e4e5..36381acb861a 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/outer_composite.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/outer_composite.py @@ -145,6 +145,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(OuterComposite, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/outer_enum.py b/samples/client/petstore/python-asyncio/petstore_api/models/outer_enum.py index 5ee1e49a587d..bea07410cf27 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/outer_enum.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/outer_enum.py @@ -68,6 +68,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(OuterEnum, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/outer_number.py b/samples/client/petstore/python-asyncio/petstore_api/models/outer_number.py index a35587be65e4..a60e97c8288e 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/outer_number.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/outer_number.py @@ -61,6 +61,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(OuterNumber, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/outer_string.py b/samples/client/petstore/python-asyncio/petstore_api/models/outer_string.py index 736edacd1bca..622589ce2f63 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/outer_string.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/outer_string.py @@ -61,6 +61,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(OuterString, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/pet.py b/samples/client/petstore/python-asyncio/petstore_api/models/pet.py index 81b2bb617f9c..c7c206c7a93d 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/pet.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/pet.py @@ -232,6 +232,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Pet, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/read_only_first.py b/samples/client/petstore/python-asyncio/petstore_api/models/read_only_first.py index 106463077e8e..0a378f93da60 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/read_only_first.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/read_only_first.py @@ -115,6 +115,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(ReadOnlyFirst, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/special_model_name.py b/samples/client/petstore/python-asyncio/petstore_api/models/special_model_name.py index a31b8db66e26..3817430b656f 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/special_model_name.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/special_model_name.py @@ -89,6 +89,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(SpecialModelName, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/tag.py b/samples/client/petstore/python-asyncio/petstore_api/models/tag.py index b486a672b88d..dc3c0b5645f7 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/tag.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/tag.py @@ -115,6 +115,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Tag, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/user.py b/samples/client/petstore/python-asyncio/petstore_api/models/user.py index c9fe0072a9cc..8dcac91845fa 100644 --- a/samples/client/petstore/python-asyncio/petstore_api/models/user.py +++ b/samples/client/petstore/python-asyncio/petstore_api/models/user.py @@ -273,6 +273,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(User, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/README.md b/samples/client/petstore/python-tornado/README.md index f6ac9abcb6a0..cab8b4c968de 100644 --- a/samples/client/petstore/python-tornado/README.md +++ b/samples/client/petstore/python-tornado/README.md @@ -50,8 +50,9 @@ import time import petstore_api from petstore_api.rest import ApiException from pprint import pprint + # create an instance of the API class -api_instance = petstore_api.AnotherFakeApi() +api_instance = petstore_api.AnotherFakeApi(petstore_api.ApiClient(configuration)) body = petstore_api.Client() # Client | client model try: diff --git a/samples/client/petstore/python-tornado/petstore_api/api/another_fake_api.py b/samples/client/petstore/python-tornado/petstore_api/api/another_fake_api.py index 0096dad1a37a..955369935ea0 100644 --- a/samples/client/petstore/python-tornado/petstore_api/api/another_fake_api.py +++ b/samples/client/petstore/python-tornado/petstore_api/api/another_fake_api.py @@ -38,18 +38,18 @@ def test_special_tags(self, body, **kwargs): # noqa: E501 To test special tags # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_special_tags(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_special_tags(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Client body: client model (required) :return: Client If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_special_tags_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.test_special_tags_with_http_info(body, **kwargs) # noqa: E501 @@ -60,11 +60,11 @@ def test_special_tags_with_http_info(self, body, **kwargs): # noqa: E501 To test special tags # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_special_tags_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_special_tags_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Client body: client model (required) :return: Client If the method is called asynchronously, @@ -72,7 +72,7 @@ def test_special_tags_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -126,7 +126,7 @@ def test_special_tags_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type='Client', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), diff --git a/samples/client/petstore/python-tornado/petstore_api/api/fake_api.py b/samples/client/petstore/python-tornado/petstore_api/api/fake_api.py index e62868348862..e344a5030961 100644 --- a/samples/client/petstore/python-tornado/petstore_api/api/fake_api.py +++ b/samples/client/petstore/python-tornado/petstore_api/api/fake_api.py @@ -38,18 +38,18 @@ def fake_outer_boolean_serialize(self, **kwargs): # noqa: E501 Test serialization of outer boolean types # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_boolean_serialize(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_boolean_serialize(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterBoolean body: Input boolean as post body :return: OuterBoolean If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.fake_outer_boolean_serialize_with_http_info(**kwargs) # noqa: E501 else: (data) = self.fake_outer_boolean_serialize_with_http_info(**kwargs) # noqa: E501 @@ -60,11 +60,11 @@ def fake_outer_boolean_serialize_with_http_info(self, **kwargs): # noqa: E501 Test serialization of outer boolean types # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_boolean_serialize_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_boolean_serialize_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterBoolean body: Input boolean as post body :return: OuterBoolean If the method is called asynchronously, @@ -72,7 +72,7 @@ def fake_outer_boolean_serialize_with_http_info(self, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -114,7 +114,7 @@ def fake_outer_boolean_serialize_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type='OuterBoolean', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -125,18 +125,18 @@ def fake_outer_composite_serialize(self, **kwargs): # noqa: E501 Test serialization of object with outer number type # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_composite_serialize(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_composite_serialize(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterComposite body: Input composite as post body :return: OuterComposite If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.fake_outer_composite_serialize_with_http_info(**kwargs) # noqa: E501 else: (data) = self.fake_outer_composite_serialize_with_http_info(**kwargs) # noqa: E501 @@ -147,11 +147,11 @@ def fake_outer_composite_serialize_with_http_info(self, **kwargs): # noqa: E501 Test serialization of object with outer number type # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_composite_serialize_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_composite_serialize_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterComposite body: Input composite as post body :return: OuterComposite If the method is called asynchronously, @@ -159,7 +159,7 @@ def fake_outer_composite_serialize_with_http_info(self, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -201,7 +201,7 @@ def fake_outer_composite_serialize_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type='OuterComposite', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -212,18 +212,18 @@ def fake_outer_number_serialize(self, **kwargs): # noqa: E501 Test serialization of outer number types # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_number_serialize(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_number_serialize(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterNumber body: Input number as post body :return: OuterNumber If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.fake_outer_number_serialize_with_http_info(**kwargs) # noqa: E501 else: (data) = self.fake_outer_number_serialize_with_http_info(**kwargs) # noqa: E501 @@ -234,11 +234,11 @@ def fake_outer_number_serialize_with_http_info(self, **kwargs): # noqa: E501 Test serialization of outer number types # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_number_serialize_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_number_serialize_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterNumber body: Input number as post body :return: OuterNumber If the method is called asynchronously, @@ -246,7 +246,7 @@ def fake_outer_number_serialize_with_http_info(self, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -288,7 +288,7 @@ def fake_outer_number_serialize_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type='OuterNumber', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -299,18 +299,18 @@ def fake_outer_string_serialize(self, **kwargs): # noqa: E501 Test serialization of outer string types # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_string_serialize(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_string_serialize(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterString body: Input string as post body :return: OuterString If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.fake_outer_string_serialize_with_http_info(**kwargs) # noqa: E501 else: (data) = self.fake_outer_string_serialize_with_http_info(**kwargs) # noqa: E501 @@ -321,11 +321,11 @@ def fake_outer_string_serialize_with_http_info(self, **kwargs): # noqa: E501 Test serialization of outer string types # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_string_serialize_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_string_serialize_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterString body: Input string as post body :return: OuterString If the method is called asynchronously, @@ -333,7 +333,7 @@ def fake_outer_string_serialize_with_http_info(self, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -375,7 +375,108 @@ def fake_outer_string_serialize_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type='OuterString', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def test_body_with_query_params(self, body, query, **kwargs): # noqa: E501 + """test_body_with_query_params # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_body_with_query_params(body, query, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param User body: (required) + :param str query: (required) + :return: None + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.test_body_with_query_params_with_http_info(body, query, **kwargs) # noqa: E501 + else: + (data) = self.test_body_with_query_params_with_http_info(body, query, **kwargs) # noqa: E501 + return data + + def test_body_with_query_params_with_http_info(self, body, query, **kwargs): # noqa: E501 + """test_body_with_query_params # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_body_with_query_params_with_http_info(body, query, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param User body: (required) + :param str query: (required) + :return: None + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['body', 'query'] # noqa: E501 + all_params.append('async_req') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method test_body_with_query_params" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'body' is set + if ('body' not in params or + params['body'] is None): + raise ValueError("Missing the required parameter `body` when calling `test_body_with_query_params`") # noqa: E501 + # verify the required parameter 'query' is set + if ('query' not in params or + params['query'] is None): + raise ValueError("Missing the required parameter `query` when calling `test_body_with_query_params`") # noqa: E501 + + collection_formats = {} + + path_params = {} + + query_params = [] + if 'query' in params: + query_params.append(('query', params['query'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + if 'body' in params: + body_params = params['body'] + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/fake/body-with-query-params', 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type=None, # noqa: E501 + auth_settings=auth_settings, + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -483,37 +584,37 @@ def test_body_with_query_params_with_http_info(self, body, query, **kwargs): # collection_formats=collection_formats) def test_client_model(self, body, **kwargs): # noqa: E501 - """To test \"client\" model # noqa: E501 + """To test \"client\" model # noqa: E501 To test \"client\" model # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_client_model(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_client_model(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Client body: client model (required) :return: Client If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_client_model_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.test_client_model_with_http_info(body, **kwargs) # noqa: E501 return data def test_client_model_with_http_info(self, body, **kwargs): # noqa: E501 - """To test \"client\" model # noqa: E501 + """To test \"client\" model # noqa: E501 To test \"client\" model # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_client_model_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_client_model_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Client body: client model (required) :return: Client If the method is called asynchronously, @@ -521,7 +622,7 @@ def test_client_model_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -575,7 +676,7 @@ def test_client_model_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type='Client', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -586,11 +687,11 @@ def test_endpoint_parameters(self, number, double, pattern_without_delimiter, by Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_endpoint_parameters(number, double, pattern_without_delimiter, byte, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_endpoint_parameters(number, double, pattern_without_delimiter, byte, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param float number: None (required) :param float double: None (required) :param str pattern_without_delimiter: None (required) @@ -610,7 +711,7 @@ def test_endpoint_parameters(self, number, double, pattern_without_delimiter, by returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_endpoint_parameters_with_http_info(number, double, pattern_without_delimiter, byte, **kwargs) # noqa: E501 else: (data) = self.test_endpoint_parameters_with_http_info(number, double, pattern_without_delimiter, byte, **kwargs) # noqa: E501 @@ -621,11 +722,11 @@ def test_endpoint_parameters_with_http_info(self, number, double, pattern_withou Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_endpoint_parameters_with_http_info(number, double, pattern_without_delimiter, byte, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_endpoint_parameters_with_http_info(number, double, pattern_without_delimiter, byte, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param float number: None (required) :param float double: None (required) :param str pattern_without_delimiter: None (required) @@ -646,7 +747,7 @@ def test_endpoint_parameters_with_http_info(self, number, double, pattern_withou """ all_params = ['number', 'double', 'pattern_without_delimiter', 'byte', 'integer', 'int32', 'int64', '_float', 'string', 'binary', '_date', 'date_time', 'password', 'param_callback'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -685,7 +786,7 @@ def test_endpoint_parameters_with_http_info(self, number, double, pattern_withou raise ValueError("Invalid value for parameter `double` when calling `test_endpoint_parameters`, must be a value less than or equal to `123.4`") # noqa: E501 if 'double' in params and params['double'] < 67.8: # noqa: E501 raise ValueError("Invalid value for parameter `double` when calling `test_endpoint_parameters`, must be a value greater than or equal to `67.8`") # noqa: E501 - if 'pattern_without_delimiter' in params and not re.search('^[A-Z].*', params['pattern_without_delimiter']): # noqa: E501 + if 'pattern_without_delimiter' in params and not re.search(r'^[A-Z].*', params['pattern_without_delimiter']): # noqa: E501 raise ValueError("Invalid value for parameter `pattern_without_delimiter` when calling `test_endpoint_parameters`, must conform to the pattern `/^[A-Z].*/`") # noqa: E501 if 'integer' in params and params['integer'] > 100: # noqa: E501 raise ValueError("Invalid value for parameter `integer` when calling `test_endpoint_parameters`, must be a value less than or equal to `100`") # noqa: E501 @@ -697,7 +798,7 @@ def test_endpoint_parameters_with_http_info(self, number, double, pattern_withou raise ValueError("Invalid value for parameter `int32` when calling `test_endpoint_parameters`, must be a value greater than or equal to `20`") # noqa: E501 if '_float' in params and params['_float'] > 987.6: # noqa: E501 raise ValueError("Invalid value for parameter `_float` when calling `test_endpoint_parameters`, must be a value less than or equal to `987.6`") # noqa: E501 - if 'string' in params and not re.search('[a-z]', params['string'], flags=re.IGNORECASE): # noqa: E501 + if 'string' in params and not re.search(r'[a-z]', params['string'], flags=re.IGNORECASE): # noqa: E501 raise ValueError("Invalid value for parameter `string` when calling `test_endpoint_parameters`, must conform to the pattern `/[a-z]/i`") # noqa: E501 if ('password' in params and len(params['password']) > 64): @@ -766,7 +867,7 @@ def test_endpoint_parameters_with_http_info(self, number, double, pattern_withou files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -777,11 +878,11 @@ def test_enum_parameters(self, **kwargs): # noqa: E501 To test enum parameters # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_enum_parameters(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_enum_parameters(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[str] enum_form_string_array: Form parameter enum test (string array) :param str enum_form_string: Form parameter enum test (string) :param list[str] enum_header_string_array: Header parameter enum test (string array) @@ -795,7 +896,7 @@ def test_enum_parameters(self, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_enum_parameters_with_http_info(**kwargs) # noqa: E501 else: (data) = self.test_enum_parameters_with_http_info(**kwargs) # noqa: E501 @@ -806,11 +907,11 @@ def test_enum_parameters_with_http_info(self, **kwargs): # noqa: E501 To test enum parameters # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_enum_parameters_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_enum_parameters_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[str] enum_form_string_array: Form parameter enum test (string array) :param str enum_form_string: Form parameter enum test (string) :param list[str] enum_header_string_array: Header parameter enum test (string array) @@ -825,7 +926,7 @@ def test_enum_parameters_with_http_info(self, **kwargs): # noqa: E501 """ all_params = ['enum_form_string_array', 'enum_form_string', 'enum_header_string_array', 'enum_header_string', 'enum_query_string_array', 'enum_query_string', 'enum_query_integer', 'enum_query_double'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -892,7 +993,7 @@ def test_enum_parameters_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -903,18 +1004,18 @@ def test_inline_additional_properties(self, param, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_inline_additional_properties(param, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_inline_additional_properties(param, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param object param: request body (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_inline_additional_properties_with_http_info(param, **kwargs) # noqa: E501 else: (data) = self.test_inline_additional_properties_with_http_info(param, **kwargs) # noqa: E501 @@ -925,11 +1026,11 @@ def test_inline_additional_properties_with_http_info(self, param, **kwargs): # # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_inline_additional_properties_with_http_info(param, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_inline_additional_properties_with_http_info(param, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param object param: request body (required) :return: None If the method is called asynchronously, @@ -937,7 +1038,7 @@ def test_inline_additional_properties_with_http_info(self, param, **kwargs): # """ all_params = ['param'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -987,7 +1088,7 @@ def test_inline_additional_properties_with_http_info(self, param, **kwargs): # files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -998,11 +1099,11 @@ def test_json_form_data(self, param, param2, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_json_form_data(param, param2, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_json_form_data(param, param2, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str param: field1 (required) :param str param2: field2 (required) :return: None @@ -1010,7 +1111,7 @@ def test_json_form_data(self, param, param2, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_json_form_data_with_http_info(param, param2, **kwargs) # noqa: E501 else: (data) = self.test_json_form_data_with_http_info(param, param2, **kwargs) # noqa: E501 @@ -1021,11 +1122,11 @@ def test_json_form_data_with_http_info(self, param, param2, **kwargs): # noqa: # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_json_form_data_with_http_info(param, param2, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_json_form_data_with_http_info(param, param2, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str param: field1 (required) :param str param2: field2 (required) :return: None @@ -1034,7 +1135,7 @@ def test_json_form_data_with_http_info(self, param, param2, **kwargs): # noqa: """ all_params = ['param', 'param2'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -1090,7 +1191,7 @@ def test_json_form_data_with_http_info(self, param, param2, **kwargs): # noqa: files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), diff --git a/samples/client/petstore/python-tornado/petstore_api/api/fake_classname_tags_123_api.py b/samples/client/petstore/python-tornado/petstore_api/api/fake_classname_tags_123_api.py index 230aa5ec4fca..8aa93d8dc324 100644 --- a/samples/client/petstore/python-tornado/petstore_api/api/fake_classname_tags_123_api.py +++ b/samples/client/petstore/python-tornado/petstore_api/api/fake_classname_tags_123_api.py @@ -38,18 +38,18 @@ def test_classname(self, body, **kwargs): # noqa: E501 To test class name in snake case # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_classname(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_classname(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Client body: client model (required) :return: Client If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_classname_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.test_classname_with_http_info(body, **kwargs) # noqa: E501 @@ -60,11 +60,11 @@ def test_classname_with_http_info(self, body, **kwargs): # noqa: E501 To test class name in snake case # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_classname_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_classname_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Client body: client model (required) :return: Client If the method is called asynchronously, @@ -72,7 +72,7 @@ def test_classname_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -126,7 +126,7 @@ def test_classname_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type='Client', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), diff --git a/samples/client/petstore/python-tornado/petstore_api/api/pet_api.py b/samples/client/petstore/python-tornado/petstore_api/api/pet_api.py index ff1026f3fae1..bf71e96eab69 100644 --- a/samples/client/petstore/python-tornado/petstore_api/api/pet_api.py +++ b/samples/client/petstore/python-tornado/petstore_api/api/pet_api.py @@ -38,18 +38,18 @@ def add_pet(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.add_pet(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.add_pet(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Pet body: Pet object that needs to be added to the store (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.add_pet_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.add_pet_with_http_info(body, **kwargs) # noqa: E501 @@ -60,11 +60,11 @@ def add_pet_with_http_info(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.add_pet_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.add_pet_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Pet body: Pet object that needs to be added to the store (required) :return: None If the method is called asynchronously, @@ -72,7 +72,7 @@ def add_pet_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -126,7 +126,7 @@ def add_pet_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -137,11 +137,11 @@ def delete_pet(self, pet_id, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.delete_pet(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.delete_pet(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: Pet id to delete (required) :param str api_key: :return: None @@ -149,7 +149,7 @@ def delete_pet(self, pet_id, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.delete_pet_with_http_info(pet_id, **kwargs) # noqa: E501 else: (data) = self.delete_pet_with_http_info(pet_id, **kwargs) # noqa: E501 @@ -160,11 +160,11 @@ def delete_pet_with_http_info(self, pet_id, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.delete_pet_with_http_info(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.delete_pet_with_http_info(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: Pet id to delete (required) :param str api_key: :return: None @@ -173,7 +173,7 @@ def delete_pet_with_http_info(self, pet_id, **kwargs): # noqa: E501 """ all_params = ['pet_id', 'api_key'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -225,7 +225,7 @@ def delete_pet_with_http_info(self, pet_id, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -236,18 +236,18 @@ def find_pets_by_status(self, status, **kwargs): # noqa: E501 Multiple status values can be provided with comma separated strings # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.find_pets_by_status(status, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.find_pets_by_status(status, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[str] status: Status values that need to be considered for filter (required) :return: list[Pet] If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.find_pets_by_status_with_http_info(status, **kwargs) # noqa: E501 else: (data) = self.find_pets_by_status_with_http_info(status, **kwargs) # noqa: E501 @@ -258,11 +258,11 @@ def find_pets_by_status_with_http_info(self, status, **kwargs): # noqa: E501 Multiple status values can be provided with comma separated strings # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.find_pets_by_status_with_http_info(status, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.find_pets_by_status_with_http_info(status, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[str] status: Status values that need to be considered for filter (required) :return: list[Pet] If the method is called asynchronously, @@ -270,7 +270,7 @@ def find_pets_by_status_with_http_info(self, status, **kwargs): # noqa: E501 """ all_params = ['status'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -321,7 +321,7 @@ def find_pets_by_status_with_http_info(self, status, **kwargs): # noqa: E501 files=local_var_files, response_type='list[Pet]', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -332,18 +332,18 @@ def find_pets_by_tags(self, tags, **kwargs): # noqa: E501 Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.find_pets_by_tags(tags, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.find_pets_by_tags(tags, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[str] tags: Tags to filter by (required) :return: list[Pet] If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.find_pets_by_tags_with_http_info(tags, **kwargs) # noqa: E501 else: (data) = self.find_pets_by_tags_with_http_info(tags, **kwargs) # noqa: E501 @@ -354,11 +354,11 @@ def find_pets_by_tags_with_http_info(self, tags, **kwargs): # noqa: E501 Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.find_pets_by_tags_with_http_info(tags, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.find_pets_by_tags_with_http_info(tags, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[str] tags: Tags to filter by (required) :return: list[Pet] If the method is called asynchronously, @@ -366,7 +366,7 @@ def find_pets_by_tags_with_http_info(self, tags, **kwargs): # noqa: E501 """ all_params = ['tags'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -417,7 +417,7 @@ def find_pets_by_tags_with_http_info(self, tags, **kwargs): # noqa: E501 files=local_var_files, response_type='list[Pet]', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -428,18 +428,18 @@ def get_pet_by_id(self, pet_id, **kwargs): # noqa: E501 Returns a single pet # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_pet_by_id(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_pet_by_id(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: ID of pet to return (required) :return: Pet If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.get_pet_by_id_with_http_info(pet_id, **kwargs) # noqa: E501 else: (data) = self.get_pet_by_id_with_http_info(pet_id, **kwargs) # noqa: E501 @@ -450,11 +450,11 @@ def get_pet_by_id_with_http_info(self, pet_id, **kwargs): # noqa: E501 Returns a single pet # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_pet_by_id_with_http_info(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_pet_by_id_with_http_info(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: ID of pet to return (required) :return: Pet If the method is called asynchronously, @@ -462,7 +462,7 @@ def get_pet_by_id_with_http_info(self, pet_id, **kwargs): # noqa: E501 """ all_params = ['pet_id'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -512,7 +512,7 @@ def get_pet_by_id_with_http_info(self, pet_id, **kwargs): # noqa: E501 files=local_var_files, response_type='Pet', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -523,18 +523,18 @@ def update_pet(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.update_pet(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_pet(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Pet body: Pet object that needs to be added to the store (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.update_pet_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.update_pet_with_http_info(body, **kwargs) # noqa: E501 @@ -545,11 +545,11 @@ def update_pet_with_http_info(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.update_pet_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_pet_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Pet body: Pet object that needs to be added to the store (required) :return: None If the method is called asynchronously, @@ -557,7 +557,7 @@ def update_pet_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -611,7 +611,7 @@ def update_pet_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -622,11 +622,11 @@ def update_pet_with_form(self, pet_id, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.update_pet_with_form(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_pet_with_form(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: ID of pet that needs to be updated (required) :param str name: Updated name of the pet :param str status: Updated status of the pet @@ -635,7 +635,7 @@ def update_pet_with_form(self, pet_id, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.update_pet_with_form_with_http_info(pet_id, **kwargs) # noqa: E501 else: (data) = self.update_pet_with_form_with_http_info(pet_id, **kwargs) # noqa: E501 @@ -646,11 +646,11 @@ def update_pet_with_form_with_http_info(self, pet_id, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.update_pet_with_form_with_http_info(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_pet_with_form_with_http_info(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: ID of pet that needs to be updated (required) :param str name: Updated name of the pet :param str status: Updated status of the pet @@ -660,7 +660,7 @@ def update_pet_with_form_with_http_info(self, pet_id, **kwargs): # noqa: E501 """ all_params = ['pet_id', 'name', 'status'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -718,7 +718,7 @@ def update_pet_with_form_with_http_info(self, pet_id, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -729,11 +729,11 @@ def upload_file(self, pet_id, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.upload_file(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.upload_file(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: ID of pet to update (required) :param str additional_metadata: Additional data to pass to server :param file file: file to upload @@ -742,7 +742,7 @@ def upload_file(self, pet_id, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.upload_file_with_http_info(pet_id, **kwargs) # noqa: E501 else: (data) = self.upload_file_with_http_info(pet_id, **kwargs) # noqa: E501 @@ -753,11 +753,11 @@ def upload_file_with_http_info(self, pet_id, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.upload_file_with_http_info(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.upload_file_with_http_info(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: ID of pet to update (required) :param str additional_metadata: Additional data to pass to server :param file file: file to upload @@ -767,7 +767,7 @@ def upload_file_with_http_info(self, pet_id, **kwargs): # noqa: E501 """ all_params = ['pet_id', 'additional_metadata', 'file'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -825,7 +825,7 @@ def upload_file_with_http_info(self, pet_id, **kwargs): # noqa: E501 files=local_var_files, response_type='ApiResponse', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), diff --git a/samples/client/petstore/python-tornado/petstore_api/api/store_api.py b/samples/client/petstore/python-tornado/petstore_api/api/store_api.py index ebb9a4eb27a4..27e1f7701922 100644 --- a/samples/client/petstore/python-tornado/petstore_api/api/store_api.py +++ b/samples/client/petstore/python-tornado/petstore_api/api/store_api.py @@ -38,18 +38,18 @@ def delete_order(self, order_id, **kwargs): # noqa: E501 For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.delete_order(order_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.delete_order(order_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str order_id: ID of the order that needs to be deleted (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.delete_order_with_http_info(order_id, **kwargs) # noqa: E501 else: (data) = self.delete_order_with_http_info(order_id, **kwargs) # noqa: E501 @@ -60,11 +60,11 @@ def delete_order_with_http_info(self, order_id, **kwargs): # noqa: E501 For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.delete_order_with_http_info(order_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.delete_order_with_http_info(order_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str order_id: ID of the order that needs to be deleted (required) :return: None If the method is called asynchronously, @@ -72,7 +72,7 @@ def delete_order_with_http_info(self, order_id, **kwargs): # noqa: E501 """ all_params = ['order_id'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -122,7 +122,7 @@ def delete_order_with_http_info(self, order_id, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -133,17 +133,17 @@ def get_inventory(self, **kwargs): # noqa: E501 Returns a map of status codes to quantities # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_inventory(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_inventory(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :return: dict(str, int) If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.get_inventory_with_http_info(**kwargs) # noqa: E501 else: (data) = self.get_inventory_with_http_info(**kwargs) # noqa: E501 @@ -154,18 +154,18 @@ def get_inventory_with_http_info(self, **kwargs): # noqa: E501 Returns a map of status codes to quantities # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_inventory_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_inventory_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :return: dict(str, int) If the method is called asynchronously, returns the request thread. """ all_params = [] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -209,7 +209,7 @@ def get_inventory_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type='dict(str, int)', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -220,18 +220,18 @@ def get_order_by_id(self, order_id, **kwargs): # noqa: E501 For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_order_by_id(order_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_order_by_id(order_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int order_id: ID of pet that needs to be fetched (required) :return: Order If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.get_order_by_id_with_http_info(order_id, **kwargs) # noqa: E501 else: (data) = self.get_order_by_id_with_http_info(order_id, **kwargs) # noqa: E501 @@ -242,11 +242,11 @@ def get_order_by_id_with_http_info(self, order_id, **kwargs): # noqa: E501 For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_order_by_id_with_http_info(order_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_order_by_id_with_http_info(order_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int order_id: ID of pet that needs to be fetched (required) :return: Order If the method is called asynchronously, @@ -254,7 +254,7 @@ def get_order_by_id_with_http_info(self, order_id, **kwargs): # noqa: E501 """ all_params = ['order_id'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -308,7 +308,7 @@ def get_order_by_id_with_http_info(self, order_id, **kwargs): # noqa: E501 files=local_var_files, response_type='Order', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -319,18 +319,18 @@ def place_order(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.place_order(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.place_order(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Order body: order placed for purchasing the pet (required) :return: Order If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.place_order_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.place_order_with_http_info(body, **kwargs) # noqa: E501 @@ -341,11 +341,11 @@ def place_order_with_http_info(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.place_order_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.place_order_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Order body: order placed for purchasing the pet (required) :return: Order If the method is called asynchronously, @@ -353,7 +353,7 @@ def place_order_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -403,7 +403,7 @@ def place_order_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type='Order', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), diff --git a/samples/client/petstore/python-tornado/petstore_api/api/user_api.py b/samples/client/petstore/python-tornado/petstore_api/api/user_api.py index 1de89f28bb0e..62a87f2e4189 100644 --- a/samples/client/petstore/python-tornado/petstore_api/api/user_api.py +++ b/samples/client/petstore/python-tornado/petstore_api/api/user_api.py @@ -38,18 +38,18 @@ def create_user(self, body, **kwargs): # noqa: E501 This can only be done by the logged in user. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.create_user(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.create_user(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param User body: Created user object (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.create_user_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.create_user_with_http_info(body, **kwargs) # noqa: E501 @@ -60,11 +60,11 @@ def create_user_with_http_info(self, body, **kwargs): # noqa: E501 This can only be done by the logged in user. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.create_user_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.create_user_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param User body: Created user object (required) :return: None If the method is called asynchronously, @@ -72,7 +72,7 @@ def create_user_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -122,7 +122,7 @@ def create_user_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -133,18 +133,18 @@ def create_users_with_array_input(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.create_users_with_array_input(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.create_users_with_array_input(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[User] body: List of user object (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.create_users_with_array_input_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.create_users_with_array_input_with_http_info(body, **kwargs) # noqa: E501 @@ -155,11 +155,11 @@ def create_users_with_array_input_with_http_info(self, body, **kwargs): # noqa: # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.create_users_with_array_input_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.create_users_with_array_input_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[User] body: List of user object (required) :return: None If the method is called asynchronously, @@ -167,7 +167,7 @@ def create_users_with_array_input_with_http_info(self, body, **kwargs): # noqa: """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -217,7 +217,7 @@ def create_users_with_array_input_with_http_info(self, body, **kwargs): # noqa: files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -228,18 +228,18 @@ def create_users_with_list_input(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.create_users_with_list_input(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.create_users_with_list_input(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[User] body: List of user object (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.create_users_with_list_input_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.create_users_with_list_input_with_http_info(body, **kwargs) # noqa: E501 @@ -250,11 +250,11 @@ def create_users_with_list_input_with_http_info(self, body, **kwargs): # noqa: # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.create_users_with_list_input_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.create_users_with_list_input_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[User] body: List of user object (required) :return: None If the method is called asynchronously, @@ -262,7 +262,7 @@ def create_users_with_list_input_with_http_info(self, body, **kwargs): # noqa: """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -312,7 +312,7 @@ def create_users_with_list_input_with_http_info(self, body, **kwargs): # noqa: files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -323,18 +323,18 @@ def delete_user(self, username, **kwargs): # noqa: E501 This can only be done by the logged in user. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.delete_user(username, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.delete_user(username, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: The name that needs to be deleted (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.delete_user_with_http_info(username, **kwargs) # noqa: E501 else: (data) = self.delete_user_with_http_info(username, **kwargs) # noqa: E501 @@ -345,11 +345,11 @@ def delete_user_with_http_info(self, username, **kwargs): # noqa: E501 This can only be done by the logged in user. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.delete_user_with_http_info(username, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.delete_user_with_http_info(username, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: The name that needs to be deleted (required) :return: None If the method is called asynchronously, @@ -357,7 +357,7 @@ def delete_user_with_http_info(self, username, **kwargs): # noqa: E501 """ all_params = ['username'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -407,7 +407,7 @@ def delete_user_with_http_info(self, username, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -418,18 +418,18 @@ def get_user_by_name(self, username, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_user_by_name(username, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_user_by_name(username, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: The name that needs to be fetched. Use user1 for testing. (required) :return: User If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.get_user_by_name_with_http_info(username, **kwargs) # noqa: E501 else: (data) = self.get_user_by_name_with_http_info(username, **kwargs) # noqa: E501 @@ -440,11 +440,11 @@ def get_user_by_name_with_http_info(self, username, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_user_by_name_with_http_info(username, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_user_by_name_with_http_info(username, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: The name that needs to be fetched. Use user1 for testing. (required) :return: User If the method is called asynchronously, @@ -452,7 +452,7 @@ def get_user_by_name_with_http_info(self, username, **kwargs): # noqa: E501 """ all_params = ['username'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -502,7 +502,7 @@ def get_user_by_name_with_http_info(self, username, **kwargs): # noqa: E501 files=local_var_files, response_type='User', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -513,11 +513,11 @@ def login_user(self, username, password, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.login_user(username, password, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.login_user(username, password, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: The user name for login (required) :param str password: The password for login in clear text (required) :return: str @@ -525,7 +525,7 @@ def login_user(self, username, password, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.login_user_with_http_info(username, password, **kwargs) # noqa: E501 else: (data) = self.login_user_with_http_info(username, password, **kwargs) # noqa: E501 @@ -536,11 +536,11 @@ def login_user_with_http_info(self, username, password, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.login_user_with_http_info(username, password, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.login_user_with_http_info(username, password, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: The user name for login (required) :param str password: The password for login in clear text (required) :return: str @@ -549,7 +549,7 @@ def login_user_with_http_info(self, username, password, **kwargs): # noqa: E501 """ all_params = ['username', 'password'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -605,7 +605,7 @@ def login_user_with_http_info(self, username, password, **kwargs): # noqa: E501 files=local_var_files, response_type='str', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -616,17 +616,17 @@ def logout_user(self, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.logout_user(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.logout_user(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.logout_user_with_http_info(**kwargs) # noqa: E501 else: (data) = self.logout_user_with_http_info(**kwargs) # noqa: E501 @@ -637,18 +637,18 @@ def logout_user_with_http_info(self, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.logout_user_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.logout_user_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :return: None If the method is called asynchronously, returns the request thread. """ all_params = [] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -692,7 +692,7 @@ def logout_user_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -703,11 +703,11 @@ def update_user(self, username, body, **kwargs): # noqa: E501 This can only be done by the logged in user. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.update_user(username, body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_user(username, body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: name that need to be deleted (required) :param User body: Updated user object (required) :return: None @@ -715,7 +715,7 @@ def update_user(self, username, body, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.update_user_with_http_info(username, body, **kwargs) # noqa: E501 else: (data) = self.update_user_with_http_info(username, body, **kwargs) # noqa: E501 @@ -726,11 +726,11 @@ def update_user_with_http_info(self, username, body, **kwargs): # noqa: E501 This can only be done by the logged in user. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.update_user_with_http_info(username, body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_user_with_http_info(username, body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: name that need to be deleted (required) :param User body: Updated user object (required) :return: None @@ -739,7 +739,7 @@ def update_user_with_http_info(self, username, body, **kwargs): # noqa: E501 """ all_params = ['username', 'body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -795,7 +795,7 @@ def update_user_with_http_info(self, username, body, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), 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 140acd96ff83..cbf6ee166a28 100644 --- a/samples/client/petstore/python-tornado/petstore_api/api_client.py +++ b/samples/client/petstore/python-tornado/petstore_api/api_client.py @@ -262,12 +262,12 @@ def __deserialize(self, data, klass): if type(klass) == str: if klass.startswith('list['): - sub_kls = re.match('list\[(.*)\]', klass).group(1) + sub_kls = re.match(r'list\[(.*)\]', klass).group(1) return [self.__deserialize(sub_data, sub_kls) for sub_data in data] if klass.startswith('dict('): - sub_kls = re.match('dict\(([^,]*), (.*)\)', klass).group(2) + sub_kls = re.match(r'dict\(([^,]*), (.*)\)', klass).group(2) return {k: self.__deserialize(v, sub_kls) for k, v in six.iteritems(data)} @@ -291,12 +291,12 @@ def __deserialize(self, data, klass): def call_api(self, resource_path, method, path_params=None, query_params=None, header_params=None, body=None, post_params=None, files=None, - response_type=None, auth_settings=None, async=None, + response_type=None, auth_settings=None, async_req=None, _return_http_data_only=None, collection_formats=None, _preload_content=True, _request_timeout=None): """Makes the HTTP request (synchronous) and returns deserialized data. - To make an async request, set the async parameter. + To make an async request, set the async_req parameter. :param resource_path: Path to method endpoint. :param method: Method to call. @@ -311,7 +311,7 @@ def call_api(self, resource_path, method, :param response: Response data type. :param files dict: key -> filename, value -> filepath, for `multipart/form-data`. - :param async bool: execute request asynchronously + :param async_req bool: execute request asynchronously :param _return_http_data_only: response data without head status code and headers :param collection_formats: dict of collection formats for path, query, @@ -324,13 +324,13 @@ def call_api(self, resource_path, method, timeout. It can also be a pair (tuple) of (connection, read) timeouts. :return: - If async parameter is True, + If async_req parameter is True, the request will be called asynchronously. The method will return the request thread. - If parameter async is False or missing, + If parameter async_req is False or missing, then the method will return the response directly. """ - if not async: + if not async_req: return self.__call_api(resource_path, method, path_params, query_params, header_params, body, post_params, files, @@ -631,6 +631,12 @@ def __deserialize_model(self, data, klass): instance = klass(**kwargs) + if (isinstance(instance, dict) and + klass.swagger_types is not None and + isinstance(data, dict)): + for key, value in data.items(): + if key not in klass.swagger_types: + instance[key] = value if hasattr(instance, 'get_real_child_model'): klass_name = instance.get_real_child_model(data) if klass_name: diff --git a/samples/client/petstore/python-tornado/petstore_api/models/additional_properties_class.py b/samples/client/petstore/python-tornado/petstore_api/models/additional_properties_class.py index 03dbe975f1bc..83de7092668b 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/additional_properties_class.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/additional_properties_class.py @@ -115,6 +115,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(AdditionalPropertiesClass, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/animal.py b/samples/client/petstore/python-tornado/petstore_api/models/animal.py index 390ac83905eb..5175148b2d38 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/animal.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/animal.py @@ -126,6 +126,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Animal, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/animal_farm.py b/samples/client/petstore/python-tornado/petstore_api/models/animal_farm.py index 6371257286e3..e7904d7fbf66 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/animal_farm.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/animal_farm.py @@ -63,6 +63,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(AnimalFarm, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/api_response.py b/samples/client/petstore/python-tornado/petstore_api/models/api_response.py index 45c4831bb100..9da53da373b6 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/api_response.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/api_response.py @@ -141,6 +141,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(ApiResponse, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/array_of_array_of_number_only.py b/samples/client/petstore/python-tornado/petstore_api/models/array_of_array_of_number_only.py index c6b363f19d88..1e5e8be1ed17 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/array_of_array_of_number_only.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/array_of_array_of_number_only.py @@ -89,6 +89,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(ArrayOfArrayOfNumberOnly, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/array_of_number_only.py b/samples/client/petstore/python-tornado/petstore_api/models/array_of_number_only.py index 240362696cd0..0628f7af1e7a 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/array_of_number_only.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/array_of_number_only.py @@ -89,6 +89,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(ArrayOfNumberOnly, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/array_test.py b/samples/client/petstore/python-tornado/petstore_api/models/array_test.py index c5cd6bfe1591..aa2d0d5e6331 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/array_test.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/array_test.py @@ -143,6 +143,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(ArrayTest, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/capitalization.py b/samples/client/petstore/python-tornado/petstore_api/models/capitalization.py index 309642bdefff..83b0068aee2e 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/capitalization.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/capitalization.py @@ -221,6 +221,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Capitalization, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/cat.py b/samples/client/petstore/python-tornado/petstore_api/models/cat.py index 526d3e2aaf5f..3660f18706bc 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/cat.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/cat.py @@ -19,7 +19,7 @@ from petstore_api.models.animal import Animal # noqa: F401,E501 -class Cat(object): +class Cat(Animal): """NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually. @@ -91,6 +91,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Cat, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/category.py b/samples/client/petstore/python-tornado/petstore_api/models/category.py index 02d393af8883..dbc4fd288163 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/category.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/category.py @@ -115,6 +115,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Category, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/class_model.py b/samples/client/petstore/python-tornado/petstore_api/models/class_model.py index 4bcb19b8dc2c..6042036beb5a 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/class_model.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/class_model.py @@ -89,6 +89,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(ClassModel, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/client.py b/samples/client/petstore/python-tornado/petstore_api/models/client.py index e267fed6d8ca..337100c3946f 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/client.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/client.py @@ -89,6 +89,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Client, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/dog.py b/samples/client/petstore/python-tornado/petstore_api/models/dog.py index 34aac6aaad4e..3d80d6442f4d 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/dog.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/dog.py @@ -19,7 +19,7 @@ from petstore_api.models.animal import Animal # noqa: F401,E501 -class Dog(object): +class Dog(Animal): """NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually. @@ -91,6 +91,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Dog, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/enum_arrays.py b/samples/client/petstore/python-tornado/petstore_api/models/enum_arrays.py index d02be298d2f9..5257b181b88f 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/enum_arrays.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/enum_arrays.py @@ -128,6 +128,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(EnumArrays, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/enum_class.py b/samples/client/petstore/python-tornado/petstore_api/models/enum_class.py index e4721545e836..2282270dda1d 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/enum_class.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/enum_class.py @@ -68,6 +68,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(EnumClass, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/enum_test.py b/samples/client/petstore/python-tornado/petstore_api/models/enum_test.py index 565975d725c8..d977ef918bca 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/enum_test.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/enum_test.py @@ -220,6 +220,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(EnumTest, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/format_test.py b/samples/client/petstore/python-tornado/petstore_api/models/format_test.py index 467b4a2573d0..206b991719d9 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/format_test.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/format_test.py @@ -269,8 +269,8 @@ def string(self, string): :param string: The string of this FormatTest. # noqa: E501 :type: str """ - if string is not None and not re.search('[a-z]', string, flags=re.IGNORECASE): # noqa: E501 - raise ValueError("Invalid value for `string`, must be a follow pattern or equal to `/[a-z]/i`") # noqa: E501 + if string is not None and not re.search(r'[a-z]', string, flags=re.IGNORECASE): # noqa: E501 + raise ValueError(r"Invalid value for `string`, must be a follow pattern or equal to `/[a-z]/i`") # noqa: E501 self._string = string @@ -294,8 +294,8 @@ def byte(self, byte): """ if byte is None: raise ValueError("Invalid value for `byte`, must not be `None`") # noqa: E501 - if byte is not None and not re.search('^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$', byte): # noqa: E501 - raise ValueError("Invalid value for `byte`, must be a follow pattern or equal to `/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/`") # noqa: E501 + if byte is not None and not re.search(r'^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$', byte): # noqa: E501 + raise ValueError(r"Invalid value for `byte`, must be a follow pattern or equal to `/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/`") # noqa: E501 self._byte = byte @@ -433,6 +433,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(FormatTest, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/has_only_read_only.py b/samples/client/petstore/python-tornado/petstore_api/models/has_only_read_only.py index 3c93eb309969..76e5ceb1e22b 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/has_only_read_only.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/has_only_read_only.py @@ -115,6 +115,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(HasOnlyReadOnly, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/list.py b/samples/client/petstore/python-tornado/petstore_api/models/list.py index fbe30e6d01e3..46eef1e90f35 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/list.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/list.py @@ -89,6 +89,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(List, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/map_test.py b/samples/client/petstore/python-tornado/petstore_api/models/map_test.py index 374c0661ba56..f2633c30a99a 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/map_test.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/map_test.py @@ -122,6 +122,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(MapTest, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/mixed_properties_and_additional_properties_class.py b/samples/client/petstore/python-tornado/petstore_api/models/mixed_properties_and_additional_properties_class.py index dba1f2613527..dfed6cc90bd3 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/mixed_properties_and_additional_properties_class.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/mixed_properties_and_additional_properties_class.py @@ -143,6 +143,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(MixedPropertiesAndAdditionalPropertiesClass, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/model200_response.py b/samples/client/petstore/python-tornado/petstore_api/models/model200_response.py index 60f9c96a676f..1fcaabca10ec 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/model200_response.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/model200_response.py @@ -115,6 +115,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Model200Response, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/model_return.py b/samples/client/petstore/python-tornado/petstore_api/models/model_return.py index c9d8b5682aa4..792536114953 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/model_return.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/model_return.py @@ -89,6 +89,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(ModelReturn, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/name.py b/samples/client/petstore/python-tornado/petstore_api/models/name.py index cbfbddeb1ab7..53be7953ea96 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/name.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/name.py @@ -168,6 +168,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Name, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/number_only.py b/samples/client/petstore/python-tornado/petstore_api/models/number_only.py index b96321109b97..2f43a834f8bd 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/number_only.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/number_only.py @@ -89,6 +89,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(NumberOnly, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/order.py b/samples/client/petstore/python-tornado/petstore_api/models/order.py index 6636542e941c..9291652787e1 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/order.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/order.py @@ -227,6 +227,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Order, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/outer_boolean.py b/samples/client/petstore/python-tornado/petstore_api/models/outer_boolean.py index 9b3aebd36084..3b273333e75a 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/outer_boolean.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/outer_boolean.py @@ -61,6 +61,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(OuterBoolean, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/outer_composite.py b/samples/client/petstore/python-tornado/petstore_api/models/outer_composite.py index 19775255e4e5..36381acb861a 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/outer_composite.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/outer_composite.py @@ -145,6 +145,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(OuterComposite, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/outer_enum.py b/samples/client/petstore/python-tornado/petstore_api/models/outer_enum.py index 5ee1e49a587d..bea07410cf27 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/outer_enum.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/outer_enum.py @@ -68,6 +68,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(OuterEnum, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/outer_number.py b/samples/client/petstore/python-tornado/petstore_api/models/outer_number.py index a35587be65e4..a60e97c8288e 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/outer_number.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/outer_number.py @@ -61,6 +61,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(OuterNumber, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/outer_string.py b/samples/client/petstore/python-tornado/petstore_api/models/outer_string.py index 736edacd1bca..622589ce2f63 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/outer_string.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/outer_string.py @@ -61,6 +61,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(OuterString, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/pet.py b/samples/client/petstore/python-tornado/petstore_api/models/pet.py index 81b2bb617f9c..c7c206c7a93d 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/pet.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/pet.py @@ -232,6 +232,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Pet, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/read_only_first.py b/samples/client/petstore/python-tornado/petstore_api/models/read_only_first.py index 106463077e8e..0a378f93da60 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/read_only_first.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/read_only_first.py @@ -115,6 +115,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(ReadOnlyFirst, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/special_model_name.py b/samples/client/petstore/python-tornado/petstore_api/models/special_model_name.py index a31b8db66e26..3817430b656f 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/special_model_name.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/special_model_name.py @@ -89,6 +89,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(SpecialModelName, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/tag.py b/samples/client/petstore/python-tornado/petstore_api/models/tag.py index b486a672b88d..dc3c0b5645f7 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/tag.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/tag.py @@ -115,6 +115,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(Tag, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python-tornado/petstore_api/models/user.py b/samples/client/petstore/python-tornado/petstore_api/models/user.py index c9fe0072a9cc..8dcac91845fa 100644 --- a/samples/client/petstore/python-tornado/petstore_api/models/user.py +++ b/samples/client/petstore/python-tornado/petstore_api/models/user.py @@ -273,6 +273,9 @@ def to_dict(self): )) else: result[attr] = value + if issubclass(User, dict): + for key, value in self.items(): + result[key] = value return result diff --git a/samples/client/petstore/python/petstore_api/api/another_fake_api.py b/samples/client/petstore/python/petstore_api/api/another_fake_api.py index 0096dad1a37a..955369935ea0 100644 --- a/samples/client/petstore/python/petstore_api/api/another_fake_api.py +++ b/samples/client/petstore/python/petstore_api/api/another_fake_api.py @@ -38,18 +38,18 @@ def test_special_tags(self, body, **kwargs): # noqa: E501 To test special tags # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_special_tags(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_special_tags(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Client body: client model (required) :return: Client If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_special_tags_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.test_special_tags_with_http_info(body, **kwargs) # noqa: E501 @@ -60,11 +60,11 @@ def test_special_tags_with_http_info(self, body, **kwargs): # noqa: E501 To test special tags # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_special_tags_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_special_tags_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Client body: client model (required) :return: Client If the method is called asynchronously, @@ -72,7 +72,7 @@ def test_special_tags_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -126,7 +126,7 @@ def test_special_tags_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type='Client', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), diff --git a/samples/client/petstore/python/petstore_api/api/fake_api.py b/samples/client/petstore/python/petstore_api/api/fake_api.py index e62868348862..a3be46de1e0d 100644 --- a/samples/client/petstore/python/petstore_api/api/fake_api.py +++ b/samples/client/petstore/python/petstore_api/api/fake_api.py @@ -38,18 +38,18 @@ def fake_outer_boolean_serialize(self, **kwargs): # noqa: E501 Test serialization of outer boolean types # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_boolean_serialize(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_boolean_serialize(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterBoolean body: Input boolean as post body :return: OuterBoolean If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.fake_outer_boolean_serialize_with_http_info(**kwargs) # noqa: E501 else: (data) = self.fake_outer_boolean_serialize_with_http_info(**kwargs) # noqa: E501 @@ -60,11 +60,11 @@ def fake_outer_boolean_serialize_with_http_info(self, **kwargs): # noqa: E501 Test serialization of outer boolean types # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_boolean_serialize_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_boolean_serialize_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterBoolean body: Input boolean as post body :return: OuterBoolean If the method is called asynchronously, @@ -72,7 +72,7 @@ def fake_outer_boolean_serialize_with_http_info(self, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -114,7 +114,7 @@ def fake_outer_boolean_serialize_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type='OuterBoolean', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -125,18 +125,18 @@ def fake_outer_composite_serialize(self, **kwargs): # noqa: E501 Test serialization of object with outer number type # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_composite_serialize(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_composite_serialize(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterComposite body: Input composite as post body :return: OuterComposite If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.fake_outer_composite_serialize_with_http_info(**kwargs) # noqa: E501 else: (data) = self.fake_outer_composite_serialize_with_http_info(**kwargs) # noqa: E501 @@ -147,11 +147,11 @@ def fake_outer_composite_serialize_with_http_info(self, **kwargs): # noqa: E501 Test serialization of object with outer number type # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_composite_serialize_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_composite_serialize_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterComposite body: Input composite as post body :return: OuterComposite If the method is called asynchronously, @@ -159,7 +159,7 @@ def fake_outer_composite_serialize_with_http_info(self, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -201,7 +201,7 @@ def fake_outer_composite_serialize_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type='OuterComposite', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -212,18 +212,18 @@ def fake_outer_number_serialize(self, **kwargs): # noqa: E501 Test serialization of outer number types # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_number_serialize(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_number_serialize(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterNumber body: Input number as post body :return: OuterNumber If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.fake_outer_number_serialize_with_http_info(**kwargs) # noqa: E501 else: (data) = self.fake_outer_number_serialize_with_http_info(**kwargs) # noqa: E501 @@ -234,11 +234,11 @@ def fake_outer_number_serialize_with_http_info(self, **kwargs): # noqa: E501 Test serialization of outer number types # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_number_serialize_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_number_serialize_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterNumber body: Input number as post body :return: OuterNumber If the method is called asynchronously, @@ -246,7 +246,7 @@ def fake_outer_number_serialize_with_http_info(self, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -288,7 +288,7 @@ def fake_outer_number_serialize_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type='OuterNumber', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -299,18 +299,18 @@ def fake_outer_string_serialize(self, **kwargs): # noqa: E501 Test serialization of outer string types # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_string_serialize(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_string_serialize(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterString body: Input string as post body :return: OuterString If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.fake_outer_string_serialize_with_http_info(**kwargs) # noqa: E501 else: (data) = self.fake_outer_string_serialize_with_http_info(**kwargs) # noqa: E501 @@ -321,11 +321,11 @@ def fake_outer_string_serialize_with_http_info(self, **kwargs): # noqa: E501 Test serialization of outer string types # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.fake_outer_string_serialize_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.fake_outer_string_serialize_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param OuterString body: Input string as post body :return: OuterString If the method is called asynchronously, @@ -333,7 +333,7 @@ def fake_outer_string_serialize_with_http_info(self, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -375,7 +375,7 @@ def fake_outer_string_serialize_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type='OuterString', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -385,11 +385,11 @@ def test_body_with_query_params(self, body, query, **kwargs): # noqa: E501 """test_body_with_query_params # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_body_with_query_params(body, query, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_body_with_query_params(body, query, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param User body: (required) :param str query: (required) :return: None @@ -397,7 +397,7 @@ def test_body_with_query_params(self, body, query, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_body_with_query_params_with_http_info(body, query, **kwargs) # noqa: E501 else: (data) = self.test_body_with_query_params_with_http_info(body, query, **kwargs) # noqa: E501 @@ -407,11 +407,11 @@ def test_body_with_query_params_with_http_info(self, body, query, **kwargs): # """test_body_with_query_params # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_body_with_query_params_with_http_info(body, query, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_body_with_query_params_with_http_info(body, query, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param User body: (required) :param str query: (required) :return: None @@ -420,7 +420,7 @@ def test_body_with_query_params_with_http_info(self, body, query, **kwargs): # """ all_params = ['body', 'query'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -476,44 +476,44 @@ def test_body_with_query_params_with_http_info(self, body, query, **kwargs): # files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) def test_client_model(self, body, **kwargs): # noqa: E501 - """To test \"client\" model # noqa: E501 + """To test \"client\" model # noqa: E501 To test \"client\" model # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_client_model(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_client_model(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Client body: client model (required) :return: Client If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_client_model_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.test_client_model_with_http_info(body, **kwargs) # noqa: E501 return data def test_client_model_with_http_info(self, body, **kwargs): # noqa: E501 - """To test \"client\" model # noqa: E501 + """To test \"client\" model # noqa: E501 To test \"client\" model # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_client_model_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_client_model_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Client body: client model (required) :return: Client If the method is called asynchronously, @@ -521,7 +521,7 @@ def test_client_model_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -575,7 +575,7 @@ def test_client_model_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type='Client', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -586,11 +586,11 @@ def test_endpoint_parameters(self, number, double, pattern_without_delimiter, by Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_endpoint_parameters(number, double, pattern_without_delimiter, byte, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_endpoint_parameters(number, double, pattern_without_delimiter, byte, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param float number: None (required) :param float double: None (required) :param str pattern_without_delimiter: None (required) @@ -610,7 +610,7 @@ def test_endpoint_parameters(self, number, double, pattern_without_delimiter, by returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_endpoint_parameters_with_http_info(number, double, pattern_without_delimiter, byte, **kwargs) # noqa: E501 else: (data) = self.test_endpoint_parameters_with_http_info(number, double, pattern_without_delimiter, byte, **kwargs) # noqa: E501 @@ -621,11 +621,11 @@ def test_endpoint_parameters_with_http_info(self, number, double, pattern_withou Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_endpoint_parameters_with_http_info(number, double, pattern_without_delimiter, byte, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_endpoint_parameters_with_http_info(number, double, pattern_without_delimiter, byte, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param float number: None (required) :param float double: None (required) :param str pattern_without_delimiter: None (required) @@ -646,7 +646,7 @@ def test_endpoint_parameters_with_http_info(self, number, double, pattern_withou """ all_params = ['number', 'double', 'pattern_without_delimiter', 'byte', 'integer', 'int32', 'int64', '_float', 'string', 'binary', '_date', 'date_time', 'password', 'param_callback'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -685,7 +685,7 @@ def test_endpoint_parameters_with_http_info(self, number, double, pattern_withou raise ValueError("Invalid value for parameter `double` when calling `test_endpoint_parameters`, must be a value less than or equal to `123.4`") # noqa: E501 if 'double' in params and params['double'] < 67.8: # noqa: E501 raise ValueError("Invalid value for parameter `double` when calling `test_endpoint_parameters`, must be a value greater than or equal to `67.8`") # noqa: E501 - if 'pattern_without_delimiter' in params and not re.search('^[A-Z].*', params['pattern_without_delimiter']): # noqa: E501 + if 'pattern_without_delimiter' in params and not re.search(r'^[A-Z].*', params['pattern_without_delimiter']): # noqa: E501 raise ValueError("Invalid value for parameter `pattern_without_delimiter` when calling `test_endpoint_parameters`, must conform to the pattern `/^[A-Z].*/`") # noqa: E501 if 'integer' in params and params['integer'] > 100: # noqa: E501 raise ValueError("Invalid value for parameter `integer` when calling `test_endpoint_parameters`, must be a value less than or equal to `100`") # noqa: E501 @@ -697,7 +697,7 @@ def test_endpoint_parameters_with_http_info(self, number, double, pattern_withou raise ValueError("Invalid value for parameter `int32` when calling `test_endpoint_parameters`, must be a value greater than or equal to `20`") # noqa: E501 if '_float' in params and params['_float'] > 987.6: # noqa: E501 raise ValueError("Invalid value for parameter `_float` when calling `test_endpoint_parameters`, must be a value less than or equal to `987.6`") # noqa: E501 - if 'string' in params and not re.search('[a-z]', params['string'], flags=re.IGNORECASE): # noqa: E501 + if 'string' in params and not re.search(r'[a-z]', params['string'], flags=re.IGNORECASE): # noqa: E501 raise ValueError("Invalid value for parameter `string` when calling `test_endpoint_parameters`, must conform to the pattern `/[a-z]/i`") # noqa: E501 if ('password' in params and len(params['password']) > 64): @@ -766,7 +766,7 @@ def test_endpoint_parameters_with_http_info(self, number, double, pattern_withou files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -777,11 +777,11 @@ def test_enum_parameters(self, **kwargs): # noqa: E501 To test enum parameters # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_enum_parameters(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_enum_parameters(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[str] enum_form_string_array: Form parameter enum test (string array) :param str enum_form_string: Form parameter enum test (string) :param list[str] enum_header_string_array: Header parameter enum test (string array) @@ -795,7 +795,7 @@ def test_enum_parameters(self, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_enum_parameters_with_http_info(**kwargs) # noqa: E501 else: (data) = self.test_enum_parameters_with_http_info(**kwargs) # noqa: E501 @@ -806,11 +806,11 @@ def test_enum_parameters_with_http_info(self, **kwargs): # noqa: E501 To test enum parameters # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_enum_parameters_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_enum_parameters_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[str] enum_form_string_array: Form parameter enum test (string array) :param str enum_form_string: Form parameter enum test (string) :param list[str] enum_header_string_array: Header parameter enum test (string array) @@ -825,7 +825,7 @@ def test_enum_parameters_with_http_info(self, **kwargs): # noqa: E501 """ all_params = ['enum_form_string_array', 'enum_form_string', 'enum_header_string_array', 'enum_header_string', 'enum_query_string_array', 'enum_query_string', 'enum_query_integer', 'enum_query_double'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -892,7 +892,7 @@ def test_enum_parameters_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -903,18 +903,18 @@ def test_inline_additional_properties(self, param, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_inline_additional_properties(param, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_inline_additional_properties(param, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param object param: request body (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_inline_additional_properties_with_http_info(param, **kwargs) # noqa: E501 else: (data) = self.test_inline_additional_properties_with_http_info(param, **kwargs) # noqa: E501 @@ -925,11 +925,11 @@ def test_inline_additional_properties_with_http_info(self, param, **kwargs): # # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_inline_additional_properties_with_http_info(param, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_inline_additional_properties_with_http_info(param, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param object param: request body (required) :return: None If the method is called asynchronously, @@ -937,7 +937,7 @@ def test_inline_additional_properties_with_http_info(self, param, **kwargs): # """ all_params = ['param'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -987,7 +987,7 @@ def test_inline_additional_properties_with_http_info(self, param, **kwargs): # files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -998,11 +998,11 @@ def test_json_form_data(self, param, param2, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_json_form_data(param, param2, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_json_form_data(param, param2, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str param: field1 (required) :param str param2: field2 (required) :return: None @@ -1010,7 +1010,7 @@ def test_json_form_data(self, param, param2, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_json_form_data_with_http_info(param, param2, **kwargs) # noqa: E501 else: (data) = self.test_json_form_data_with_http_info(param, param2, **kwargs) # noqa: E501 @@ -1021,11 +1021,11 @@ def test_json_form_data_with_http_info(self, param, param2, **kwargs): # noqa: # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_json_form_data_with_http_info(param, param2, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_json_form_data_with_http_info(param, param2, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str param: field1 (required) :param str param2: field2 (required) :return: None @@ -1034,7 +1034,7 @@ def test_json_form_data_with_http_info(self, param, param2, **kwargs): # noqa: """ all_params = ['param', 'param2'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -1090,7 +1090,7 @@ def test_json_form_data_with_http_info(self, param, param2, **kwargs): # noqa: files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), diff --git a/samples/client/petstore/python/petstore_api/api/fake_classname_tags_123_api.py b/samples/client/petstore/python/petstore_api/api/fake_classname_tags_123_api.py index 230aa5ec4fca..8aa93d8dc324 100644 --- a/samples/client/petstore/python/petstore_api/api/fake_classname_tags_123_api.py +++ b/samples/client/petstore/python/petstore_api/api/fake_classname_tags_123_api.py @@ -38,18 +38,18 @@ def test_classname(self, body, **kwargs): # noqa: E501 To test class name in snake case # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_classname(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_classname(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Client body: client model (required) :return: Client If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.test_classname_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.test_classname_with_http_info(body, **kwargs) # noqa: E501 @@ -60,11 +60,11 @@ def test_classname_with_http_info(self, body, **kwargs): # noqa: E501 To test class name in snake case # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.test_classname_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.test_classname_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Client body: client model (required) :return: Client If the method is called asynchronously, @@ -72,7 +72,7 @@ def test_classname_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -126,7 +126,7 @@ def test_classname_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type='Client', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), diff --git a/samples/client/petstore/python/petstore_api/api/pet_api.py b/samples/client/petstore/python/petstore_api/api/pet_api.py index ff1026f3fae1..bf71e96eab69 100644 --- a/samples/client/petstore/python/petstore_api/api/pet_api.py +++ b/samples/client/petstore/python/petstore_api/api/pet_api.py @@ -38,18 +38,18 @@ def add_pet(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.add_pet(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.add_pet(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Pet body: Pet object that needs to be added to the store (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.add_pet_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.add_pet_with_http_info(body, **kwargs) # noqa: E501 @@ -60,11 +60,11 @@ def add_pet_with_http_info(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.add_pet_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.add_pet_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Pet body: Pet object that needs to be added to the store (required) :return: None If the method is called asynchronously, @@ -72,7 +72,7 @@ def add_pet_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -126,7 +126,7 @@ def add_pet_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -137,11 +137,11 @@ def delete_pet(self, pet_id, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.delete_pet(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.delete_pet(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: Pet id to delete (required) :param str api_key: :return: None @@ -149,7 +149,7 @@ def delete_pet(self, pet_id, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.delete_pet_with_http_info(pet_id, **kwargs) # noqa: E501 else: (data) = self.delete_pet_with_http_info(pet_id, **kwargs) # noqa: E501 @@ -160,11 +160,11 @@ def delete_pet_with_http_info(self, pet_id, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.delete_pet_with_http_info(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.delete_pet_with_http_info(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: Pet id to delete (required) :param str api_key: :return: None @@ -173,7 +173,7 @@ def delete_pet_with_http_info(self, pet_id, **kwargs): # noqa: E501 """ all_params = ['pet_id', 'api_key'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -225,7 +225,7 @@ def delete_pet_with_http_info(self, pet_id, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -236,18 +236,18 @@ def find_pets_by_status(self, status, **kwargs): # noqa: E501 Multiple status values can be provided with comma separated strings # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.find_pets_by_status(status, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.find_pets_by_status(status, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[str] status: Status values that need to be considered for filter (required) :return: list[Pet] If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.find_pets_by_status_with_http_info(status, **kwargs) # noqa: E501 else: (data) = self.find_pets_by_status_with_http_info(status, **kwargs) # noqa: E501 @@ -258,11 +258,11 @@ def find_pets_by_status_with_http_info(self, status, **kwargs): # noqa: E501 Multiple status values can be provided with comma separated strings # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.find_pets_by_status_with_http_info(status, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.find_pets_by_status_with_http_info(status, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[str] status: Status values that need to be considered for filter (required) :return: list[Pet] If the method is called asynchronously, @@ -270,7 +270,7 @@ def find_pets_by_status_with_http_info(self, status, **kwargs): # noqa: E501 """ all_params = ['status'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -321,7 +321,7 @@ def find_pets_by_status_with_http_info(self, status, **kwargs): # noqa: E501 files=local_var_files, response_type='list[Pet]', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -332,18 +332,18 @@ def find_pets_by_tags(self, tags, **kwargs): # noqa: E501 Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.find_pets_by_tags(tags, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.find_pets_by_tags(tags, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[str] tags: Tags to filter by (required) :return: list[Pet] If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.find_pets_by_tags_with_http_info(tags, **kwargs) # noqa: E501 else: (data) = self.find_pets_by_tags_with_http_info(tags, **kwargs) # noqa: E501 @@ -354,11 +354,11 @@ def find_pets_by_tags_with_http_info(self, tags, **kwargs): # noqa: E501 Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.find_pets_by_tags_with_http_info(tags, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.find_pets_by_tags_with_http_info(tags, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[str] tags: Tags to filter by (required) :return: list[Pet] If the method is called asynchronously, @@ -366,7 +366,7 @@ def find_pets_by_tags_with_http_info(self, tags, **kwargs): # noqa: E501 """ all_params = ['tags'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -417,7 +417,7 @@ def find_pets_by_tags_with_http_info(self, tags, **kwargs): # noqa: E501 files=local_var_files, response_type='list[Pet]', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -428,18 +428,18 @@ def get_pet_by_id(self, pet_id, **kwargs): # noqa: E501 Returns a single pet # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_pet_by_id(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_pet_by_id(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: ID of pet to return (required) :return: Pet If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.get_pet_by_id_with_http_info(pet_id, **kwargs) # noqa: E501 else: (data) = self.get_pet_by_id_with_http_info(pet_id, **kwargs) # noqa: E501 @@ -450,11 +450,11 @@ def get_pet_by_id_with_http_info(self, pet_id, **kwargs): # noqa: E501 Returns a single pet # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_pet_by_id_with_http_info(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_pet_by_id_with_http_info(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: ID of pet to return (required) :return: Pet If the method is called asynchronously, @@ -462,7 +462,7 @@ def get_pet_by_id_with_http_info(self, pet_id, **kwargs): # noqa: E501 """ all_params = ['pet_id'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -512,7 +512,7 @@ def get_pet_by_id_with_http_info(self, pet_id, **kwargs): # noqa: E501 files=local_var_files, response_type='Pet', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -523,18 +523,18 @@ def update_pet(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.update_pet(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_pet(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Pet body: Pet object that needs to be added to the store (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.update_pet_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.update_pet_with_http_info(body, **kwargs) # noqa: E501 @@ -545,11 +545,11 @@ def update_pet_with_http_info(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.update_pet_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_pet_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Pet body: Pet object that needs to be added to the store (required) :return: None If the method is called asynchronously, @@ -557,7 +557,7 @@ def update_pet_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -611,7 +611,7 @@ def update_pet_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -622,11 +622,11 @@ def update_pet_with_form(self, pet_id, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.update_pet_with_form(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_pet_with_form(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: ID of pet that needs to be updated (required) :param str name: Updated name of the pet :param str status: Updated status of the pet @@ -635,7 +635,7 @@ def update_pet_with_form(self, pet_id, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.update_pet_with_form_with_http_info(pet_id, **kwargs) # noqa: E501 else: (data) = self.update_pet_with_form_with_http_info(pet_id, **kwargs) # noqa: E501 @@ -646,11 +646,11 @@ def update_pet_with_form_with_http_info(self, pet_id, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.update_pet_with_form_with_http_info(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_pet_with_form_with_http_info(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: ID of pet that needs to be updated (required) :param str name: Updated name of the pet :param str status: Updated status of the pet @@ -660,7 +660,7 @@ def update_pet_with_form_with_http_info(self, pet_id, **kwargs): # noqa: E501 """ all_params = ['pet_id', 'name', 'status'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -718,7 +718,7 @@ def update_pet_with_form_with_http_info(self, pet_id, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -729,11 +729,11 @@ def upload_file(self, pet_id, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.upload_file(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.upload_file(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: ID of pet to update (required) :param str additional_metadata: Additional data to pass to server :param file file: file to upload @@ -742,7 +742,7 @@ def upload_file(self, pet_id, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.upload_file_with_http_info(pet_id, **kwargs) # noqa: E501 else: (data) = self.upload_file_with_http_info(pet_id, **kwargs) # noqa: E501 @@ -753,11 +753,11 @@ def upload_file_with_http_info(self, pet_id, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.upload_file_with_http_info(pet_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.upload_file_with_http_info(pet_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int pet_id: ID of pet to update (required) :param str additional_metadata: Additional data to pass to server :param file file: file to upload @@ -767,7 +767,7 @@ def upload_file_with_http_info(self, pet_id, **kwargs): # noqa: E501 """ all_params = ['pet_id', 'additional_metadata', 'file'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -825,7 +825,7 @@ def upload_file_with_http_info(self, pet_id, **kwargs): # noqa: E501 files=local_var_files, response_type='ApiResponse', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), diff --git a/samples/client/petstore/python/petstore_api/api/store_api.py b/samples/client/petstore/python/petstore_api/api/store_api.py index ebb9a4eb27a4..27e1f7701922 100644 --- a/samples/client/petstore/python/petstore_api/api/store_api.py +++ b/samples/client/petstore/python/petstore_api/api/store_api.py @@ -38,18 +38,18 @@ def delete_order(self, order_id, **kwargs): # noqa: E501 For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.delete_order(order_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.delete_order(order_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str order_id: ID of the order that needs to be deleted (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.delete_order_with_http_info(order_id, **kwargs) # noqa: E501 else: (data) = self.delete_order_with_http_info(order_id, **kwargs) # noqa: E501 @@ -60,11 +60,11 @@ def delete_order_with_http_info(self, order_id, **kwargs): # noqa: E501 For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.delete_order_with_http_info(order_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.delete_order_with_http_info(order_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str order_id: ID of the order that needs to be deleted (required) :return: None If the method is called asynchronously, @@ -72,7 +72,7 @@ def delete_order_with_http_info(self, order_id, **kwargs): # noqa: E501 """ all_params = ['order_id'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -122,7 +122,7 @@ def delete_order_with_http_info(self, order_id, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -133,17 +133,17 @@ def get_inventory(self, **kwargs): # noqa: E501 Returns a map of status codes to quantities # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_inventory(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_inventory(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :return: dict(str, int) If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.get_inventory_with_http_info(**kwargs) # noqa: E501 else: (data) = self.get_inventory_with_http_info(**kwargs) # noqa: E501 @@ -154,18 +154,18 @@ def get_inventory_with_http_info(self, **kwargs): # noqa: E501 Returns a map of status codes to quantities # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_inventory_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_inventory_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :return: dict(str, int) If the method is called asynchronously, returns the request thread. """ all_params = [] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -209,7 +209,7 @@ def get_inventory_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type='dict(str, int)', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -220,18 +220,18 @@ def get_order_by_id(self, order_id, **kwargs): # noqa: E501 For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_order_by_id(order_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_order_by_id(order_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int order_id: ID of pet that needs to be fetched (required) :return: Order If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.get_order_by_id_with_http_info(order_id, **kwargs) # noqa: E501 else: (data) = self.get_order_by_id_with_http_info(order_id, **kwargs) # noqa: E501 @@ -242,11 +242,11 @@ def get_order_by_id_with_http_info(self, order_id, **kwargs): # noqa: E501 For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_order_by_id_with_http_info(order_id, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_order_by_id_with_http_info(order_id, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param int order_id: ID of pet that needs to be fetched (required) :return: Order If the method is called asynchronously, @@ -254,7 +254,7 @@ def get_order_by_id_with_http_info(self, order_id, **kwargs): # noqa: E501 """ all_params = ['order_id'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -308,7 +308,7 @@ def get_order_by_id_with_http_info(self, order_id, **kwargs): # noqa: E501 files=local_var_files, response_type='Order', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -319,18 +319,18 @@ def place_order(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.place_order(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.place_order(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Order body: order placed for purchasing the pet (required) :return: Order If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.place_order_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.place_order_with_http_info(body, **kwargs) # noqa: E501 @@ -341,11 +341,11 @@ def place_order_with_http_info(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.place_order_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.place_order_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param Order body: order placed for purchasing the pet (required) :return: Order If the method is called asynchronously, @@ -353,7 +353,7 @@ def place_order_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -403,7 +403,7 @@ def place_order_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type='Order', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), diff --git a/samples/client/petstore/python/petstore_api/api/user_api.py b/samples/client/petstore/python/petstore_api/api/user_api.py index 1de89f28bb0e..62a87f2e4189 100644 --- a/samples/client/petstore/python/petstore_api/api/user_api.py +++ b/samples/client/petstore/python/petstore_api/api/user_api.py @@ -38,18 +38,18 @@ def create_user(self, body, **kwargs): # noqa: E501 This can only be done by the logged in user. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.create_user(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.create_user(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param User body: Created user object (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.create_user_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.create_user_with_http_info(body, **kwargs) # noqa: E501 @@ -60,11 +60,11 @@ def create_user_with_http_info(self, body, **kwargs): # noqa: E501 This can only be done by the logged in user. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.create_user_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.create_user_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param User body: Created user object (required) :return: None If the method is called asynchronously, @@ -72,7 +72,7 @@ def create_user_with_http_info(self, body, **kwargs): # noqa: E501 """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -122,7 +122,7 @@ def create_user_with_http_info(self, body, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -133,18 +133,18 @@ def create_users_with_array_input(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.create_users_with_array_input(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.create_users_with_array_input(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[User] body: List of user object (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.create_users_with_array_input_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.create_users_with_array_input_with_http_info(body, **kwargs) # noqa: E501 @@ -155,11 +155,11 @@ def create_users_with_array_input_with_http_info(self, body, **kwargs): # noqa: # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.create_users_with_array_input_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.create_users_with_array_input_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[User] body: List of user object (required) :return: None If the method is called asynchronously, @@ -167,7 +167,7 @@ def create_users_with_array_input_with_http_info(self, body, **kwargs): # noqa: """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -217,7 +217,7 @@ def create_users_with_array_input_with_http_info(self, body, **kwargs): # noqa: files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -228,18 +228,18 @@ def create_users_with_list_input(self, body, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.create_users_with_list_input(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.create_users_with_list_input(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[User] body: List of user object (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.create_users_with_list_input_with_http_info(body, **kwargs) # noqa: E501 else: (data) = self.create_users_with_list_input_with_http_info(body, **kwargs) # noqa: E501 @@ -250,11 +250,11 @@ def create_users_with_list_input_with_http_info(self, body, **kwargs): # noqa: # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.create_users_with_list_input_with_http_info(body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.create_users_with_list_input_with_http_info(body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param list[User] body: List of user object (required) :return: None If the method is called asynchronously, @@ -262,7 +262,7 @@ def create_users_with_list_input_with_http_info(self, body, **kwargs): # noqa: """ all_params = ['body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -312,7 +312,7 @@ def create_users_with_list_input_with_http_info(self, body, **kwargs): # noqa: files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -323,18 +323,18 @@ def delete_user(self, username, **kwargs): # noqa: E501 This can only be done by the logged in user. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.delete_user(username, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.delete_user(username, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: The name that needs to be deleted (required) :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.delete_user_with_http_info(username, **kwargs) # noqa: E501 else: (data) = self.delete_user_with_http_info(username, **kwargs) # noqa: E501 @@ -345,11 +345,11 @@ def delete_user_with_http_info(self, username, **kwargs): # noqa: E501 This can only be done by the logged in user. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.delete_user_with_http_info(username, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.delete_user_with_http_info(username, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: The name that needs to be deleted (required) :return: None If the method is called asynchronously, @@ -357,7 +357,7 @@ def delete_user_with_http_info(self, username, **kwargs): # noqa: E501 """ all_params = ['username'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -407,7 +407,7 @@ def delete_user_with_http_info(self, username, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -418,18 +418,18 @@ def get_user_by_name(self, username, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_user_by_name(username, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_user_by_name(username, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: The name that needs to be fetched. Use user1 for testing. (required) :return: User If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.get_user_by_name_with_http_info(username, **kwargs) # noqa: E501 else: (data) = self.get_user_by_name_with_http_info(username, **kwargs) # noqa: E501 @@ -440,11 +440,11 @@ def get_user_by_name_with_http_info(self, username, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.get_user_by_name_with_http_info(username, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_user_by_name_with_http_info(username, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: The name that needs to be fetched. Use user1 for testing. (required) :return: User If the method is called asynchronously, @@ -452,7 +452,7 @@ def get_user_by_name_with_http_info(self, username, **kwargs): # noqa: E501 """ all_params = ['username'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -502,7 +502,7 @@ def get_user_by_name_with_http_info(self, username, **kwargs): # noqa: E501 files=local_var_files, response_type='User', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -513,11 +513,11 @@ def login_user(self, username, password, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.login_user(username, password, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.login_user(username, password, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: The user name for login (required) :param str password: The password for login in clear text (required) :return: str @@ -525,7 +525,7 @@ def login_user(self, username, password, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.login_user_with_http_info(username, password, **kwargs) # noqa: E501 else: (data) = self.login_user_with_http_info(username, password, **kwargs) # noqa: E501 @@ -536,11 +536,11 @@ def login_user_with_http_info(self, username, password, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.login_user_with_http_info(username, password, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.login_user_with_http_info(username, password, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: The user name for login (required) :param str password: The password for login in clear text (required) :return: str @@ -549,7 +549,7 @@ def login_user_with_http_info(self, username, password, **kwargs): # noqa: E501 """ all_params = ['username', 'password'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -605,7 +605,7 @@ def login_user_with_http_info(self, username, password, **kwargs): # noqa: E501 files=local_var_files, response_type='str', # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -616,17 +616,17 @@ def logout_user(self, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.logout_user(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.logout_user(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :return: None If the method is called asynchronously, returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.logout_user_with_http_info(**kwargs) # noqa: E501 else: (data) = self.logout_user_with_http_info(**kwargs) # noqa: E501 @@ -637,18 +637,18 @@ def logout_user_with_http_info(self, **kwargs): # noqa: E501 # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.logout_user_with_http_info(async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.logout_user_with_http_info(async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :return: None If the method is called asynchronously, returns the request thread. """ all_params = [] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -692,7 +692,7 @@ def logout_user_with_http_info(self, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), @@ -703,11 +703,11 @@ def update_user(self, username, body, **kwargs): # noqa: E501 This can only be done by the logged in user. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.update_user(username, body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_user(username, body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: name that need to be deleted (required) :param User body: Updated user object (required) :return: None @@ -715,7 +715,7 @@ def update_user(self, username, body, **kwargs): # noqa: E501 returns the request thread. """ kwargs['_return_http_data_only'] = True - if kwargs.get('async'): + if kwargs.get('async_req'): return self.update_user_with_http_info(username, body, **kwargs) # noqa: E501 else: (data) = self.update_user_with_http_info(username, body, **kwargs) # noqa: E501 @@ -726,11 +726,11 @@ def update_user_with_http_info(self, username, body, **kwargs): # noqa: E501 This can only be done by the logged in user. # noqa: E501 This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async=True - >>> thread = api.update_user_with_http_info(username, body, async=True) + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_user_with_http_info(username, body, async_req=True) >>> result = thread.get() - :param async bool + :param async_req bool :param str username: name that need to be deleted (required) :param User body: Updated user object (required) :return: None @@ -739,7 +739,7 @@ def update_user_with_http_info(self, username, body, **kwargs): # noqa: E501 """ all_params = ['username', 'body'] # noqa: E501 - all_params.append('async') + all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') @@ -795,7 +795,7 @@ def update_user_with_http_info(self, username, body, **kwargs): # noqa: E501 files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, - async=params.get('async'), + async_req=params.get('async_req'), _return_http_data_only=params.get('_return_http_data_only'), _preload_content=params.get('_preload_content', True), _request_timeout=params.get('_request_timeout'), diff --git a/samples/client/petstore/python/petstore_api/api_client.py b/samples/client/petstore/python/petstore_api/api_client.py index 46dad4e14a74..aef006d39b1e 100644 --- a/samples/client/petstore/python/petstore_api/api_client.py +++ b/samples/client/petstore/python/petstore_api/api_client.py @@ -260,12 +260,12 @@ def __deserialize(self, data, klass): if type(klass) == str: if klass.startswith('list['): - sub_kls = re.match('list\[(.*)\]', klass).group(1) + sub_kls = re.match(r'list\[(.*)\]', klass).group(1) return [self.__deserialize(sub_data, sub_kls) for sub_data in data] if klass.startswith('dict('): - sub_kls = re.match('dict\(([^,]*), (.*)\)', klass).group(2) + sub_kls = re.match(r'dict\(([^,]*), (.*)\)', klass).group(2) return {k: self.__deserialize(v, sub_kls) for k, v in six.iteritems(data)} @@ -289,12 +289,12 @@ def __deserialize(self, data, klass): def call_api(self, resource_path, method, path_params=None, query_params=None, header_params=None, body=None, post_params=None, files=None, - response_type=None, auth_settings=None, async=None, + response_type=None, auth_settings=None, async_req=None, _return_http_data_only=None, collection_formats=None, _preload_content=True, _request_timeout=None): """Makes the HTTP request (synchronous) and returns deserialized data. - To make an async request, set the async parameter. + To make an async request, set the async_req parameter. :param resource_path: Path to method endpoint. :param method: Method to call. @@ -309,7 +309,7 @@ def call_api(self, resource_path, method, :param response: Response data type. :param files dict: key -> filename, value -> filepath, for `multipart/form-data`. - :param async bool: execute request asynchronously + :param async_req bool: execute request asynchronously :param _return_http_data_only: response data without head status code and headers :param collection_formats: dict of collection formats for path, query, @@ -322,13 +322,13 @@ def call_api(self, resource_path, method, timeout. It can also be a pair (tuple) of (connection, read) timeouts. :return: - If async parameter is True, + If async_req parameter is True, the request will be called asynchronously. The method will return the request thread. - If parameter async is False or missing, + If parameter async_req is False or missing, then the method will return the response directly. """ - if not async: + if not async_req: return self.__call_api(resource_path, method, path_params, query_params, header_params, body, post_params, files, diff --git a/samples/client/petstore/python/petstore_api/models/format_test.py b/samples/client/petstore/python/petstore_api/models/format_test.py index 9e7afc44b18e..206b991719d9 100644 --- a/samples/client/petstore/python/petstore_api/models/format_test.py +++ b/samples/client/petstore/python/petstore_api/models/format_test.py @@ -269,8 +269,8 @@ def string(self, string): :param string: The string of this FormatTest. # noqa: E501 :type: str """ - if string is not None and not re.search('[a-z]', string, flags=re.IGNORECASE): # noqa: E501 - raise ValueError("Invalid value for `string`, must be a follow pattern or equal to `/[a-z]/i`") # noqa: E501 + if string is not None and not re.search(r'[a-z]', string, flags=re.IGNORECASE): # noqa: E501 + raise ValueError(r"Invalid value for `string`, must be a follow pattern or equal to `/[a-z]/i`") # noqa: E501 self._string = string @@ -294,8 +294,8 @@ def byte(self, byte): """ if byte is None: raise ValueError("Invalid value for `byte`, must not be `None`") # noqa: E501 - if byte is not None and not re.search('^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$', byte): # noqa: E501 - raise ValueError("Invalid value for `byte`, must be a follow pattern or equal to `/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/`") # noqa: E501 + if byte is not None and not re.search(r'^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$', byte): # noqa: E501 + raise ValueError(r"Invalid value for `byte`, must be a follow pattern or equal to `/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/`") # noqa: E501 self._byte = byte diff --git a/samples/client/petstore/python/tests/test_deserialization.py b/samples/client/petstore/python/tests/test_deserialization.py index 5057ab312f7c..d7429dea4164 100644 --- a/samples/client/petstore/python/tests/test_deserialization.py +++ b/samples/client/petstore/python/tests/test_deserialization.py @@ -27,7 +27,7 @@ def test_enum_test(self): data = { 'enum_test': { "enum_string": "UPPER", - "enum_string_required": "UPPER", + "enum_string_required": "lower", "enum_integer": 1, "enum_number": 1.1, "outerEnum": "placed" @@ -39,7 +39,7 @@ def test_enum_test(self): self.assertTrue(isinstance(deserialized['enum_test'], petstore_api.EnumTest)) self.assertEqual(deserialized['enum_test'], petstore_api.EnumTest(enum_string="UPPER", - enum_string_required="UPPER", + enum_string_required="lower", enum_integer=1, enum_number=1.1, outer_enum=petstore_api.OuterEnum.PLACED)) diff --git a/samples/client/petstore/python/tests/test_pet_api.py b/samples/client/petstore/python/tests/test_pet_api.py index f987f38eb8c1..aae22b4d438c 100644 --- a/samples/client/petstore/python/tests/test_pet_api.py +++ b/samples/client/petstore/python/tests/test_pet_api.py @@ -142,19 +142,19 @@ def test_separate_default_config_instances(self): self.assertNotEqual(pet_api.api_client.configuration.host, pet_api2.api_client.configuration.host) def test_async_request(self): - thread = self.pet_api.add_pet(body=self.pet, async=True) + thread = self.pet_api.add_pet(body=self.pet, async_req=True) response = thread.get() self.assertIsNone(response) - thread = self.pet_api.get_pet_by_id(self.pet.id, async=True) + thread = self.pet_api.get_pet_by_id(self.pet.id, async_req=True) result = thread.get() self.assertIsInstance(result, petstore_api.Pet) def test_async_with_result(self): - self.pet_api.add_pet(body=self.pet, async=False) + self.pet_api.add_pet(body=self.pet, async_req=False) - thread = self.pet_api.get_pet_by_id(self.pet.id, async=True) - thread2 = self.pet_api.get_pet_by_id(self.pet.id, async=True) + thread = self.pet_api.get_pet_by_id(self.pet.id, async_req=True) + thread2 = self.pet_api.get_pet_by_id(self.pet.id, async_req=True) response = thread.get() response2 = thread2.get() @@ -165,7 +165,7 @@ def test_async_with_result(self): def test_async_with_http_info(self): self.pet_api.add_pet(body=self.pet) - thread = self.pet_api.get_pet_by_id_with_http_info(self.pet.id, async=True) + thread = self.pet_api.get_pet_by_id_with_http_info(self.pet.id, async_req=True) data, status, headers = thread.get() self.assertIsInstance(data, petstore_api.Pet) @@ -174,7 +174,7 @@ def test_async_with_http_info(self): def test_async_exception(self): self.pet_api.add_pet(body=self.pet) - thread = self.pet_api.get_pet_by_id("-9999999999999", async=True) + thread = self.pet_api.get_pet_by_id("-9999999999999", async_req=True) exception = None try: diff --git a/samples/html2/.swagger-codegen/VERSION b/samples/html2/.swagger-codegen/VERSION index f9f7450d1359..855ff9501eb8 100644 --- a/samples/html2/.swagger-codegen/VERSION +++ b/samples/html2/.swagger-codegen/VERSION @@ -1 +1 @@ -2.3.0-SNAPSHOT \ No newline at end of file +2.4.0-SNAPSHOT \ No newline at end of file diff --git a/samples/html2/index.html b/samples/html2/index.html index 1cfa1180b4a7..7d56c84c6d82 100644 --- a/samples/html2/index.html +++ b/samples/html2/index.html @@ -2,7 +2,7 @@ - Swagger Petstore + gpi API @@ -63,6 +63,7 @@ */ (function(){var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,"gm")(/bull/g,block.bullet)();block.list=replace(block.list)(/bull/g,block.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+block.def.source+")")();block.blockquote=replace(block.blockquote)("def",block.def)();block._tag="(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code"+"|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo"+"|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b";block.html=replace(block.html)("comment",//)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/])*?>/)(/tag/g,block._tag)();block.paragraph=replace(block.paragraph)("hr",block.hr)("heading",block.heading)("lheading",block.lheading)("blockquote",block.blockquote)("tag","<"+block._tag)("def",block.def)();block.normal=merge({},block);block.gfm=merge({},block.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/});block.gfm.paragraph=replace(block.paragraph)("(?!","(?!"+block.gfm.fences.source.replace("\\1","\\2")+"|"+block.list.source.replace("\\1","\\3")+"|")();block.tables=merge({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/});function Lexer(options){this.tokens=[];this.tokens.links={};this.options=options||marked.defaults;this.rules=block.normal;if(this.options.gfm){if(this.options.tables){this.rules=block.tables}else{this.rules=block.gfm}}}Lexer.rules=block;Lexer.lex=function(src,options){var lexer=new Lexer(options);return lexer.lex(src)};Lexer.prototype.lex=function(src){src=src.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");return this.token(src,true)};Lexer.prototype.token=function(src,top,bq){var src=src.replace(/^ +$/gm,""),next,loose,cap,bull,b,item,space,i,l;while(src){if(cap=this.rules.newline.exec(src)){src=src.substring(cap[0].length);if(cap[0].length>1){this.tokens.push({type:"space"})}}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);cap=cap[0].replace(/^ {4}/gm,"");this.tokens.push({type:"code",text:!this.options.pedantic?cap.replace(/\n+$/,""):cap});continue}if(cap=this.rules.fences.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"code",lang:cap[2],text:cap[3]||""});continue}if(cap=this.rules.heading.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[1].length,text:cap[2]});continue}if(top&&(cap=this.rules.nptable.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/\n$/,"").split("\n")};for(i=0;i ?/gm,"");this.token(cap,top,true);this.tokens.push({type:"blockquote_end"});continue}if(cap=this.rules.list.exec(src)){src=src.substring(cap[0].length);bull=cap[2];this.tokens.push({type:"list_start",ordered:bull.length>1});cap=cap[0].match(this.rules.item);next=false;l=cap.length;i=0;for(;i1&&b.length>1)){src=cap.slice(i+1).join("\n")+src;i=l-1}}loose=next||/\n\n(?!\s*$)/.test(item);if(i!==l-1){next=item.charAt(item.length-1)==="\n";if(!loose)loose=next}this.tokens.push({type:loose?"loose_item_start":"list_item_start"});this.token(item,false,bq);this.tokens.push({type:"list_item_end"})}this.tokens.push({type:"list_end"});continue}if(cap=this.rules.html.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&(cap[1]==="pre"||cap[1]==="script"||cap[1]==="style"),text:cap[0]});continue}if(!bq&&top&&(cap=this.rules.def.exec(src))){src=src.substring(cap[0].length);this.tokens.links[cap[1].toLowerCase()]={href:cap[2],title:cap[3]};continue}if(top&&(cap=this.rules.table.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/(?: *\| *)?\n$/,"").split("\n")};for(i=0;i])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/;inline.link=replace(inline.link)("inside",inline._inside)("href",inline._href)();inline.reflink=replace(inline.reflink)("inside",inline._inside)();inline.normal=merge({},inline);inline.pedantic=merge({},inline.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});inline.gfm=merge({},inline.normal,{escape:replace(inline.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(inline.text)("]|","~]|")("|","|https?://|")()});inline.breaks=merge({},inline.gfm,{br:replace(inline.br)("{2,}","*")(),text:replace(inline.gfm.text)("{2,}","*")()});function InlineLexer(links,options){this.options=options||marked.defaults;this.links=links;this.rules=inline.normal;this.renderer=this.options.renderer||new Renderer;this.renderer.options=this.options;if(!this.links){throw new Error("Tokens array requires a `links` property.")}if(this.options.gfm){if(this.options.breaks){this.rules=inline.breaks}else{this.rules=inline.gfm}}else if(this.options.pedantic){this.rules=inline.pedantic}}InlineLexer.rules=inline;InlineLexer.output=function(src,links,options){var inline=new InlineLexer(links,options);return inline.output(src)};InlineLexer.prototype.output=function(src){var out="",link,text,href,cap;while(src){if(cap=this.rules.escape.exec(src)){src=src.substring(cap[0].length);out+=cap[1];continue}if(cap=this.rules.autolink.exec(src)){src=src.substring(cap[0].length);if(cap[2]==="@"){text=cap[1].charAt(6)===":"?this.mangle(cap[1].substring(7)):this.mangle(cap[1]);href=this.mangle("mailto:")+text}else{text=escape(cap[1]);href=text}out+=this.renderer.link(href,null,text);continue}if(!this.inLink&&(cap=this.rules.url.exec(src))){src=src.substring(cap[0].length);text=escape(cap[1]);href=text;out+=this.renderer.link(href,null,text);continue}if(cap=this.rules.tag.exec(src)){if(!this.inLink&&/^/i.test(cap[0])){this.inLink=false}src=src.substring(cap[0].length);out+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(cap[0]):escape(cap[0]):cap[0];continue}if(cap=this.rules.link.exec(src)){src=src.substring(cap[0].length);this.inLink=true;out+=this.outputLink(cap,{href:cap[2],title:cap[3]});this.inLink=false;continue}if((cap=this.rules.reflink.exec(src))||(cap=this.rules.nolink.exec(src))){src=src.substring(cap[0].length);link=(cap[2]||cap[1]).replace(/\s+/g," ");link=this.links[link.toLowerCase()];if(!link||!link.href){out+=cap[0].charAt(0);src=cap[0].substring(1)+src;continue}this.inLink=true;out+=this.outputLink(cap,link);this.inLink=false;continue}if(cap=this.rules.strong.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.strong(this.output(cap[2]||cap[1]));continue}if(cap=this.rules.em.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.em(this.output(cap[2]||cap[1]));continue}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.codespan(escape(cap[2],true));continue}if(cap=this.rules.br.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.br();continue}if(cap=this.rules.del.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.del(this.output(cap[1]));continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.text(escape(this.smartypants(cap[0])));continue}if(src){throw new Error("Infinite loop on byte: "+src.charCodeAt(0))}}return out};InlineLexer.prototype.outputLink=function(cap,link){var href=escape(link.href),title=link.title?escape(link.title):null;return cap[0].charAt(0)!=="!"?this.renderer.link(href,title,this.output(cap[1])):this.renderer.image(href,title,escape(cap[1]))};InlineLexer.prototype.smartypants=function(text){if(!this.options.smartypants)return text;return text.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")};InlineLexer.prototype.mangle=function(text){if(!this.options.mangle)return text;var out="",l=text.length,i=0,ch;for(;i.5){ch="x"+ch.toString(16)}out+="&#"+ch+";"}return out};function Renderer(options){this.options=options||{}}Renderer.prototype.code=function(code,lang,escaped){if(this.options.highlight){var out=this.options.highlight(code,lang);if(out!=null&&out!==code){escaped=true;code=out}}if(!lang){return"
"+(escaped?code:escape(code,true))+"\n
"}return'
'+(escaped?code:escape(code,true))+"\n
\n"};Renderer.prototype.blockquote=function(quote){return"
\n"+quote+"
\n"};Renderer.prototype.html=function(html){return html};Renderer.prototype.heading=function(text,level,raw){return"'+text+"\n"};Renderer.prototype.hr=function(){return this.options.xhtml?"
\n":"
\n"};Renderer.prototype.list=function(body,ordered){var type=ordered?"ol":"ul";return"<"+type+">\n"+body+"\n"};Renderer.prototype.listitem=function(text){return"
  • "+text+"
  • \n"};Renderer.prototype.paragraph=function(text){return"

    "+text+"

    \n"};Renderer.prototype.table=function(header,body){return"\n"+"\n"+header+"\n"+"\n"+body+"\n"+"
    \n"};Renderer.prototype.tablerow=function(content){return"\n"+content+"\n"};Renderer.prototype.tablecell=function(content,flags){var type=flags.header?"th":"td";var tag=flags.align?"<"+type+' style="text-align:'+flags.align+'">':"<"+type+">";return tag+content+"\n"};Renderer.prototype.strong=function(text){return""+text+""};Renderer.prototype.em=function(text){return""+text+""};Renderer.prototype.codespan=function(text){return""+text+""};Renderer.prototype.br=function(){return this.options.xhtml?"
    ":"
    "};Renderer.prototype.del=function(text){return""+text+""};Renderer.prototype.link=function(href,title,text){if(this.options.sanitize){try{var prot=decodeURIComponent(unescape(href)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return""}if(prot.indexOf("javascript:")===0||prot.indexOf("vbscript:")===0){return""}}var out='
    ";return out};Renderer.prototype.image=function(href,title,text){var out=''+text+'":">";return out};Renderer.prototype.text=function(text){return text};function Parser(options){this.tokens=[];this.token=null;this.options=options||marked.defaults;this.options.renderer=this.options.renderer||new Renderer;this.renderer=this.options.renderer;this.renderer.options=this.options}Parser.parse=function(src,options,renderer){var parser=new Parser(options,renderer);return parser.parse(src)};Parser.prototype.parse=function(src){this.inline=new InlineLexer(src.links,this.options,this.renderer);this.tokens=src.reverse();var out="";while(this.next()){out+=this.tok()}return out};Parser.prototype.next=function(){return this.token=this.tokens.pop()};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0};Parser.prototype.parseText=function(){var body=this.token.text;while(this.peek().type==="text"){body+="\n"+this.next().text}return this.inline.output(body)};Parser.prototype.tok=function(){switch(this.token.type){case"space":{return""}case"hr":{return this.renderer.hr()}case"heading":{return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text)}case"code":{return this.renderer.code(this.token.text,this.token.lang,this.token.escaped)}case"table":{var header="",body="",i,row,cell,flags,j;cell="";for(i=0;i/g,">").replace(/"/g,""").replace(/'/g,"'")}function unescape(html){return html.replace(/&([#\w]+);/g,function(_,n){n=n.toLowerCase();if(n==="colon")return":";if(n.charAt(0)==="#"){return n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1))}return""})}function replace(regex,opt){regex=regex.source;opt=opt||"";return function self(name,val){if(!name)return new RegExp(regex,opt);val=val.source||val;val=val.replace(/(^|[^\[])\^/g,"$1");regex=regex.replace(name,val);return self}}function noop(){}noop.exec=noop;function merge(obj){var i=1,target,key;for(;iAn error occurred:

    "+escape(e.message+"",true)+"
    "}throw e}}marked.options=marked.setOptions=function(opt){merge(marked.defaults,opt);return marked};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,sanitizer:null,mangle:true,smartLists:false,silent:false,highlight:null,langPrefix:"lang-",smartypants:false,headerPrefix:"",renderer:new Renderer,xhtml:false};marked.Parser=Parser;marked.parser=Parser.parse;marked.Renderer=Renderer;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;marked.parse=marked;if(typeof module!=="undefined"&&typeof exports==="object"){module.exports=marked}else if(typeof define==="function"&&define.amd){define(function(){return marked})}else{this.marked=marked}}).call(function(){return this||(typeof window!=="undefined"?window:global)}()); + - -
    -
    - -
    -
    -
    -

    Swagger Petstore

    -
    -
    -
    - -
    -
    -

    Pet

    -
    -
    -
    -

    addPet

    -

    Add a new pet to the store

    -
    -
    -
    -

    -

    -

    -
    -
    /pet
    -

    -

    Usage and SDK Samples

    -

    - - -
    -
    -
    curl -X POST "http://petstore.swagger.io/v2/pet"
    -
    -
    -
    import io.swagger.client.*;
    -import io.swagger.client.auth.*;
    -import io.swagger.client.model.*;
    -import io.swagger.client.api.PetApi;
    -
    -import java.io.File;
    -import java.util.*;
    -
    -public class PetApiExample {
    -
    -    public static void main(String[] args) {
    -        ApiClient defaultClient = Configuration.getDefaultApiClient();
    -        
    -        // Configure OAuth2 access token for authorization: petstore_auth
    -        OAuth petstore_auth = (OAuth) defaultClient.getAuthentication("petstore_auth");
    -        petstore_auth.setAccessToken("YOUR ACCESS TOKEN");
    -
    -        PetApi apiInstance = new PetApi();
    -        Pet body = ; // Pet | Pet object that needs to be added to the store
    -        try {
    -            apiInstance.addPet(body);
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling PetApi#addPet");
    -            e.printStackTrace();
    -        }
    +        defs["GetPaymentTransactionDetailsRequest"] = {
    +  "type" : "object",
    +  "required" : [ "my_institution", "uetr" ],
    +  "properties" : {
    +    "my_institution" : {
    +      "type" : "array",
    +      "description" : "Specifies the institution which payments are requested.",
    +      "items" : {
    +        "$ref" : "#/definitions/AnyBICIdentifier"
    +      },
    +      "maxItems" : 250
    +    },
    +    "uetr" : {
    +      "description" : "Contains the unique end to end transaction reference (UETR) of a payment.",
    +      "$ref" : "#/definitions/UUIDv4Identifier"
         }
    -}
    -
    - -
    -
    import io.swagger.client.api.PetApi;
    -
    -public class PetApiExample {
    -
    -    public static void main(String[] args) {
    -        PetApi apiInstance = new PetApi();
    -        Pet body = ; // Pet | Pet object that needs to be added to the store
    -        try {
    -            apiInstance.addPet(body);
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling PetApi#addPet");
    -            e.printStackTrace();
    -        }
    +  },
    +  "description" : "This API is a payment query to get detailed information regarding a given payment transaction. It requires the UETR to be known.\r\nExamples of use cases are:\r\n•\tDebtor status check - debtor's agent or debtor wants to see the status\r\n•\tCreditor status check - creditor's agent or creditor wants to see the status\r\n"
    +};
    +        defs["GetPaymentTransactionDetailsResponse"] = {
    +  "type" : "object",
    +  "required" : [ "initiation_time", "last_update_time", "transaction_status", "uetr" ],
    +  "properties" : {
    +    "uetr" : {
    +      "description" : "Contains the unique end to end transaction reference of a payment.",
    +      "$ref" : "#/definitions/UUIDv4Identifier"
    +    },
    +    "transaction_status" : {
    +      "description" : "Specifies the status of a transaction, in a coded form.",
    +      "$ref" : "#/definitions/PaymentStatus3"
    +    },
    +    "cancellation_status" : {
    +      "$ref" : "#/definitions/PaymentTransactionCancellationStatus1"
    +    },
    +    "initiation_time" : {
    +      "description" : "Date and Time at which the message enters the tracking system (e.g. gpi).",
    +      "$ref" : "#/definitions/ISODateTime"
    +    },
    +    "completion_time" : {
    +      "description" : "Time at which the Instructed Bank reports that the transaction has been completed. \r\nDate and time based on the creation date of the status confirmation containing a final status ACSC",
    +      "$ref" : "#/definitions/ISODateTime"
    +    },
    +    "last_update_time" : {
    +      "description" : "Last date and time at which the status of this transaction was updated.",
    +      "$ref" : "#/definitions/ISODateTime"
    +    },
    +    "payment_event" : {
    +      "type" : "array",
    +      "description" : "This groups the information of an event, i.e., of a payment message or status confirmation update. It is repeated as many times as there are events to be returned.",
    +      "items" : {
    +        "$ref" : "#/definitions/PaymentEvent7"
    +      }
         }
    -}
    -
    - -
    -
    Configuration *apiConfig = [Configuration sharedConfig];
    -
    -// Configure OAuth2 access token for authorization: (authentication scheme: petstore_auth)
    -[apiConfig setAccessToken:@"YOUR_ACCESS_TOKEN"];
    -
    -Pet *body = ; // Pet object that needs to be added to the store
    -
    -PetApi *apiInstance = [[PetApi alloc] init];
    -
    -// Add a new pet to the store
    -[apiInstance addPetWith:body
    -              completionHandler: ^(NSError* error) {
    -                            if (error) {
    -                                NSLog(@"Error: %@", error);
    -                            }
    -                        }];
    -
    -
    - -
    -
    var SwaggerPetstore = require('swagger_petstore');
    -var defaultClient = SwaggerPetstore.ApiClient.instance;
    -
    -// Configure OAuth2 access token for authorization: petstore_auth
    -var petstore_auth = defaultClient.authentications['petstore_auth'];
    -petstore_auth.accessToken = "YOUR ACCESS TOKEN"
    -
    -var api = new SwaggerPetstore.PetApi()
    -
    -var body = ; // {Pet} Pet object that needs to be added to the store
    -
    -
    -var callback = function(error, data, response) {
    -  if (error) {
    -    console.error(error);
    -  } else {
    -    console.log('API called successfully.');
    -  }
    +  },
    +  "description" : "This API is the response to a payment query to get detailed information regarding a given payment transaction.\r\nExamples of use cases are:\r\n•\tDebtor status check - debtor's agent or debtor wants to see the status\r\n•\tCreditor status check - creditor's agent or creditor wants to see the status\r\n"
     };
    -api.addPet(body, callback);
    -
    -
    - - -
    -
    using System;
    -using System.Diagnostics;
    -using IO.Swagger.Api;
    -using IO.Swagger.Client;
    -using IO.Swagger.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 body = new Pet(); // Pet | Pet object that needs to be added to the store
    -
    -            try
    -            {
    -                // Add a new pet to the store
    -                apiInstance.addPet(body);
    -            }
    -            catch (Exception e)
    -            {
    -                Debug.Print("Exception when calling PetApi.addPet: " + e.Message );
    -            }
    -        }
    +        defs["GetPaymentTransactionsRequest"] = {
    +  "type" : "object",
    +  "required" : [ "event", "maximum_number", "my_institution", "payment_scenario_return_criteria", "time_window" ],
    +  "properties" : {
    +    "my_institution" : {
    +      "type" : "array",
    +      "description" : "Specifies an institution that is owned by the sender, for which the sender can ask payment transaction details.",
    +      "items" : {
    +        "$ref" : "#/definitions/AnyBICIdentifier"
    +      },
    +      "maxItems" : 250
    +    },
    +    "time_window" : {
    +      "description" : "Time window for this institution to which the search applies.",
    +      "$ref" : "#/definitions/DateTimePeriodDetails"
    +    },
    +    "payment_scenario_return_criteria" : {
    +      "description" : "Criteria that specify which payment scenario is to be returned by the search.",
    +      "$ref" : "#/definitions/PaymentScenario2Code"
    +    },
    +    "agent" : {
    +      "type" : "array",
    +      "description" : "Identifies agent(s) involved in a payment transaction.",
    +      "items" : {
    +        "$ref" : "#/definitions/AgentType1"
    +      }
    +    },
    +    "location" : {
    +      "description" : "Specifies the location of the search.",
    +      "$ref" : "#/definitions/Location1Code"
    +    },
    +    "instruction_identification" : {
    +      "description" : "Unique identification, as assigned by an instructing party for an instructed party, to unambiguously identify the instruction.\n\nUsage: The instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.",
    +      "$ref" : "#/definitions/Max35Text"
    +    },
    +    "transaction_status" : {
    +      "type" : "array",
    +      "description" : "Specifies the status of a transaction, in a coded form.",
    +      "items" : {
    +        "$ref" : "#/definitions/PaymentStatus3"
    +      }
    +    },
    +    "amount" : {
    +      "description" : "Specifies the amount range for a given currency and amount type.",
    +      "$ref" : "#/definitions/AmountType1"
    +    },
    +    "event" : {
    +      "description" : "Specifies one of the states of the payment transaction.",
    +      "$ref" : "#/definitions/PaymentTransactionState1Code"
    +    },
    +    "subject_to_cancellation_process_indicator" : {
    +      "description" : "Indicates whether only payment transactions under a past or present stop and recall process should be retrieved. \r\nAbsence means no.",
    +      "$ref" : "#/definitions/YesNoIndicator"
    +    },
    +    "maximum_number" : {
    +      "description" : "Indicates the maximum number of entries returned.",
    +      "$ref" : "#/definitions/Number"
    +    },
    +    "more" : {
    +      "description" : "Contains the token to get the next set of responses.",
    +      "$ref" : "#/definitions/Max350Text"
         }
    -}
    -
    -
    - -
    -
    <?php
    -require_once(__DIR__ . '/vendor/autoload.php');
    -
    -// Configure OAuth2 access token for authorization: petstore_auth
    -Swagger\Client\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');
    -
    -$api_instance = new Swagger\Client\Api\PetApi();
    -$body = ; // Pet | Pet object that needs to be added to the store
    -
    -try {
    -    $api_instance->addPet($body);
    -} catch (Exception $e) {
    -    echo 'Exception when calling PetApi->addPet: ', $e->getMessage(), PHP_EOL;
    -}
    -?>
    -
    - -
    -
    use Data::Dumper;
    -use WWW::SwaggerClient::Configuration;
    -use WWW::SwaggerClient::PetApi;
    -
    -# Configure OAuth2 access token for authorization: petstore_auth
    -$WWW::SwaggerClient::Configuration::access_token = 'YOUR_ACCESS_TOKEN';
    -
    -my $api_instance = WWW::SwaggerClient::PetApi->new();
    -my $body = WWW::SwaggerClient::Object::Pet->new(); # Pet | Pet object that needs to be added to the store
    -
    -eval { 
    -    $api_instance->addPet(body => $body);
    +  },
    +  "description" : "This API is a payment transaction search to get transaction-level information regarding all payments that match the search criteria. To have full information of a given payment transaction, the GetPaymentTransactionDetailsRequest can be used.\r\nExamples of use cases are:\r\n•\tInvestigation by a participating institution based on criteria given by a customer, such as instructed amount, time of initiation\r\n•\tFlow monitoring, for instance to find payments that are \"stuck\" for which the institution is the beneficiary institution\r\n•\tFeed a dashboard - give all payment transactions with their last status\r\n"
     };
    -if ($@) {
    -    warn "Exception when calling PetApi->addPet: $@\n";
    -}
    -
    - -
    -
    from __future__ import print_statement
    -import time
    -import swagger_client
    -from swagger_client.rest import ApiException
    -from pprint import pprint
    -
    -# Configure OAuth2 access token for authorization: petstore_auth
    -swagger_client.configuration.access_token = 'YOUR_ACCESS_TOKEN'
    -
    -# create an instance of the API class
    -api_instance = swagger_client.PetApi()
    -body =  # Pet | Pet object that needs to be added to the store
    -
    -try: 
    -    # Add a new pet to the store
    -    api_instance.add_pet(body)
    -except ApiException as e:
    -    print("Exception when calling PetApi->addPet: %s\n" % e)
    -
    -
    - -

    Parameters

    - - - -
    Body parameters
    - - - - - - - - - -
    NameDescription
    body * - - - -
    -
    - - - -

    Responses

    -

    Status: 405 - Invalid input

    - - - -
    -
    - -
    -
    -
    -
    -
    -
    -

    deletePet

    -

    Deletes a pet

    -
    -
    -
    -

    -

    -

    -
    -
    /pet/{petId}
    -

    -

    Usage and SDK Samples

    -

    - - -
    -
    -
    curl -X DELETE "http://petstore.swagger.io/v2/pet/{petId}"
    -
    -
    -
    import io.swagger.client.*;
    -import io.swagger.client.auth.*;
    -import io.swagger.client.model.*;
    -import io.swagger.client.api.PetApi;
    -
    -import java.io.File;
    -import java.util.*;
    -
    -public class PetApiExample {
    -
    -    public static void main(String[] args) {
    -        ApiClient defaultClient = Configuration.getDefaultApiClient();
    -        
    -        // Configure OAuth2 access token for authorization: petstore_auth
    -        OAuth petstore_auth = (OAuth) defaultClient.getAuthentication("petstore_auth");
    -        petstore_auth.setAccessToken("YOUR ACCESS TOKEN");
    -
    -        PetApi apiInstance = new PetApi();
    -        Long petId = 789; // Long | Pet id to delete
    -        String apiKey = apiKey_example; // String | 
    -        try {
    -            apiInstance.deletePet(petId, apiKey);
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling PetApi#deletePet");
    -            e.printStackTrace();
    -        }
    +        defs["Location1Code"] = {
    +  "type" : "string",
    +  "description" : "Specifies the location of the search",
    +  "enum" : [ "OTHR", "MYIN" ]
    +};
    +        defs["Max1850Text"] = {
    +  "type" : "string",
    +  "minLength" : 1,
    +  "maxLength" : 1850,
    +  "description" : "Specifies a character string with a maximum length of 1850 characters."
    +};
    +        defs["Max350Text"] = {
    +  "type" : "string",
    +  "minLength" : 1,
    +  "maxLength" : 350,
    +  "description" : "Specifies a character string with a maximum length of 350 characters."
    +};
    +        defs["Max35Text"] = {
    +  "type" : "string",
    +  "minLength" : 1,
    +  "maxLength" : 35,
    +  "description" : "Specifies a character string with a maximum length of 35 characters."
    +};
    +        defs["Max50Text"] = {
    +  "type" : "string",
    +  "minLength" : 1,
    +  "maxLength" : 50,
    +  "description" : "Specifies a character string with a maximum length of 50 characters."
    +};
    +        defs["Number"] = {
    +  "type" : "string",
    +  "maxLength" : 19,
    +  "description" : "Number of objects represented as an integer."
    +};
    +        defs["PaymentCancellationRejection3Code"] = {
    +  "type" : "string",
    +  "description" : "Returned when a request for cancellation cannot be executed.",
    +  "enum" : [ "AGNT", "ARDT", "INDM", "AC04", "CUST", "AM04", "LEGL", "NOAS", "NOOR" ]
    +};
    +        defs["PaymentCancellationStatusReason2Code"] = {
    +  "type" : "string",
    +  "enum" : [ "S004", "S003", "S002", "S000", "S001" ]
    +};
    +        defs["PaymentCancellationStatusReason3Code"] = {
    +  "type" : "string",
    +  "enum" : [ "S003", "S004" ]
    +};
    +        defs["PaymentEvent2"] = {
    +  "type" : "object",
    +  "required" : [ "from", "received", "to" ],
    +  "properties" : {
    +    "from" : {
    +      "description" : "The sending MessagingEndpoint that has created this Business Message for the receiving MessagingEndpoint that will process this Business Message.\r\n\r\nNote\tthe sending MessagingEndpoint might be different from the sending address potentially contained in the transport header (as defined in the transport layer).",
    +      "$ref" : "#/definitions/AnyBICIdentifier"
    +    },
    +    "to" : {
    +      "description" : "The MessagingEndpoint designated by the sending MessagingEndpoint to be the recipient who will ultimately process this Business Message.\r\n\r\nNote the receiving MessagingEndpoint might be different from the receiving address potentially contained in the transport header (as defined in the transport layer).",
    +      "$ref" : "#/definitions/AnyBICIdentifier"
    +    },
    +    "received" : {
    +      "description" : "Indicates whether a payment has been received or not. ",
    +      "$ref" : "#/definitions/YesNoIndicator"
         }
    -}
    -
    - -
    -
    import io.swagger.client.api.PetApi;
    -
    -public class PetApiExample {
    -
    -    public static void main(String[] args) {
    -        PetApi apiInstance = new PetApi();
    -        Long petId = 789; // Long | Pet id to delete
    -        String apiKey = apiKey_example; // String | 
    -        try {
    -            apiInstance.deletePet(petId, apiKey);
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling PetApi#deletePet");
    -            e.printStackTrace();
    -        }
    +  },
    +  "description" : "Contains elements identifying an event belonging to the transaction."
    +};
    +        defs["PaymentEvent3"] = {
    +  "type" : "object",
    +  "required" : [ "from", "instruction_identification", "invalidity_reason", "message_name_identification", "network_reference", "participant", "uetr" ],
    +  "properties" : {
    +    "uetr" : {
    +      "description" : "Contains the unique end to end transaction reference of a payment.",
    +      "$ref" : "#/definitions/UUIDv4Identifier"
    +    },
    +    "business_service" : {
    +      "description" : "Specifies the business service agreed between the two MessagingEndpoints under which rules this Business Message is exchanged.\r\nTo be used when there is a choice of processing services or processing service levels.",
    +      "$ref" : "#/definitions/Max35Text"
    +    },
    +    "participant" : {
    +      "description" : "Indicates whether the requestor institution participates in the payment transaction identified by the unique end to end transaction reference identification  (UETR).",
    +      "$ref" : "#/definitions/YesNoIndicator"
    +    },
    +    "network_reference" : {
    +      "description" : "Reference assigned by the network when sending the payment.",
    +      "$ref" : "#/definitions/Max350Text"
    +    },
    +    "message_name_identification" : {
    +      "description" : "Specifies the original message name identifier to which the message refers.",
    +      "$ref" : "#/definitions/Max35Text"
    +    },
    +    "instruction_identification" : {
    +      "description" : "Unique identification, as assigned by an instructing party for an instructed party, to unambiguously identify the instruction.\n\nUsage: The instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.",
    +      "$ref" : "#/definitions/Max35Text"
    +    },
    +    "from" : {
    +      "description" : "The sending MessagingEndpoint that has created this Business Message for the receiving MessagingEndpoint that will process this Business Message.\r\n\r\nNote\tthe sending MessagingEndpoint might be different from the sending address potentially contained in the transport header (as defined in the transport layer).",
    +      "$ref" : "#/definitions/AnyBICIdentifier"
    +    },
    +    "to" : {
    +      "description" : "The MessagingEndpoint designated by the sending MessagingEndpoint to be the recipient who will ultimately process this Business Message.\r\n\r\nNote the receiving MessagingEndpoint might be different from the receiving address potentially contained in the transport header (as defined in the transport layer).",
    +      "$ref" : "#/definitions/AnyBICIdentifier"
    +    },
    +    "invalidity_reason" : {
    +      "description" : "Specifies the reason why the event is invalid.",
    +      "$ref" : "#/definitions/ExternalInvalidEventReason1Code"
         }
    -}
    -
    - -
    -
    Configuration *apiConfig = [Configuration sharedConfig];
    -
    -// Configure OAuth2 access token for authorization: (authentication scheme: petstore_auth)
    -[apiConfig setAccessToken:@"YOUR_ACCESS_TOKEN"];
    -
    -Long *petId = 789; // Pet id to delete
    -String *apiKey = apiKey_example; //  (optional)
    -
    -PetApi *apiInstance = [[PetApi alloc] init];
    -
    -// Deletes a pet
    -[apiInstance deletePetWith:petId
    -    apiKey:apiKey
    -              completionHandler: ^(NSError* error) {
    -                            if (error) {
    -                                NSLog(@"Error: %@", error);
    -                            }
    -                        }];
    -
    -
    - -
    -
    var SwaggerPetstore = require('swagger_petstore');
    -var defaultClient = SwaggerPetstore.ApiClient.instance;
    -
    -// Configure OAuth2 access token for authorization: petstore_auth
    -var petstore_auth = defaultClient.authentications['petstore_auth'];
    -petstore_auth.accessToken = "YOUR ACCESS TOKEN"
    -
    -var api = new SwaggerPetstore.PetApi()
    -
    -var petId = 789; // {Long} Pet id to delete
    -
    -var opts = { 
    -  'apiKey': apiKey_example // {String} 
    +  },
    +  "description" : "Contains the details of an invalid payment event."
     };
    -
    -var callback = function(error, data, response) {
    -  if (error) {
    -    console.error(error);
    -  } else {
    -    console.log('API called successfully.');
    -  }
    +        defs["PaymentEvent7"] = {
    +  "type" : "object",
    +  "required" : [ "from", "last_update_time", "message_name_identification", "network_reference", "sender_acknowledgement_receipt", "to", "tracker_event_type", "valid" ],
    +  "properties" : {
    +    "network_reference" : {
    +      "description" : "Reference assigned by the network when sending the payment.",
    +      "$ref" : "#/definitions/Max350Text"
    +    },
    +    "message_name_identification" : {
    +      "description" : "Specifies the original message name identifier to which the message refers.",
    +      "$ref" : "#/definitions/Max35Text"
    +    },
    +    "business_service" : {
    +      "description" : "Specifies the business service agreed between the two MessagingEndpoints under which rules this Business Message is exchanged.\r\nTo be used when there is a choice of processing services or processing service levels.",
    +      "$ref" : "#/definitions/Max35Text"
    +    },
    +    "tracker_event_type" : {
    +      "description" : "Indicates the type of payment event.",
    +      "$ref" : "#/definitions/TrackerEventType1Code"
    +    },
    +    "valid" : {
    +      "description" : "Indicates if a payment is consistent (YES) or not (NO).",
    +      "$ref" : "#/definitions/YesNoIndicator"
    +    },
    +    "invalidity_reason" : {
    +      "description" : "Contains the additional information in case the event is not a valid component of a payment transaction.",
    +      "$ref" : "#/definitions/ExternalInvalidPaymentsEvent1Code"
    +    },
    +    "invalidity_description" : {
    +      "description" : "Contains a textual description as to why the event is not a valid component of a payments transaction.",
    +      "$ref" : "#/definitions/Max350Text"
    +    },
    +    "instruction_identification" : {
    +      "description" : "Unique identification, as assigned by an instructing party for an instructed party, to unambiguously identify the instruction.\n\nUsage: The instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.",
    +      "$ref" : "#/definitions/Max35Text"
    +    },
    +    "related_reference" : {
    +      "description" : "Identification referring to the underlying payment transaction.",
    +      "$ref" : "#/definitions/Max35Text"
    +    },
    +    "case_identification" : {
    +      "description" : "Uniquely identifies the case.",
    +      "$ref" : "#/definitions/Max35Text"
    +    },
    +    "original_instruction_identification" : {
    +      "description" : "Unique identification, as assigned by the original instructing party for the original instructed party, to unambiguously identify the original instruction.",
    +      "$ref" : "#/definitions/Max35Text"
    +    },
    +    "assignment_identification" : {
    +      "description" : "Uniquely identifies the case assignment.",
    +      "$ref" : "#/definitions/Max35Text"
    +    },
    +    "resolved_case_identification" : {
    +      "description" : "Uniquely identifies the case.",
    +      "$ref" : "#/definitions/Max35Text"
    +    },
    +    "transaction_status" : {
    +      "description" : "Specifies the status of a transaction, in a coded form.",
    +      "$ref" : "#/definitions/PaymentStatus3"
    +    },
    +    "underlying_cancellation_details" : {
    +      "description" : "Provides further information with regards to the cancellation of the payments event.",
    +      "$ref" : "#/definitions/UnderlyingCancellationDetails2"
    +    },
    +    "forwarded_to_agent" : {
    +      "description" : "Specifies the BIC of the entity to which the entity reporting the status has forwarded the payment transaction.\r\nThis element can only be used in case the status is ACSP and the reason is G000 or G001.",
    +      "$ref" : "#/definitions/AnyBICIdentifier"
    +    },
    +    "funds_available" : {
    +      "description" : "Date and time at which the funds are available,  as reported in the ACSC status update.\r\nMust only be used when TransactionStatus is \"ACSC\".",
    +      "$ref" : "#/definitions/ISODateTime"
    +    },
    +    "from" : {
    +      "description" : "The sending MessagingEndpoint that has created this Business Message for the receiving MessagingEndpoint that will process this Business Message.\r\n\r\nNote\tthe sending MessagingEndpoint might be different from the sending address potentially contained in the transport header (as defined in the transport layer).",
    +      "$ref" : "#/definitions/AnyBICIdentifier"
    +    },
    +    "to" : {
    +      "description" : "The MessagingEndpoint designated by the sending MessagingEndpoint to be the recipient who will ultimately process this Business Message.\r\n\r\nNote the receiving MessagingEndpoint might be different from the receiving address potentially contained in the transport header (as defined in the transport layer).",
    +      "$ref" : "#/definitions/AnyBICIdentifier"
    +    },
    +    "originator" : {
    +      "description" : "Party that issues the status.",
    +      "$ref" : "#/definitions/AnyBICIdentifier"
    +    },
    +    "serial_parties" : {
    +      "description" : "Specifies the parties involved in a serial payment scenario.",
    +      "$ref" : "#/definitions/CustomerCreditTransferTransactionParties1"
    +    },
    +    "cover_parties" : {
    +      "description" : "Specifies the parties involved in a cover payment scenario.",
    +      "$ref" : "#/definitions/CreditTransferTransactionParties1"
    +    },
    +    "sender_acknowledgement_receipt" : {
    +      "description" : "Date and time at which the sender was acknowledged receipt of the message.",
    +      "$ref" : "#/definitions/ISODateTime"
    +    },
    +    "received_date" : {
    +      "description" : "Date and time at which the message was acknowledged by the receiver.",
    +      "$ref" : "#/definitions/ISODateTime"
    +    },
    +    "instructed_amount" : {
    +      "description" : "Amount of money to be moved between the debtor (ordering customer) and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.\r\nUsage: This amount has to be transported unchanged through the transaction chain.",
    +      "$ref" : "#/definitions/ActiveOrHistoricCurrencyAndAmount"
    +    },
    +    "confirmed_amount" : {
    +      "description" : "The amount confirmed by the Originator. Depending on the Transaction Status, this amount can be the credited amount, pending amount, rejected amount or transferred amount.",
    +      "$ref" : "#/definitions/ActiveOrHistoricCurrencyAndAmount"
    +    },
    +    "interbank_settlement_amount" : {
    +      "description" : "Amount of money moved between the instructing agent and the instructed agent.",
    +      "$ref" : "#/definitions/ActiveCurrencyAndAmount"
    +    },
    +    "interbank_settlement_date" : {
    +      "description" : "Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due.",
    +      "$ref" : "#/definitions/ISODate"
    +    },
    +    "charge_bearer" : {
    +      "description" : "Specifies which party/parties will bear the charges associated with the processing of the payment transaction.",
    +      "$ref" : "#/definitions/ChargeBearerType3Code"
    +    },
    +    "charge_amount" : {
    +      "type" : "array",
    +      "description" : "Amount of money asked or paid for the charge.",
    +      "items" : {
    +        "$ref" : "#/definitions/ActiveOrHistoricCurrencyAndAmount"
    +      }
    +    },
    +    "foreign_exchange_details" : {
    +      "description" : "Specifies the exchange rate details between two currencies.",
    +      "$ref" : "#/definitions/CurrencyExchange8"
    +    },
    +    "update_payment" : {
    +      "description" : "Implements the correlation between a payment message and a status update on it. \r\nContains the network reference of the payment for which the status confirmation was applicable.",
    +      "$ref" : "#/definitions/Max35Text"
    +    },
    +    "duplicate_message_reference" : {
    +      "description" : "Network reference of the Payment that is the original recorded Payment.",
    +      "$ref" : "#/definitions/Max50Text"
    +    },
    +    "copied_business_service" : {
    +      "description" : "Specifies the copied business service of the market infrastructure.",
    +      "$ref" : "#/definitions/Max35Text"
    +    },
    +    "last_update_time" : {
    +      "description" : "Last date and time at which the status of this Payment event was updated.",
    +      "$ref" : "#/definitions/ISODateTime"
    +    }
    +  },
    +  "description" : "Contains information coming from the related MT 199 or MT 103, or the StatusConfirmationUpdate."
     };
    -api.deletePet(petId, opts, callback);
    -
    -
    - - -
    -
    using System;
    -using System.Diagnostics;
    -using IO.Swagger.Api;
    -using IO.Swagger.Client;
    -using IO.Swagger.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 );
    -            }
    -        }
    +        defs["PaymentReason1Code"] = {
    +  "type" : "string",
    +  "description" : "Provides the reason for a specific Payment Status.",
    +  "enum" : [ "G002", "G004", "G000", "G001", "G003" ]
    +};
    +        defs["PaymentScenario1Code"] = {
    +  "type" : "string",
    +  "description" : "Describes the payment scenario used for a payment transaction.",
    +  "enum" : [ "COVE", "CCTR" ]
    +};
    +        defs["PaymentScenario2Code"] = {
    +  "type" : "string",
    +  "description" : "Describes the payment scenario used for a payment transaction.",
    +  "enum" : [ "CCTR", "COVE", "CTCO" ]
    +};
    +        defs["PaymentScenario3Code"] = {
    +  "type" : "string",
    +  "description" : "Describes the payment scenario used for a payment transaction.",
    +  "enum" : [ "COVE", "CCTW", "CCTC" ]
    +};
    +        defs["PaymentStatus3"] = {
    +  "type" : "object",
    +  "required" : [ "status" ],
    +  "properties" : {
    +    "status" : {
    +      "description" : "Reason for the status, as published in an external reason code list.",
    +      "$ref" : "#/definitions/TransactionIndividualStatus4Code"
    +    },
    +    "reason" : {
    +      "description" : "Provides more details on the status in process.",
    +      "$ref" : "#/definitions/PaymentReason1Code"
         }
    -}
    -
    -
    - -
    -
    <?php
    -require_once(__DIR__ . '/vendor/autoload.php');
    -
    -// Configure OAuth2 access token for authorization: petstore_auth
    -Swagger\Client\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');
    -
    -$api_instance = new Swagger\Client\Api\PetApi();
    -$petId = 789; // Long | Pet id to delete
    -$apiKey = apiKey_example; // String | 
    -
    -try {
    -    $api_instance->deletePet($petId, $apiKey);
    -} catch (Exception $e) {
    -    echo 'Exception when calling PetApi->deletePet: ', $e->getMessage(), PHP_EOL;
    -}
    -?>
    -
    - -
    -
    use Data::Dumper;
    -use WWW::SwaggerClient::Configuration;
    -use WWW::SwaggerClient::PetApi;
    -
    -# Configure OAuth2 access token for authorization: petstore_auth
    -$WWW::SwaggerClient::Configuration::access_token = 'YOUR_ACCESS_TOKEN';
    -
    -my $api_instance = WWW::SwaggerClient::PetApi->new();
    -my $petId = 789; # Long | Pet id to delete
    -my $apiKey = apiKey_example; # String | 
    -
    -eval { 
    -    $api_instance->deletePet(petId => $petId, apiKey => $apiKey);
    +  },
    +  "description" : "Indicates the payment transaction status and optionally the reason for that status. "
     };
    -if ($@) {
    -    warn "Exception when calling PetApi->deletePet: $@\n";
    -}
    -
    - -
    -
    from __future__ import print_statement
    -import time
    -import swagger_client
    -from swagger_client.rest import ApiException
    -from pprint import pprint
    -
    -# Configure OAuth2 access token for authorization: petstore_auth
    -swagger_client.configuration.access_token = 'YOUR_ACCESS_TOKEN'
    -
    -# create an instance of the API class
    -api_instance = swagger_client.PetApi()
    -petId = 789 # Long | Pet id to delete
    -apiKey = apiKey_example # String |  (optional)
    -
    -try: 
    -    # Deletes a pet
    -    api_instance.delete_pet(petId, apiKey=apiKey)
    -except ApiException as e:
    -    print("Exception when calling PetApi->deletePet: %s\n" % e)
    -
    -
    - -

    Parameters

    - -
    Path parameters
    - - - - - - - - - -
    NameDescription
    petId* - - -
    -
    -
    - - Long - - - (int64) - - -
    - Pet id to delete -
    -
    -
    - Required -
    -
    -
    -
    - -
    Header parameters
    - - - - - - - - - -
    NameDescription
    api_key - - -
    -
    -
    - - String - - -
    -
    -
    -
    - - - - -

    Responses

    -

    Status: 400 - Invalid pet value

    - - - -
    -
    - -
    -
    -
    -
    -
    -
    -

    findPetsByStatus

    -

    Finds Pets by status

    -
    -
    -
    -

    -

    Multiple status values can be provided with comma separated strings

    -

    -
    -
    /pet/findByStatus
    -

    -

    Usage and SDK Samples

    -

    - - -
    -
    -
    curl -X GET "http://petstore.swagger.io/v2/pet/findByStatus?status="
    -
    -
    -
    import io.swagger.client.*;
    -import io.swagger.client.auth.*;
    -import io.swagger.client.model.*;
    -import io.swagger.client.api.PetApi;
    -
    -import java.io.File;
    -import java.util.*;
    -
    -public class PetApiExample {
    -
    -    public static void main(String[] args) {
    -        ApiClient defaultClient = Configuration.getDefaultApiClient();
    -        
    -        // Configure OAuth2 access token for authorization: petstore_auth
    -        OAuth petstore_auth = (OAuth) defaultClient.getAuthentication("petstore_auth");
    -        petstore_auth.setAccessToken("YOUR ACCESS TOKEN");
    -
    -        PetApi apiInstance = new PetApi();
    -        array[String] status = ; // array[String] | Status values that need to be considered for filter
    -        try {
    -            array[Pet] result = apiInstance.findPetsByStatus(status);
    -            System.out.println(result);
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling PetApi#findPetsByStatus");
    -            e.printStackTrace();
    -        }
    +        defs["PaymentStatusType2Choice"] = {
    +  "type" : "object",
    +  "properties" : {
    +    "raw_status" : {
    +      "description" : "Contains the status of the payment taken from field 79 of the MT 199.",
    +      "$ref" : "#/definitions/Max1850Text"
    +    },
    +    "detailed_status" : {
    +      "description" : "Contains the detailed status of the payment.",
    +      "$ref" : "#/definitions/StatusDetails2"
         }
    -}
    -
    - -
    -
    import io.swagger.client.api.PetApi;
    -
    -public class PetApiExample {
    -
    -    public static void main(String[] args) {
    -        PetApi apiInstance = new PetApi();
    -        array[String] status = ; // array[String] | Status values that need to be considered for filter
    -        try {
    -            array[Pet] result = apiInstance.findPetsByStatus(status);
    -            System.out.println(result);
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling PetApi#findPetsByStatus");
    -            e.printStackTrace();
    -        }
    +  },
    +  "description" : "Contains the status of the payment, either as a raw status, or as a detailed status."
    +};
    +        defs["PaymentTransaction72"] = {
    +  "type" : "object",
    +  "required" : [ "event_time", "initiation_time", "last_update_time", "my_institution", "payment_scenario_returned", "role", "transaction_status", "uetr" ],
    +  "properties" : {
    +    "uetr" : {
    +      "description" : "Contains the unique end to end transaction reference of a payment.",
    +      "$ref" : "#/definitions/UUIDv4Identifier"
    +    },
    +    "payment_scenario_returned" : {
    +      "description" : "Specifies which payment scenario is returned by the search.",
    +      "$ref" : "#/definitions/PaymentScenario3Code"
    +    },
    +    "my_institution" : {
    +      "description" : "Specifies an institution that is owned by the sender, for which the sender can ask payment transaction details.",
    +      "$ref" : "#/definitions/AnyBICIdentifier"
    +    },
    +    "role" : {
    +      "description" : "Specifies the role of the party in the payment chain.",
    +      "$ref" : "#/definitions/PaymentsPartyType2Code"
    +    },
    +    "event_time" : {
    +      "description" : "Time determined by the Role that the entity defined in MyInstitution is playing in this transaction.",
    +      "$ref" : "#/definitions/ISODateTime"
    +    },
    +    "transaction_status" : {
    +      "description" : "Specifies the status of a transaction, in a coded form.",
    +      "$ref" : "#/definitions/PaymentStatus3"
    +    },
    +    "cancellation_status" : {
    +      "$ref" : "#/definitions/PaymentTransactionCancellationStatus3"
    +    },
    +    "debtor_agent" : {
    +      "description" : "Financial institution servicing an account for the debtor. \r\n\r\nDebtor Agent in this case only refers to FI to FI Customer Credit Transfers.",
    +      "$ref" : "#/definitions/AnyBICIdentifier"
    +    },
    +    "debtor" : {
    +      "description" : "Party that owes an amount of money to the (ultimate) creditor.\r\n\r\nDebtor in this case only refers to Financial Institution Credit Transfer with cover.",
    +      "$ref" : "#/definitions/AnyBICIdentifier"
    +    },
    +    "agent" : {
    +      "type" : "array",
    +      "description" : "Identifies the agent(s) currently participating in a transaction.",
    +      "items" : {
    +        "$ref" : "#/definitions/PaymentEvent2"
    +      }
    +    },
    +    "creditor_agent" : {
    +      "description" : "Financial institution servicing an account for the creditor.",
    +      "$ref" : "#/definitions/AnyBICIdentifier"
    +    },
    +    "creditor" : {
    +      "description" : "Party to which an amount of money is due.\r\n\r\nThis role is only to be used in Financial Institution Credit Transfer with cover",
    +      "$ref" : "#/definitions/AnyBICIdentifier"
    +    },
    +    "initiation_time" : {
    +      "description" : "Date and Time at which the message enters the Gpi system.",
    +      "$ref" : "#/definitions/ISODateTime"
    +    },
    +    "completion_time" : {
    +      "description" : "Time at which the Instructed Bank reports that the transaction has been completed. \r\nDate and time based on the creation date of the status confirmation containing a final status ACSC.",
    +      "$ref" : "#/definitions/ISODateTime"
    +    },
    +    "instructed_amount" : {
    +      "description" : "Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.\r\nThis amount has to be transported unchanged through the transaction chain.",
    +      "$ref" : "#/definitions/ActiveOrHistoricCurrencyAndAmount"
    +    },
    +    "confirmed_amount" : {
    +      "description" : "The actual amount that has been paid to the ultimate beneficiary, after all charges etc... have been deducted.",
    +      "$ref" : "#/definitions/ActiveOrHistoricCurrencyAndAmount"
    +    },
    +    "last_update_time" : {
    +      "description" : "Last date and time at which the status of this transaction was updated.",
    +      "$ref" : "#/definitions/ISODateTime"
    +    },
    +    "cover_payment_event" : {
    +      "type" : "array",
    +      "description" : "Specifies the payment events related to the underlying cover payment.",
    +      "items" : {
    +        "$ref" : "#/definitions/CoverPaymentEvent1"
    +      }
         }
    -}
    -
    - -
    -
    Configuration *apiConfig = [Configuration sharedConfig];
    -
    -// Configure OAuth2 access token for authorization: (authentication scheme: petstore_auth)
    -[apiConfig setAccessToken:@"YOUR_ACCESS_TOKEN"];
    -
    -array[String] *status = ; // Status values that need to be considered for filter
    -
    -PetApi *apiInstance = [[PetApi alloc] init];
    -
    -// Finds Pets by status
    -[apiInstance findPetsByStatusWith:status
    -              completionHandler: ^(array[Pet] output, NSError* error) {
    -                            if (output) {
    -                                NSLog(@"%@", output);
    -                            }
    -                            if (error) {
    -                                NSLog(@"Error: %@", error);
    -                            }
    -                        }];
    -
    -
    - -
    -
    var SwaggerPetstore = require('swagger_petstore');
    -var defaultClient = SwaggerPetstore.ApiClient.instance;
    -
    -// Configure OAuth2 access token for authorization: petstore_auth
    -var petstore_auth = defaultClient.authentications['petstore_auth'];
    -petstore_auth.accessToken = "YOUR ACCESS TOKEN"
    -
    -var api = new SwaggerPetstore.PetApi()
    -
    -var status = ; // {array[String]} Status values that need to be considered for filter
    -
    -
    -var callback = function(error, data, response) {
    -  if (error) {
    -    console.error(error);
    -  } else {
    -    console.log('API called successfully. Returned data: ' + data);
    -  }
    +  },
    +  "description" : "Contains details on the payment transaction."
     };
    -api.findPetsByStatus(status, callback);
    -
    -
    - - -
    -
    using System;
    -using System.Diagnostics;
    -using IO.Swagger.Api;
    -using IO.Swagger.Client;
    -using IO.Swagger.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 = new array[String](); // array[String] | Status values that need to be considered for filter
    -
    -            try
    -            {
    -                // Finds Pets by status
    -                array[Pet] result = apiInstance.findPetsByStatus(status);
    -                Debug.WriteLine(result);
    -            }
    -            catch (Exception e)
    -            {
    -                Debug.Print("Exception when calling PetApi.findPetsByStatus: " + e.Message );
    -            }
    -        }
    +        defs["PaymentTransaction76"] = {
    +  "type" : "object",
    +  "required" : [ "initiation_time", "last_update_time", "transaction_status", "uetr" ],
    +  "properties" : {
    +    "uetr" : {
    +      "description" : "Contains the unique end to end transaction reference of a payment.",
    +      "$ref" : "#/definitions/UUIDv4Identifier"
    +    },
    +    "transaction_status" : {
    +      "description" : "Specifies the status of a transaction, in a coded form.",
    +      "$ref" : "#/definitions/PaymentStatus3"
    +    },
    +    "cancellation_status" : {
    +      "$ref" : "#/definitions/PaymentTransactionCancellationStatus1"
    +    },
    +    "initiation_time" : {
    +      "description" : "Date and Time at which the message enters the tracking system (e.g. gpi).",
    +      "$ref" : "#/definitions/ISODateTime"
    +    },
    +    "completion_time" : {
    +      "description" : "Time at which the Instructed Bank reports that the transaction has been completed. \r\nDate and time based on the creation date of the status confirmation containing a final status ACSC",
    +      "$ref" : "#/definitions/ISODateTime"
    +    },
    +    "last_update_time" : {
    +      "description" : "Last date and time at which the status of this transaction was updated.",
    +      "$ref" : "#/definitions/ISODateTime"
    +    },
    +    "payment_event" : {
    +      "type" : "array",
    +      "description" : "This groups the information of an event, i.e., of a payment message or status confirmation update. It is repeated as many times as there are events to be returned.",
    +      "items" : {
    +        "$ref" : "#/definitions/PaymentEvent7"
    +      }
         }
    -}
    -
    -
    - -
    -
    <?php
    -require_once(__DIR__ . '/vendor/autoload.php');
    -
    -// Configure OAuth2 access token for authorization: petstore_auth
    -Swagger\Client\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');
    -
    -$api_instance = new Swagger\Client\Api\PetApi();
    -$status = ; // array[String] | Status values that need to be considered for filter
    -
    -try {
    -    $result = $api_instance->findPetsByStatus($status);
    -    print_r($result);
    -} catch (Exception $e) {
    -    echo 'Exception when calling PetApi->findPetsByStatus: ', $e->getMessage(), PHP_EOL;
    -}
    -?>
    -
    - -
    -
    use Data::Dumper;
    -use WWW::SwaggerClient::Configuration;
    -use WWW::SwaggerClient::PetApi;
    -
    -# Configure OAuth2 access token for authorization: petstore_auth
    -$WWW::SwaggerClient::Configuration::access_token = 'YOUR_ACCESS_TOKEN';
    -
    -my $api_instance = WWW::SwaggerClient::PetApi->new();
    -my $status = []; # array[String] | Status values that need to be considered for filter
    -
    -eval { 
    -    my $result = $api_instance->findPetsByStatus(status => $status);
    -    print Dumper($result);
    +  },
    +  "description" : "Contains details on the payment transaction."
     };
    -if ($@) {
    -    warn "Exception when calling PetApi->findPetsByStatus: $@\n";
    -}
    -
    - -
    -
    from __future__ import print_statement
    -import time
    -import swagger_client
    -from swagger_client.rest import ApiException
    -from pprint import pprint
    -
    -# Configure OAuth2 access token for authorization: petstore_auth
    -swagger_client.configuration.access_token = 'YOUR_ACCESS_TOKEN'
    -
    -# create an instance of the API class
    -api_instance = swagger_client.PetApi()
    -status =  # array[String] | Status values that need to be considered for filter
    -
    -try: 
    -    # Finds Pets by status
    -    api_response = api_instance.find_pets_by_status(status)
    -    pprint(api_response)
    -except ApiException as e:
    -    print("Exception when calling PetApi->findPetsByStatus: %s\n" % e)
    -
    -
    - -

    Parameters

    - - - - - -
    Query parameters
    - - - - - - - - - -
    NameDescription
    status* - - -
    -
    -
    - - array[String] - - -
    - Status values that need to be considered for filter -
    -
    -
    - Required -
    -
    -
    -
    - -

    Responses

    -

    Status: 200 - successful operation

    - - - -
    -
    -
    - -
    - -
    -
    + defs["UpdatePaymentStatusResponse"] = { + "type" : "object", + "required" : [ "network_reference" ], + "properties" : { + "network_reference" : { + "description" : "Reference assigned by the network.", + "$ref" : "#/definitions/Max350Text" + } + }, + "description" : "This API is the response to a status confirmation update to inform the tracker about the updated status of a given payment." +}; + defs["YesNoIndicator"] = { + "type" : "boolean", + "description" : "Indicates a \"Yes\" or \"No\" type of answer for an element." +}; + -

    Status: 400 - Invalid status value

    +
    +
    +
    +
    -
    -
    - +
    +
    +
    +

    gpi API

    +
    +
    +
    + +
    +
    +

    CancelTransaction

    +
    +
    -

    findPetsByTags

    -

    Finds Pets by tags

    +

    cancelTransactionPost

    +

    Cancel Transaction

    -

    Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.

    +

    This API informs the tracker about the cancellation of a given transaction


    -
    /pet/findByTags
    +
    /cancel_transaction

    Usage and SDK Samples

    -
    -
    curl -X GET "http://petstore.swagger.io/v2/pet/findByTags?tags="
    +
    +
    curl -X POST "https://local-api-domain/swift-apitracker-pilot/v2/cancel_transaction"
    -
    +
    import io.swagger.client.*;
     import io.swagger.client.auth.*;
     import io.swagger.client.model.*;
    -import io.swagger.client.api.PetApi;
    +import io.swagger.client.api.CancelTransactionApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class PetApiExample {
    +public class CancelTransactionApiExample {
     
         public static void main(String[] args) {
    -        ApiClient defaultClient = Configuration.getDefaultApiClient();
             
    -        // Configure OAuth2 access token for authorization: petstore_auth
    -        OAuth petstore_auth = (OAuth) defaultClient.getAuthentication("petstore_auth");
    -        petstore_auth.setAccessToken("YOUR ACCESS TOKEN");
    -
    -        PetApi apiInstance = new PetApi();
    -        array[String] tags = ; // array[String] | Tags to filter by
    +        CancelTransactionApi apiInstance = new CancelTransactionApi();
    +        String lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +        String lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +        String lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +        String lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +        String lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +        String lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded
    +        Boolean signatureRequired = true; // Boolean | a field indicating that a Signature is required
    +        Camt.a06.001.02 requestBody = ; // Camt.a06.001.02 | Cancel Transaction Request
             try {
    -            array[Pet] result = apiInstance.findPetsByTags(tags);
    +            camt.a06.002.02 result = apiInstance.cancelTransactionPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, signatureRequired, requestBody);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling PetApi#findPetsByTags");
    +            System.err.println("Exception when calling CancelTransactionApi#cancelTransactionPost");
                 e.printStackTrace();
             }
         }
     }
    -
    -
    import io.swagger.client.api.PetApi;
    +                          
    +
    import io.swagger.client.api.CancelTransactionApi;
     
    -public class PetApiExample {
    +public class CancelTransactionApiExample {
     
         public static void main(String[] args) {
    -        PetApi apiInstance = new PetApi();
    -        array[String] tags = ; // array[String] | Tags to filter by
    +        CancelTransactionApi apiInstance = new CancelTransactionApi();
    +        String lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +        String lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +        String lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +        String lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +        String lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +        String lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded
    +        Boolean signatureRequired = true; // Boolean | a field indicating that a Signature is required
    +        Camt.a06.001.02 requestBody = ; // Camt.a06.001.02 | Cancel Transaction Request
             try {
    -            array[Pet] result = apiInstance.findPetsByTags(tags);
    +            camt.a06.002.02 result = apiInstance.cancelTransactionPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, signatureRequired, requestBody);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling PetApi#findPetsByTags");
    +            System.err.println("Exception when calling CancelTransactionApi#cancelTransactionPost");
                 e.printStackTrace();
             }
         }
     }
    -
    -
    Configuration *apiConfig = [Configuration sharedConfig];
    -
    -// Configure OAuth2 access token for authorization: (authentication scheme: petstore_auth)
    -[apiConfig setAccessToken:@"YOUR_ACCESS_TOKEN"];
    -
    -array[String] *tags = ; // Tags to filter by
    -
    -PetApi *apiInstance = [[PetApi alloc] init];
    -
    -// Finds Pets by tags
    -[apiInstance findPetsByTagsWith:tags
    -              completionHandler: ^(array[Pet] output, NSError* error) {
    +                            
    +
    String *lAUApplicationID = lAUApplicationID_example; // ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001)
    +String *lAUVersion = lAUVersion_example; // version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0)
    +String *lAUCallTime = lAUCallTime_example; // timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z)
    +String *lAURequestNonce = lAURequestNonce_example; // a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074)
    +String *lAUSigned = lAUSigned_example; // service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[FullViewer/Scope/cclabeb0]))
    +String *lAUSignature = lAUSignature_example; // contains the LAU signature, base64 ecoded (default to U1khA8h9Lm1PqzB99fG6uw==)
    +Boolean *signatureRequired = true; // a field indicating that a Signature is required (default to true)
    +Camt.a06.001.02 *requestBody = ; // Cancel Transaction Request
    +
    +CancelTransactionApi *apiInstance = [[CancelTransactionApi alloc] init];
    +
    +// Cancel Transaction
    +[apiInstance cancelTransactionPostWith:lAUApplicationID
    +    lAUVersion:lAUVersion
    +    lAUCallTime:lAUCallTime
    +    lAURequestNonce:lAURequestNonce
    +    lAUSigned:lAUSigned
    +    lAUSignature:lAUSignature
    +    signatureRequired:signatureRequired
    +    requestBody:requestBody
    +              completionHandler: ^(camt.a06.002.02 output, NSError* error) {
                                 if (output) {
                                     NSLog(@"%@", output);
                                 }
    @@ -2005,17 +2804,26 @@ 

    Usage and SDK Samples

    -
    -
    var SwaggerPetstore = require('swagger_petstore');
    -var defaultClient = SwaggerPetstore.ApiClient.instance;
    +                            
    +
    var GpiApi = require('gpi_api');
    +
    +var api = new GpiApi.CancelTransactionApi()
    +
    +var lAUApplicationID = lAUApplicationID_example; // {String} ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +
    +var lAUVersion = lAUVersion_example; // {String} version of the LAUSigned header. Mandatory. "1.0" for this first release
    +
    +var lAUCallTime = lAUCallTime_example; // {String} timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +
    +var lAURequestNonce = lAURequestNonce_example; // {String} a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +
    +var lAUSigned = lAUSigned_example; // {String} service specific HTTP headers
     
    -// Configure OAuth2 access token for authorization: petstore_auth
    -var petstore_auth = defaultClient.authentications['petstore_auth'];
    -petstore_auth.accessToken = "YOUR ACCESS TOKEN"
    +var lAUSignature = lAUSignature_example; // {String} contains the LAU signature, base64 ecoded
     
    -var api = new SwaggerPetstore.PetApi()
    +var signatureRequired = true; // {Boolean} a field indicating that a Signature is required
     
    -var tags = ; // {array[String]} Tags to filter by
    +var requestBody = ; // {Camt.a06.001.02} Cancel Transaction Request
     
     
     var callback = function(error, data, response) {
    @@ -2025,14 +2833,14 @@ 

    Usage and SDK Samples

    console.log('API called successfully. Returned data: ' + data); } }; -api.findPetsByTags(tags, callback); +api.cancelTransactionPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, signatureRequired, requestBody, callback);
    - -
    +
    using System;
     using System.Diagnostics;
     using IO.Swagger.Api;
    @@ -2041,26 +2849,30 @@ 

    Usage and SDK Samples

    namespace Example { - public class findPetsByTagsExample + public class cancelTransactionPostExample { public void main() { - // Configure OAuth2 access token for authorization: petstore_auth - Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; - - var apiInstance = new PetApi(); - var tags = new array[String](); // array[String] | Tags to filter by + var apiInstance = new CancelTransactionApi(); + var lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001) + var lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0) + var lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z) + var lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074) + var lAUSigned = lAUSigned_example; // String | service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[FullViewer/Scope/cclabeb0])) + var lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded (default to U1khA8h9Lm1PqzB99fG6uw==) + var signatureRequired = true; // Boolean | a field indicating that a Signature is required (default to true) + var requestBody = new Camt.a06.001.02(); // Camt.a06.001.02 | Cancel Transaction Request try { - // Finds Pets by tags - array[Pet] result = apiInstance.findPetsByTags(tags); + // Cancel Transaction + camt.a06.002.02 result = apiInstance.cancelTransactionPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, signatureRequired, requestBody); Debug.WriteLine(result); } catch (Exception e) { - Debug.Print("Exception when calling PetApi.findPetsByTags: " + e.Message ); + Debug.Print("Exception when calling CancelTransactionApi.cancelTransactionPost: " + e.Message ); } } } @@ -2068,93 +2880,240 @@

    Usage and SDK Samples

    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
    -// Configure OAuth2 access token for authorization: petstore_auth
    -Swagger\Client\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');
    -
    -$api_instance = new Swagger\Client\Api\PetApi();
    -$tags = ; // array[String] | Tags to filter by
    +$api_instance = new Swagger\Client\Api\CancelTransactionApi();
    +$lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +$lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +$lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +$lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +$lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +$lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded
    +$signatureRequired = true; // Boolean | a field indicating that a Signature is required
    +$requestBody = ; // Camt.a06.001.02 | Cancel Transaction Request
     
     try {
    -    $result = $api_instance->findPetsByTags($tags);
    +    $result = $api_instance->cancelTransactionPost($lAUApplicationID, $lAUVersion, $lAUCallTime, $lAURequestNonce, $lAUSigned, $lAUSignature, $signatureRequired, $requestBody);
         print_r($result);
     } catch (Exception $e) {
    -    echo 'Exception when calling PetApi->findPetsByTags: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling CancelTransactionApi->cancelTransactionPost: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::SwaggerClient::Configuration;
    -use WWW::SwaggerClient::PetApi;
    -
    -# Configure OAuth2 access token for authorization: petstore_auth
    -$WWW::SwaggerClient::Configuration::access_token = 'YOUR_ACCESS_TOKEN';
    -
    -my $api_instance = WWW::SwaggerClient::PetApi->new();
    -my $tags = []; # array[String] | Tags to filter by
    +use WWW::SwaggerClient::CancelTransactionApi;
    +
    +my $api_instance = WWW::SwaggerClient::CancelTransactionApi->new();
    +my $lAUApplicationID = lAUApplicationID_example; # String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +my $lAUVersion = lAUVersion_example; # String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +my $lAUCallTime = lAUCallTime_example; # String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +my $lAURequestNonce = lAURequestNonce_example; # String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +my $lAUSigned = lAUSigned_example; # String | service specific HTTP headers
    +my $lAUSignature = lAUSignature_example; # String | contains the LAU signature, base64 ecoded
    +my $signatureRequired = true; # Boolean | a field indicating that a Signature is required
    +my $requestBody = WWW::SwaggerClient::Object::Camt.a06.001.02->new(); # Camt.a06.001.02 | Cancel Transaction Request
     
     eval { 
    -    my $result = $api_instance->findPetsByTags(tags => $tags);
    +    my $result = $api_instance->cancelTransactionPost(lAUApplicationID => $lAUApplicationID, lAUVersion => $lAUVersion, lAUCallTime => $lAUCallTime, lAURequestNonce => $lAURequestNonce, lAUSigned => $lAUSigned, lAUSignature => $lAUSignature, signatureRequired => $signatureRequired, requestBody => $requestBody);
         print Dumper($result);
     };
     if ($@) {
    -    warn "Exception when calling PetApi->findPetsByTags: $@\n";
    +    warn "Exception when calling CancelTransactionApi->cancelTransactionPost: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import swagger_client
     from swagger_client.rest import ApiException
     from pprint import pprint
     
    -# Configure OAuth2 access token for authorization: petstore_auth
    -swagger_client.configuration.access_token = 'YOUR_ACCESS_TOKEN'
    -
     # create an instance of the API class
    -api_instance = swagger_client.PetApi()
    -tags =  # array[String] | Tags to filter by
    +api_instance = swagger_client.CancelTransactionApi()
    +lAUApplicationID = lAUApplicationID_example # String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001)
    +lAUVersion = lAUVersion_example # String | version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0)
    +lAUCallTime = lAUCallTime_example # String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z)
    +lAURequestNonce = lAURequestNonce_example # String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074)
    +lAUSigned = lAUSigned_example # String | service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[FullViewer/Scope/cclabeb0]))
    +lAUSignature = lAUSignature_example # String | contains the LAU signature, base64 ecoded (default to U1khA8h9Lm1PqzB99fG6uw==)
    +signatureRequired = true # Boolean | a field indicating that a Signature is required (default to true)
    +requestBody =  # Camt.a06.001.02 | Cancel Transaction Request
     
     try: 
    -    # Finds Pets by tags
    -    api_response = api_instance.find_pets_by_tags(tags)
    +    # Cancel Transaction
    +    api_response = api_instance.cancel_transaction_post(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, signatureRequired, requestBody)
         pprint(api_response)
     except ApiException as e:
    -    print("Exception when calling PetApi->findPetsByTags: %s\n" % e)
    + print("Exception when calling CancelTransactionApi->cancelTransactionPost: %s\n" % e)

    Parameters

    - - - -
    Query parameters
    +
    Header parameters
    - + + + + + + + + + + + + + + + + + + + + + + + + +
    Name Description
    tags*
    LAUApplicationID* + + +
    +
    +
    + + String + + +
    + ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys +
    +
    +
    + Required +
    +
    +
    +
    LAUVersion* + + +
    +
    +
    + + String + + +
    + version of the LAUSigned header. Mandatory. "1.0" for this first release +
    +
    +
    + Required +
    +
    +
    +
    LAUCallTime* + + +
    +
    +
    + + String + + +
    + timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ +
    +
    +
    + Required +
    +
    +
    +
    LAURequestNonce* + + +
    +
    +
    + + String + + +
    + a random value generated by the client. Provided with the request and copied by the gpi Connector on the response +
    +
    +
    + Required +
    +
    +
    +
    LAUSigned* + + +
    +
    +
    + + String + + +
    + service specific HTTP headers +
    +
    +
    + Required +
    +
    +
    +
    LAUSignature* + + +
    +
    +
    + + String + + +
    + contains the LAU signature, base64 ecoded +
    +
    +
    + Required +
    +
    +
    +
    SignatureRequired* -
    +
    - array[String] + Boolean
    - Tags to filter by + a field indicating that a Signature is required
    @@ -2167,35 +3126,112 @@

    Parameters

    +
    Body parameters
    + + + + + + + + + +
    NameDescription
    requestBody * + + + +
    +
    + + +

    Responses

    -

    Status: 200 - successful operation

    +

    Status: 200 - Cancel Transaction Response

    -
    -
    +
    +
    - + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeFormatDescription
    LAUApplicationIDStringID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    LAUVersionStringversion of the LAUSigned header. Mandatory. "1.0" for this first release
    LAUCallTimeStringtimestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    LAURequestNonceStringa random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    LAUResponseNonceStringa random value generated by the gpi Connector on the response
    LAUSignatureStringcontains the LAU signature, base64 ecoded
    -

    Status: 400 - Invalid tag value

    +

    Status: 400 - Bad Request

    -
    - -
    -
    -
    -
    -
    -
    -

    getPetById

    -

    Find pet by ID

    -
    -
    -
    -

    -

    Returns a single pet

    -

    -
    -
    /pet/{petId}
    -

    -

    Usage and SDK Samples

    -

    - - -
    -
    -
    curl -X GET -H "api_key: [[apiKey]]" "http://petstore.swagger.io/v2/pet/{petId}"
    -
    -
    -
    import io.swagger.client.*;
    -import io.swagger.client.auth.*;
    -import io.swagger.client.model.*;
    -import io.swagger.client.api.PetApi;
    -
    -import java.io.File;
    -import java.util.*;
    -
    -public class PetApiExample {
    -
    -    public static void main(String[] args) {
    -        ApiClient defaultClient = Configuration.getDefaultApiClient();
    -        
    -        // Configure API key authorization: api_key
    -        ApiKeyAuth api_key = (ApiKeyAuth) defaultClient.getAuthentication("api_key");
    -        api_key.setApiKey("YOUR API KEY");
    -        // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
    -        //api_key.setApiKeyPrefix("Token");
    -
    -        PetApi apiInstance = new PetApi();
    -        Long petId = 789; // Long | ID of pet to return
    -        try {
    -            Pet result = apiInstance.getPetById(petId);
    -            System.out.println(result);
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling PetApi#getPetById");
    -            e.printStackTrace();
    -        }
    -    }
    -}
    -
    - -
    -
    import io.swagger.client.api.PetApi;
    -
    -public class PetApiExample {
    -
    -    public static void main(String[] args) {
    -        PetApi apiInstance = new PetApi();
    -        Long petId = 789; // Long | ID of pet to return
    -        try {
    -            Pet result = apiInstance.getPetById(petId);
    -            System.out.println(result);
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling PetApi#getPetById");
    -            e.printStackTrace();
    -        }
    -    }
    -}
    -
    - -
    -
    Configuration *apiConfig = [Configuration sharedConfig];
    -
    -// Configure API key authorization: (authentication scheme: api_key)
    -[apiConfig setApiKey:@"YOUR_API_KEY" forApiKeyIdentifier:@"api_key"];
    -// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
    -//[apiConfig setApiKeyPrefix:@"Bearer" forApiKeyIdentifier:@"api_key"];
    -
    -Long *petId = 789; // ID of pet to return
    -
    -PetApi *apiInstance = [[PetApi alloc] init];
    +                                
    +
    + +
    + +
    -
    -
    var SwaggerPetstore = require('swagger_petstore');
    -var defaultClient = SwaggerPetstore.ApiClient.instance;
    -
    -// Configure API key authorization: api_key
    -var api_key = defaultClient.authentications['api_key'];
    -api_key.apiKey = "YOUR API KEY"
    -// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
    -//api_key.apiKeyPrefix['api_key'] = "Token"
    +                            

    Status: 401 - Unauthorized WWW-Authenticate: Bearer realm='SwAP'

    -var api = new SwaggerPetstore.PetApi() - -var petId = 789; // {Long} ID of pet to return + -var callback = function(error, data, response) { - if (error) { - console.error(error); - } else { - console.log('API called successfully. Returned data: ' + data); +
    +
    +
    + +
    + +
    -
    -
    <?php
    -require_once(__DIR__ . '/vendor/autoload.php');
    +                            

    Status: 404 - Not Found

    + + -$api_instance = new Swagger\Client\Api\PetApi(); -$petId = 789; // Long | ID of pet to return +
    +
    +
    + +
    + +
    -
    -
    use Data::Dumper;
    -use WWW::SwaggerClient::Configuration;
    -use WWW::SwaggerClient::PetApi;
    +                            

    Status: 429 - Too many requests

    -# Configure API key authorization: api_key -$WWW::SwaggerClient::Configuration::api_key->{'api_key'} = 'YOUR_API_KEY'; -# uncomment below to setup prefix (e.g. Bearer) for API key, if needed -#$WWW::SwaggerClient::Configuration::api_key_prefix->{'api_key'} = "Bearer"; + -eval { - my $result = $api_instance->getPetById(petId => $petId); - print Dumper($result); +
    +
    +
    + +
    + +
    -
    - -

    Parameters

    - -
    Path parameters
    - - - - - - - - -
    NameDescription
    petId* - - -
    -
    -
    - - Long - - - (int64) - - -
    - ID of pet to return -
    -
    -
    - Required -
    -
    -
    -
    +

    Status: 500 - Internal Server Error

    + +
    +
    +
    + +
    + +
    +
    -

    Responses

    -

    Status: 200 - successful operation

    +

    Status: 502 - Bad Gateway

    -
    -
    +
    +
    - +
    -

    Status: 400 - Invalid ID supplied

    +

    Status: 503 - Service Unavailable

    +
    +
    + +
    + +
    -

    Status: 404 - Pet not found

    +

    Status: 504 - Gateway Timeout

    +
    +
    + +
    + +

    -
    -
    +
    +
    +

    GetChangedPaymentTransactions

    +
    +
    -

    updatePet

    -

    Update an existing pet

    +

    getChangedPaymentTransactionsPost

    +

    Get Changed Payment Transactions

    -

    +

    This API is a delta query to get all payment update information starting from a given date and time. This API allows synchronization of a local database with the tracker database.


    -
    /pet
    +
    /get_changed_payment_transactions

    Usage and SDK Samples

    -
    -
    curl -X PUT "http://petstore.swagger.io/v2/pet"
    +
    +
    curl -X POST "https://local-api-domain/swift-apitracker-pilot/v2/get_changed_payment_transactions"
    -
    +
    import io.swagger.client.*;
     import io.swagger.client.auth.*;
     import io.swagger.client.model.*;
    -import io.swagger.client.api.PetApi;
    +import io.swagger.client.api.GetChangedPaymentTransactionsApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class PetApiExample {
    +public class GetChangedPaymentTransactionsApiExample {
     
         public static void main(String[] args) {
    -        ApiClient defaultClient = Configuration.getDefaultApiClient();
             
    -        // Configure OAuth2 access token for authorization: petstore_auth
    -        OAuth petstore_auth = (OAuth) defaultClient.getAuthentication("petstore_auth");
    -        petstore_auth.setAccessToken("YOUR ACCESS TOKEN");
    -
    -        PetApi apiInstance = new PetApi();
    -        Pet body = ; // Pet | Pet object that needs to be added to the store
    +        GetChangedPaymentTransactionsApi apiInstance = new GetChangedPaymentTransactionsApi();
    +        String lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +        String lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +        String lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +        String lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +        String lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +        String lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded
    +        Camt.a04.001.03 requestBody = ; // Camt.a04.001.03 | Last Changed Payment Transactions Request
             try {
    -            apiInstance.updatePet(body);
    +            camt.a04.002.03 result = apiInstance.getChangedPaymentTransactionsPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, requestBody);
    +            System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling PetApi#updatePet");
    +            System.err.println("Exception when calling GetChangedPaymentTransactionsApi#getChangedPaymentTransactionsPost");
                 e.printStackTrace();
             }
         }
     }
    -
    -
    import io.swagger.client.api.PetApi;
    +                          
    +
    import io.swagger.client.api.GetChangedPaymentTransactionsApi;
     
    -public class PetApiExample {
    +public class GetChangedPaymentTransactionsApiExample {
     
         public static void main(String[] args) {
    -        PetApi apiInstance = new PetApi();
    -        Pet body = ; // Pet | Pet object that needs to be added to the store
    +        GetChangedPaymentTransactionsApi apiInstance = new GetChangedPaymentTransactionsApi();
    +        String lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +        String lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +        String lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +        String lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +        String lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +        String lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded
    +        Camt.a04.001.03 requestBody = ; // Camt.a04.001.03 | Last Changed Payment Transactions Request
             try {
    -            apiInstance.updatePet(body);
    +            camt.a04.002.03 result = apiInstance.getChangedPaymentTransactionsPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, requestBody);
    +            System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling PetApi#updatePet");
    +            System.err.println("Exception when calling GetChangedPaymentTransactionsApi#getChangedPaymentTransactionsPost");
                 e.printStackTrace();
             }
         }
     }
    -
    -
    Configuration *apiConfig = [Configuration sharedConfig];
    -
    -// Configure OAuth2 access token for authorization: (authentication scheme: petstore_auth)
    -[apiConfig setAccessToken:@"YOUR_ACCESS_TOKEN"];
    -
    -Pet *body = ; // Pet object that needs to be added to the store
    -
    -PetApi *apiInstance = [[PetApi alloc] init];
    -
    -// Update an existing pet
    -[apiInstance updatePetWith:body
    -              completionHandler: ^(NSError* error) {
    +                            
    +
    String *lAUApplicationID = lAUApplicationID_example; // ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001)
    +String *lAUVersion = lAUVersion_example; // version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0)
    +String *lAUCallTime = lAUCallTime_example; // timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z)
    +String *lAURequestNonce = lAURequestNonce_example; // a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074)
    +String *lAUSigned = lAUSigned_example; // service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[FullViewer/Scope/cclabeb0]))
    +String *lAUSignature = lAUSignature_example; // contains the LAU signature, base64 ecoded (default to U1khA8h9Lm1PqzB99fG6uw==)
    +Camt.a04.001.03 *requestBody = ; // Last Changed Payment Transactions Request
    +
    +GetChangedPaymentTransactionsApi *apiInstance = [[GetChangedPaymentTransactionsApi alloc] init];
    +
    +// Get Changed Payment Transactions
    +[apiInstance getChangedPaymentTransactionsPostWith:lAUApplicationID
    +    lAUVersion:lAUVersion
    +    lAUCallTime:lAUCallTime
    +    lAURequestNonce:lAURequestNonce
    +    lAUSigned:lAUSigned
    +    lAUSignature:lAUSignature
    +    requestBody:requestBody
    +              completionHandler: ^(camt.a04.002.03 output, NSError* error) {
    +                            if (output) {
    +                                NSLog(@"%@", output);
    +                            }
                                 if (error) {
                                     NSLog(@"Error: %@", error);
                                 }
    @@ -2682,34 +3770,41 @@ 

    Usage and SDK Samples

    -
    -
    var SwaggerPetstore = require('swagger_petstore');
    -var defaultClient = SwaggerPetstore.ApiClient.instance;
    +                            
    +
    var GpiApi = require('gpi_api');
     
    -// Configure OAuth2 access token for authorization: petstore_auth
    -var petstore_auth = defaultClient.authentications['petstore_auth'];
    -petstore_auth.accessToken = "YOUR ACCESS TOKEN"
    +var api = new GpiApi.GetChangedPaymentTransactionsApi()
     
    -var api = new SwaggerPetstore.PetApi()
    +var lAUApplicationID = lAUApplicationID_example; // {String} ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
     
    -var body = ; // {Pet} Pet object that needs to be added to the store
    +var lAUVersion = lAUVersion_example; // {String} version of the LAUSigned header. Mandatory. "1.0" for this first release
    +
    +var lAUCallTime = lAUCallTime_example; // {String} timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +
    +var lAURequestNonce = lAURequestNonce_example; // {String} a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +
    +var lAUSigned = lAUSigned_example; // {String} service specific HTTP headers
    +
    +var lAUSignature = lAUSignature_example; // {String} contains the LAU signature, base64 ecoded
    +
    +var requestBody = ; // {Camt.a04.001.03} Last Changed Payment Transactions Request
     
     
     var callback = function(error, data, response) {
       if (error) {
         console.error(error);
       } else {
    -    console.log('API called successfully.');
    +    console.log('API called successfully. Returned data: ' + data);
       }
     };
    -api.updatePet(body, callback);
    +api.getChangedPaymentTransactionsPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, requestBody, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using IO.Swagger.Api;
    @@ -2718,25 +3813,29 @@ 

    Usage and SDK Samples

    namespace Example { - public class updatePetExample + public class getChangedPaymentTransactionsPostExample { public void main() { - // Configure OAuth2 access token for authorization: petstore_auth - Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; - - var apiInstance = new PetApi(); - var body = new Pet(); // Pet | Pet object that needs to be added to the store + var apiInstance = new GetChangedPaymentTransactionsApi(); + var lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001) + var lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0) + var lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z) + var lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074) + var lAUSigned = lAUSigned_example; // String | service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[FullViewer/Scope/cclabeb0])) + var lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded (default to U1khA8h9Lm1PqzB99fG6uw==) + var requestBody = new Camt.a04.001.03(); // Camt.a04.001.03 | Last Changed Payment Transactions Request try { - // Update an existing pet - apiInstance.updatePet(body); + // Get Changed Payment Transactions + camt.a04.002.03 result = apiInstance.getChangedPaymentTransactionsPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, requestBody); + Debug.WriteLine(result); } catch (Exception e) { - Debug.Print("Exception when calling PetApi.updatePet: " + e.Message ); + Debug.Print("Exception when calling GetChangedPaymentTransactionsApi.getChangedPaymentTransactionsPost: " + e.Message ); } } } @@ -2744,68 +3843,225 @@

    Usage and SDK Samples

    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
    -// Configure OAuth2 access token for authorization: petstore_auth
    -Swagger\Client\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');
    -
    -$api_instance = new Swagger\Client\Api\PetApi();
    -$body = ; // Pet | Pet object that needs to be added to the store
    +$api_instance = new Swagger\Client\Api\GetChangedPaymentTransactionsApi();
    +$lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +$lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +$lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +$lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +$lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +$lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded
    +$requestBody = ; // Camt.a04.001.03 | Last Changed Payment Transactions Request
     
     try {
    -    $api_instance->updatePet($body);
    +    $result = $api_instance->getChangedPaymentTransactionsPost($lAUApplicationID, $lAUVersion, $lAUCallTime, $lAURequestNonce, $lAUSigned, $lAUSignature, $requestBody);
    +    print_r($result);
     } catch (Exception $e) {
    -    echo 'Exception when calling PetApi->updatePet: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling GetChangedPaymentTransactionsApi->getChangedPaymentTransactionsPost: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::SwaggerClient::Configuration;
    -use WWW::SwaggerClient::PetApi;
    +use WWW::SwaggerClient::GetChangedPaymentTransactionsApi;
     
    -# Configure OAuth2 access token for authorization: petstore_auth
    -$WWW::SwaggerClient::Configuration::access_token = 'YOUR_ACCESS_TOKEN';
    -
    -my $api_instance = WWW::SwaggerClient::PetApi->new();
    -my $body = WWW::SwaggerClient::Object::Pet->new(); # Pet | Pet object that needs to be added to the store
    +my $api_instance = WWW::SwaggerClient::GetChangedPaymentTransactionsApi->new();
    +my $lAUApplicationID = lAUApplicationID_example; # String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +my $lAUVersion = lAUVersion_example; # String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +my $lAUCallTime = lAUCallTime_example; # String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +my $lAURequestNonce = lAURequestNonce_example; # String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +my $lAUSigned = lAUSigned_example; # String | service specific HTTP headers
    +my $lAUSignature = lAUSignature_example; # String | contains the LAU signature, base64 ecoded
    +my $requestBody = WWW::SwaggerClient::Object::Camt.a04.001.03->new(); # Camt.a04.001.03 | Last Changed Payment Transactions Request
     
     eval { 
    -    $api_instance->updatePet(body => $body);
    +    my $result = $api_instance->getChangedPaymentTransactionsPost(lAUApplicationID => $lAUApplicationID, lAUVersion => $lAUVersion, lAUCallTime => $lAUCallTime, lAURequestNonce => $lAURequestNonce, lAUSigned => $lAUSigned, lAUSignature => $lAUSignature, requestBody => $requestBody);
    +    print Dumper($result);
     };
     if ($@) {
    -    warn "Exception when calling PetApi->updatePet: $@\n";
    +    warn "Exception when calling GetChangedPaymentTransactionsApi->getChangedPaymentTransactionsPost: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import swagger_client
     from swagger_client.rest import ApiException
     from pprint import pprint
     
    -# Configure OAuth2 access token for authorization: petstore_auth
    -swagger_client.configuration.access_token = 'YOUR_ACCESS_TOKEN'
    -
     # create an instance of the API class
    -api_instance = swagger_client.PetApi()
    -body =  # Pet | Pet object that needs to be added to the store
    +api_instance = swagger_client.GetChangedPaymentTransactionsApi()
    +lAUApplicationID = lAUApplicationID_example # String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001)
    +lAUVersion = lAUVersion_example # String | version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0)
    +lAUCallTime = lAUCallTime_example # String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z)
    +lAURequestNonce = lAURequestNonce_example # String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074)
    +lAUSigned = lAUSigned_example # String | service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[FullViewer/Scope/cclabeb0]))
    +lAUSignature = lAUSignature_example # String | contains the LAU signature, base64 ecoded (default to U1khA8h9Lm1PqzB99fG6uw==)
    +requestBody =  # Camt.a04.001.03 | Last Changed Payment Transactions Request
     
     try: 
    -    # Update an existing pet
    -    api_instance.update_pet(body)
    +    # Get Changed Payment Transactions
    +    api_response = api_instance.get_changed_payment_transactions_post(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, requestBody)
    +    pprint(api_response)
     except ApiException as e:
    -    print("Exception when calling PetApi->updatePet: %s\n" % e)
    + print("Exception when calling GetChangedPaymentTransactionsApi->getChangedPaymentTransactionsPost: %s\n" % e)

    Parameters

    +
    Header parameters
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescription
    LAUApplicationID* + + +
    +
    +
    + + String + + +
    + ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys +
    +
    +
    + Required +
    +
    +
    +
    LAUVersion* + + +
    +
    +
    + + String + + +
    + version of the LAUSigned header. Mandatory. "1.0" for this first release +
    +
    +
    + Required +
    +
    +
    +
    LAUCallTime* + + +
    +
    +
    + + String + + +
    + timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ +
    +
    +
    + Required +
    +
    +
    +
    LAURequestNonce* + + +
    +
    +
    + + String + + +
    + a random value generated by the client. Provided with the request and copied by the gpi Connector on the response +
    +
    +
    + Required +
    +
    +
    +
    LAUSigned* + + +
    +
    +
    + + String + + +
    + service specific HTTP headers +
    +
    +
    + Required +
    +
    +
    +
    LAUSignature* + + +
    +
    +
    + + String + + +
    + contains the LAU signature, base64 ecoded +
    +
    +
    + Required +
    +
    +
    +
    Body parameters
    @@ -2813,7 +4069,7 @@

    Parameters

    - + @@ -2853,486 +4109,594 @@

    Parameters

    Responses

    -

    Status: 400 - Invalid ID supplied

    +

    Status: 200 - Last Changed Payment Transactions Request

    +
    +
    + +
    + +
    +
    +
    Name Description
    body *
    requestBody * @@ -2821,11 +4077,11 @@

    Parameters

    $(document).ready(function() { var schemaWrapper = { "in" : "body", - "name" : "body", - "description" : "Pet object that needs to be added to the store", + "name" : "request_body", + "description" : "Last Changed Payment Transactions Request", "required" : true, "schema" : { - "$ref" : "#/definitions/Pet" + "$ref" : "#/definitions/camt.a04.001.03" } }; var schema = schemaWrapper.schema; @@ -2839,12 +4095,12 @@

    Parameters

    } var view = new JSONSchemaView(schema,2,{isBodyParam: true}); - var result = $('#d2e199_updatePet_body'); + var result = $('#d2e199_getChangedPaymentTransactionsPost_requestBody'); result.empty(); result.append(view.render()); }); -
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeFormatDescription
    LAUApplicationIDStringID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    LAUVersionStringversion of the LAUSigned header. Mandatory. "1.0" for this first release
    LAUCallTimeStringtimestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    LAURequestNonceStringa random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    LAUResponseNonceStringa random value generated by the gpi Connector on the response
    LAUSignatureStringcontains the LAU signature, base64 ecoded
    +
    -

    Status: 404 - Pet not found

    +

    Status: 400 - Bad Request

    +
    +
    + +
    + +
    -

    Status: 405 - Validation exception

    +

    Status: 401 - Unauthorized WWW-Authenticate: Bearer realm='SwAP'

    -
    - -
    -
    -
    -
    -
    -
    -

    updatePetWithForm

    -

    Updates a pet in the store with form data

    -
    -
    -
    -

    -

    -

    -
    -
    /pet/{petId}
    -

    -

    Usage and SDK Samples

    -

    - - -
    -
    -
    curl -X POST "http://petstore.swagger.io/v2/pet/{petId}"
    -
    -
    -
    import io.swagger.client.*;
    -import io.swagger.client.auth.*;
    -import io.swagger.client.model.*;
    -import io.swagger.client.api.PetApi;
    -
    -import java.io.File;
    -import java.util.*;
    -
    -public class PetApiExample {
    -
    -    public static void main(String[] args) {
    -        ApiClient defaultClient = Configuration.getDefaultApiClient();
    -        
    -        // Configure OAuth2 access token for authorization: petstore_auth
    -        OAuth petstore_auth = (OAuth) defaultClient.getAuthentication("petstore_auth");
    -        petstore_auth.setAccessToken("YOUR ACCESS TOKEN");
    -
    -        PetApi apiInstance = new PetApi();
    -        Long petId = 789; // Long | ID of pet that needs to be updated
    -        String name = name_example; // String | Updated name of the pet
    -        String status = status_example; // String | Updated status of the pet
    -        try {
    -            apiInstance.updatePetWithForm(petId, name, status);
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling PetApi#updatePetWithForm");
    -            e.printStackTrace();
    -        }
    -    }
    -}
    -
    - -
    -
    import io.swagger.client.api.PetApi;
    -
    -public class PetApiExample {
    -
    -    public static void main(String[] args) {
    -        PetApi apiInstance = new PetApi();
    -        Long petId = 789; // Long | ID of pet that needs to be updated
    -        String name = name_example; // String | Updated name of the pet
    -        String status = status_example; // String | Updated status of the pet
    -        try {
    -            apiInstance.updatePetWithForm(petId, name, status);
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling PetApi#updatePetWithForm");
    -            e.printStackTrace();
    -        }
    -    }
    -}
    -
    - -
    -
    Configuration *apiConfig = [Configuration sharedConfig];
    -
    -// Configure OAuth2 access token for authorization: (authentication scheme: petstore_auth)
    -[apiConfig setAccessToken:@"YOUR_ACCESS_TOKEN"];
    -
    -Long *petId = 789; // ID of pet that needs to be updated
    -String *name = name_example; // Updated name of the pet (optional)
    -String *status = status_example; // Updated status of the pet (optional)
    -
    -PetApi *apiInstance = [[PetApi alloc] init];
    +                                
    +
    + +
    + +
    -
    -
    var SwaggerPetstore = require('swagger_petstore');
    -var defaultClient = SwaggerPetstore.ApiClient.instance;
    -
    -// Configure OAuth2 access token for authorization: petstore_auth
    -var petstore_auth = defaultClient.authentications['petstore_auth'];
    -petstore_auth.accessToken = "YOUR ACCESS TOKEN"
    -
    -var api = new SwaggerPetstore.PetApi()
    +                            

    Status: 404 - Not Found

    -var petId = 789; // {Long} ID of pet that needs to be updated + -var callback = function(error, data, response) { - if (error) { - console.error(error); - } else { - console.log('API called successfully.'); +
    +
    +
    + +
    + +
    -
    -
    use Data::Dumper;
    -use WWW::SwaggerClient::Configuration;
    -use WWW::SwaggerClient::PetApi;
    +                            

    Status: 429 - Too many requests

    -# Configure OAuth2 access token for authorization: petstore_auth -$WWW::SwaggerClient::Configuration::access_token = 'YOUR_ACCESS_TOKEN'; + -eval { - $api_instance->updatePetWithForm(petId => $petId, name => $name, status => $status); +
    +
    +
    + +
    + +
    -
    - -

    Parameters

    - -
    Path parameters
    - - - - - - - - +
    NameDescription
    petId* +

    Status: 500 - Internal Server Error

    -
    -
    -
    - - Long - - - (int64) - - -
    - ID of pet that needs to be updated -
    -
    -
    - Required -
    -
    -
    -
    + +
    +
    +
    + +
    + +
    +
    -
    Form parameters
    - - - - - - - - +
    +
    +
    + +
    + +
    +
    +

    Status: 503 - Service Unavailable

    -
    -
    -
    - - String - +
    -
    -
    - - + -
    NameDescription
    name +

    Status: 502 - Bad Gateway

    + -
    - Updated name of the pet -
    - - - -
    +
    +
    +
    + +
    + +
    +
    -

    Responses

    -

    Status: 405 - Invalid input

    +

    Status: 504 - Gateway Timeout

    +
    +
    + +
    + +

    -
    -
    +
    +
    +

    GetInvalidEvents

    +
    +
    -

    uploadFile

    -

    uploads an image

    +

    getInvalidEventsPost

    +

    Get Invalid Events

    -

    +

    This API is a payment events' query to get invalid events for payment transactions within a given time frame. An event is either a payment or a status confirmation.


    -
    /pet/{petId}/uploadImage
    +
    /get_invalid_events

    Usage and SDK Samples

    -
    -
    curl -X POST "http://petstore.swagger.io/v2/pet/{petId}/uploadImage"
    +
    +
    curl -X POST "https://local-api-domain/swift-apitracker-pilot/v2/get_invalid_events"
    -
    +
    import io.swagger.client.*;
     import io.swagger.client.auth.*;
     import io.swagger.client.model.*;
    -import io.swagger.client.api.PetApi;
    +import io.swagger.client.api.GetInvalidEventsApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class PetApiExample {
    +public class GetInvalidEventsApiExample {
     
         public static void main(String[] args) {
    -        ApiClient defaultClient = Configuration.getDefaultApiClient();
             
    -        // Configure OAuth2 access token for authorization: petstore_auth
    -        OAuth petstore_auth = (OAuth) defaultClient.getAuthentication("petstore_auth");
    -        petstore_auth.setAccessToken("YOUR ACCESS TOKEN");
    -
    -        PetApi apiInstance = new PetApi();
    -        Long petId = 789; // Long | ID of pet to update
    -        String additionalMetadata = additionalMetadata_example; // String | Additional data to pass to server
    -        File file = /path/to/file.txt; // File | file to upload
    +        GetInvalidEventsApi apiInstance = new GetInvalidEventsApi();
    +        String lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +        String lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +        String lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +        String lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +        String lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +        String lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded
    +        Camt.a05.001.03 requestBody = ; // Camt.a05.001.03 | Payment Event Request
             try {
    -            ApiResponse result = apiInstance.uploadFile(petId, additionalMetadata, file);
    +            camt.a05.002.03 result = apiInstance.getInvalidEventsPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, requestBody);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling PetApi#uploadFile");
    +            System.err.println("Exception when calling GetInvalidEventsApi#getInvalidEventsPost");
                 e.printStackTrace();
             }
         }
     }
    -
    -
    import io.swagger.client.api.PetApi;
    +                          
    +
    import io.swagger.client.api.GetInvalidEventsApi;
     
    -public class PetApiExample {
    +public class GetInvalidEventsApiExample {
     
         public static void main(String[] args) {
    -        PetApi apiInstance = new PetApi();
    -        Long petId = 789; // Long | ID of pet to update
    -        String additionalMetadata = additionalMetadata_example; // String | Additional data to pass to server
    -        File file = /path/to/file.txt; // File | file to upload
    +        GetInvalidEventsApi apiInstance = new GetInvalidEventsApi();
    +        String lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +        String lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +        String lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +        String lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +        String lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +        String lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded
    +        Camt.a05.001.03 requestBody = ; // Camt.a05.001.03 | Payment Event Request
             try {
    -            ApiResponse result = apiInstance.uploadFile(petId, additionalMetadata, file);
    +            camt.a05.002.03 result = apiInstance.getInvalidEventsPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, requestBody);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling PetApi#uploadFile");
    +            System.err.println("Exception when calling GetInvalidEventsApi#getInvalidEventsPost");
                 e.printStackTrace();
             }
         }
     }
    -
    -
    Configuration *apiConfig = [Configuration sharedConfig];
    -
    -// Configure OAuth2 access token for authorization: (authentication scheme: petstore_auth)
    -[apiConfig setAccessToken:@"YOUR_ACCESS_TOKEN"];
    -
    -Long *petId = 789; // ID of pet to update
    -String *additionalMetadata = additionalMetadata_example; // Additional data to pass to server (optional)
    -File *file = /path/to/file.txt; // file to upload (optional)
    -
    -PetApi *apiInstance = [[PetApi alloc] init];
    -
    -// uploads an image
    -[apiInstance uploadFileWith:petId
    -    additionalMetadata:additionalMetadata
    -    file:file
    -              completionHandler: ^(ApiResponse output, NSError* error) {
    +                            
    +
    String *lAUApplicationID = lAUApplicationID_example; // ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001)
    +String *lAUVersion = lAUVersion_example; // version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0)
    +String *lAUCallTime = lAUCallTime_example; // timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z)
    +String *lAURequestNonce = lAURequestNonce_example; // a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074)
    +String *lAUSigned = lAUSigned_example; // service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[FullViewer/Scope/cclabeb0]))
    +String *lAUSignature = lAUSignature_example; // contains the LAU signature, base64 ecoded (default to U1khA8h9Lm1PqzB99fG6uw==)
    +Camt.a05.001.03 *requestBody = ; // Payment Event Request
    +
    +GetInvalidEventsApi *apiInstance = [[GetInvalidEventsApi alloc] init];
    +
    +// Get Invalid Events
    +[apiInstance getInvalidEventsPostWith:lAUApplicationID
    +    lAUVersion:lAUVersion
    +    lAUCallTime:lAUCallTime
    +    lAURequestNonce:lAURequestNonce
    +    lAUSigned:lAUSigned
    +    lAUSignature:lAUSignature
    +    requestBody:requestBody
    +              completionHandler: ^(camt.a05.002.03 output, NSError* error) {
                                 if (output) {
                                     NSLog(@"%@", output);
                                 }
    @@ -3343,22 +4707,25 @@ 

    Usage and SDK Samples

    -
    -
    var SwaggerPetstore = require('swagger_petstore');
    -var defaultClient = SwaggerPetstore.ApiClient.instance;
    +                            
    +
    var GpiApi = require('gpi_api');
     
    -// Configure OAuth2 access token for authorization: petstore_auth
    -var petstore_auth = defaultClient.authentications['petstore_auth'];
    -petstore_auth.accessToken = "YOUR ACCESS TOKEN"
    +var api = new GpiApi.GetInvalidEventsApi()
     
    -var api = new SwaggerPetstore.PetApi()
    +var lAUApplicationID = lAUApplicationID_example; // {String} ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
     
    -var petId = 789; // {Long} ID of pet to update
    +var lAUVersion = lAUVersion_example; // {String} version of the LAUSigned header. Mandatory. "1.0" for this first release
    +
    +var lAUCallTime = lAUCallTime_example; // {String} timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +
    +var lAURequestNonce = lAURequestNonce_example; // {String} a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +
    +var lAUSigned = lAUSigned_example; // {String} service specific HTTP headers
    +
    +var lAUSignature = lAUSignature_example; // {String} contains the LAU signature, base64 ecoded
    +
    +var requestBody = ; // {Camt.a05.001.03} Payment Event Request
     
    -var opts = { 
    -  'additionalMetadata': additionalMetadata_example, // {String} Additional data to pass to server
    -  'file': /path/to/file.txt // {File} file to upload
    -};
     
     var callback = function(error, data, response) {
       if (error) {
    @@ -3367,14 +4734,14 @@ 

    Usage and SDK Samples

    console.log('API called successfully. Returned data: ' + data); } }; -api.uploadFile(petId, opts, callback); +api.getInvalidEventsPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, requestBody, callback);
    - -
    +
    using System;
     using System.Diagnostics;
     using IO.Swagger.Api;
    @@ -3383,28 +4750,29 @@ 

    Usage and SDK Samples

    namespace Example { - public class uploadFileExample + public class getInvalidEventsPostExample { 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 = new File(); // File | file to upload (optional) + var apiInstance = new GetInvalidEventsApi(); + var lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001) + var lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0) + var lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z) + var lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074) + var lAUSigned = lAUSigned_example; // String | service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[FullViewer/Scope/cclabeb0])) + var lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded (default to U1khA8h9Lm1PqzB99fG6uw==) + var requestBody = new Camt.a05.001.03(); // Camt.a05.001.03 | Payment Event Request try { - // uploads an image - ApiResponse result = apiInstance.uploadFile(petId, additionalMetadata, file); + // Get Invalid Events + camt.a05.002.03 result = apiInstance.getInvalidEventsPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, requestBody); Debug.WriteLine(result); } catch (Exception e) { - Debug.Print("Exception when calling PetApi.uploadFile: " + e.Message ); + Debug.Print("Exception when calling GetInvalidEventsApi.getInvalidEventsPost: " + e.Message ); } } } @@ -3412,98 +4780,145 @@

    Usage and SDK Samples

    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
    -// Configure OAuth2 access token for authorization: petstore_auth
    -Swagger\Client\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');
    -
    -$api_instance = new Swagger\Client\Api\PetApi();
    -$petId = 789; // Long | ID of pet to update
    -$additionalMetadata = additionalMetadata_example; // String | Additional data to pass to server
    -$file = /path/to/file.txt; // File | file to upload
    +$api_instance = new Swagger\Client\Api\GetInvalidEventsApi();
    +$lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +$lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +$lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +$lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +$lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +$lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded
    +$requestBody = ; // Camt.a05.001.03 | Payment Event Request
     
     try {
    -    $result = $api_instance->uploadFile($petId, $additionalMetadata, $file);
    +    $result = $api_instance->getInvalidEventsPost($lAUApplicationID, $lAUVersion, $lAUCallTime, $lAURequestNonce, $lAUSigned, $lAUSignature, $requestBody);
         print_r($result);
     } catch (Exception $e) {
    -    echo 'Exception when calling PetApi->uploadFile: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling GetInvalidEventsApi->getInvalidEventsPost: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::SwaggerClient::Configuration;
    -use WWW::SwaggerClient::PetApi;
    +use WWW::SwaggerClient::GetInvalidEventsApi;
     
    -# Configure OAuth2 access token for authorization: petstore_auth
    -$WWW::SwaggerClient::Configuration::access_token = 'YOUR_ACCESS_TOKEN';
    -
    -my $api_instance = WWW::SwaggerClient::PetApi->new();
    -my $petId = 789; # Long | ID of pet to update
    -my $additionalMetadata = additionalMetadata_example; # String | Additional data to pass to server
    -my $file = /path/to/file.txt; # File | file to upload
    +my $api_instance = WWW::SwaggerClient::GetInvalidEventsApi->new();
    +my $lAUApplicationID = lAUApplicationID_example; # String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +my $lAUVersion = lAUVersion_example; # String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +my $lAUCallTime = lAUCallTime_example; # String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +my $lAURequestNonce = lAURequestNonce_example; # String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +my $lAUSigned = lAUSigned_example; # String | service specific HTTP headers
    +my $lAUSignature = lAUSignature_example; # String | contains the LAU signature, base64 ecoded
    +my $requestBody = WWW::SwaggerClient::Object::Camt.a05.001.03->new(); # Camt.a05.001.03 | Payment Event Request
     
     eval { 
    -    my $result = $api_instance->uploadFile(petId => $petId, additionalMetadata => $additionalMetadata, file => $file);
    +    my $result = $api_instance->getInvalidEventsPost(lAUApplicationID => $lAUApplicationID, lAUVersion => $lAUVersion, lAUCallTime => $lAUCallTime, lAURequestNonce => $lAURequestNonce, lAUSigned => $lAUSigned, lAUSignature => $lAUSignature, requestBody => $requestBody);
         print Dumper($result);
     };
     if ($@) {
    -    warn "Exception when calling PetApi->uploadFile: $@\n";
    +    warn "Exception when calling GetInvalidEventsApi->getInvalidEventsPost: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import swagger_client
     from swagger_client.rest import ApiException
     from pprint import pprint
     
    -# Configure OAuth2 access token for authorization: petstore_auth
    -swagger_client.configuration.access_token = 'YOUR_ACCESS_TOKEN'
    +# create an instance of the API class
    +api_instance = swagger_client.GetInvalidEventsApi()
    +lAUApplicationID = lAUApplicationID_example # String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001)
    +lAUVersion = lAUVersion_example # String | version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0)
    +lAUCallTime = lAUCallTime_example # String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z)
    +lAURequestNonce = lAURequestNonce_example # String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074)
    +lAUSigned = lAUSigned_example # String | service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[FullViewer/Scope/cclabeb0]))
    +lAUSignature = lAUSignature_example # String | contains the LAU signature, base64 ecoded (default to U1khA8h9Lm1PqzB99fG6uw==)
    +requestBody =  # Camt.a05.001.03 | Payment Event Request
    +
    +try: 
    +    # Get Invalid Events
    +    api_response = api_instance.get_invalid_events_post(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, requestBody)
    +    pprint(api_response)
    +except ApiException as e:
    +    print("Exception when calling GetInvalidEventsApi->getInvalidEventsPost: %s\n" % e)
    +
    +
    + +

    Parameters

    + + +
    Header parameters
    + + + + + + + + + + + + -
    Path parameters
    -
    NameDescription
    LAUApplicationID* + + +
    +
    +
    + + String + + +
    + ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys +
    +
    +
    + Required +
    +
    +
    +
    LAUVersion* -# create an instance of the API class -api_instance = swagger_client.PetApi() -petId = 789 # Long | ID of pet to update -additionalMetadata = additionalMetadata_example # String | Additional data to pass to server (optional) -file = /path/to/file.txt # File | file to upload (optional) -try: - # uploads an image - api_response = api_instance.upload_file(petId, additionalMetadata=additionalMetadata, file=file) - pprint(api_response) -except ApiException as e: - print("Exception when calling PetApi->uploadFile: %s\n" % e) - - +
    +
    +
    + + String + -

    Parameters

    +
    + version of the LAUSigned header. Mandatory. "1.0" for this first release +
    +
    +
    + Required +
    +
    +
    +
    - - - - - + -
    NameDescription
    petId*
    LAUCallTime* -
    +
    - Long + String - - (int64) -
    - ID of pet to update + timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    @@ -3514,21 +4929,34 @@

    Parameters

    + LAURequestNonce* + + +
    +
    +
    + + String + +
    + a random value generated by the client. Provided with the request and copied by the gpi Connector on the response +
    +
    +
    + Required +
    +
    +
    + + -
    Form parameters
    - - - - - - + - + @@ -3566,33 +5000,330 @@

    Parameters

    NameDescription
    additionalMetadata
    LAUSigned* -
    +
    @@ -3536,29 +4964,35 @@

    Parameters

    - Additional data to pass to server + service specific HTTP headers
    +
    + Required +
    file
    LAUSignature* -
    +
    - File + String
    - file to upload + contains the LAU signature, base64 ecoded
    +
    + Required +
    +
    Body parameters
    + + + + + + + + + +
    NameDescription
    requestBody * + + + +
    +
    + + + +

    Responses

    +

    Status: 200 - Payment Events Response

    + + + +
    +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeFormatDescription
    LAUApplicationIDStringID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    LAUVersionStringversion of the LAUSigned header. Mandatory. "1.0" for this first release
    LAUCallTimeStringtimestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    LAURequestNonceStringa random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    LAUResponseNonceStringa random value generated by the gpi Connector on the response
    LAUSignatureStringcontains the LAU signature, base64 ecoded
    +
    +
    + +

    Status: 400 - Bad Request

    + + + +
    +
    +
    + +
    + +
    +
    + +

    Status: 401 - Unauthorized WWW-Authenticate: Bearer realm='SwAP'

    + + + +
    +
    +
    + +
    + +
    +
    + +

    Status: 404 - Not Found

    + + + +
    +
    +
    + +
    + +
    +
    -

    Responses

    -

    Status: 200 - successful operation

    +

    Status: 429 - Too many requests

    -
    -
    +
    +
    - +
    -
    -
    -
    -
    -
    -

    Store

    -
    -
    -
    -

    deleteOrder

    -

    Delete purchase order by ID

    -
    -
    -
    -

    -

    For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors

    -

    -
    -
    /store/order/{orderId}
    -

    -

    Usage and SDK Samples

    -

    - - -
    -
    -
    curl -X DELETE "http://petstore.swagger.io/v2/store/order/{orderId}"
    -
    -
    -
    import io.swagger.client.*;
    -import io.swagger.client.auth.*;
    -import io.swagger.client.model.*;
    -import io.swagger.client.api.StoreApi;
    -
    -import java.io.File;
    -import java.util.*;
    -
    -public class StoreApiExample {
    -
    -    public static void main(String[] args) {
    -        
    -        StoreApi apiInstance = new StoreApi();
    -        String orderId = orderId_example; // String | ID of the order that needs to be deleted
    -        try {
    -            apiInstance.deleteOrder(orderId);
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling StoreApi#deleteOrder");
    -            e.printStackTrace();
    -        }
    -    }
    -}
    -
    - -
    -
    import io.swagger.client.api.StoreApi;
    -
    -public class StoreApiExample {
    -
    -    public static void main(String[] args) {
    -        StoreApi apiInstance = new StoreApi();
    -        String orderId = orderId_example; // String | ID of the order that needs to be deleted
    -        try {
    -            apiInstance.deleteOrder(orderId);
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling StoreApi#deleteOrder");
    -            e.printStackTrace();
    -        }
    -    }
    -}
    -
    - -
    -
    String *orderId = orderId_example; // ID of the order that needs to be deleted
    -
    -StoreApi *apiInstance = [[StoreApi alloc] init];
    -
    -// Delete purchase order by ID
    -[apiInstance deleteOrderWith:orderId
    -              completionHandler: ^(NSError* error) {
    -                            if (error) {
    -                                NSLog(@"Error: %@", error);
    -                            }
    -                        }];
    -
    -
    - -
    -
    var SwaggerPetstore = require('swagger_petstore');
    -
    -var api = new SwaggerPetstore.StoreApi()
    +                            

    Status: 500 - Internal Server Error

    -var orderId = orderId_example; // {String} ID of the order that needs to be deleted + -var callback = function(error, data, response) { - if (error) { - console.error(error); - } else { - console.log('API called successfully.'); +
    +
    +
    + +
    + +
    -
    -
    <?php
    -require_once(__DIR__ . '/vendor/autoload.php');
    -
    -$api_instance = new Swagger\Client\Api\StoreApi();
    -$orderId = orderId_example; // String | ID of the order that needs to be deleted
    -
    -try {
    -    $api_instance->deleteOrder($orderId);
    -} catch (Exception $e) {
    -    echo 'Exception when calling StoreApi->deleteOrder: ', $e->getMessage(), PHP_EOL;
    -}
    -?>
    -
    +

    Status: 502 - Bad Gateway

    -
    -
    use Data::Dumper;
    -use WWW::SwaggerClient::Configuration;
    -use WWW::SwaggerClient::StoreApi;
    +                            
     
    -eval { 
    -    $api_instance->deleteOrder(orderId => $orderId);
    +                            
    +
    +
    + +
    + +
    -
    - -

    Parameters

    - -
    Path parameters
    - - - - - - - - - -
    NameDescription
    orderId* - - -
    -
    -
    - - String - - -
    - ID of the order that needs to be deleted -
    -
    -
    - Required -
    -
    -
    -
    - - - - -

    Responses

    -

    Status: 400 - Invalid ID supplied

    +

    Status: 503 - Service Unavailable

    +
    +
    + +
    + +
    -

    Status: 404 - Order not found

    +

    Status: 504 - Gateway Timeout

    +
    +
    + +
    + +

    -
    -
    +
    +
    +

    GetPaymentTransactionDetails

    +
    +
    -

    getInventory

    -

    Returns pet inventories by status

    +

    getPaymentTransactionDetailsPost

    +

    Get Payment Transaction Details

    -

    Returns a map of status codes to quantities

    +

    This API is a payment query to get detailed information regarding a given payment. It requires the UETR to be known.


    -
    /store/inventory
    +
    /get_payment_transaction_details

    Usage and SDK Samples

    -
    -
    curl -X GET -H "api_key: [[apiKey]]" "http://petstore.swagger.io/v2/store/inventory"
    +
    +
    curl -X POST "https://local-api-domain/swift-apitracker-pilot/v2/get_payment_transaction_details"
    -
    +
    import io.swagger.client.*;
     import io.swagger.client.auth.*;
     import io.swagger.client.model.*;
    -import io.swagger.client.api.StoreApi;
    +import io.swagger.client.api.GetPaymentTransactionDetailsApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class StoreApiExample {
    +public class GetPaymentTransactionDetailsApiExample {
     
         public static void main(String[] args) {
    -        ApiClient defaultClient = Configuration.getDefaultApiClient();
             
    -        // Configure API key authorization: api_key
    -        ApiKeyAuth api_key = (ApiKeyAuth) defaultClient.getAuthentication("api_key");
    -        api_key.setApiKey("YOUR API KEY");
    -        // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
    -        //api_key.setApiKeyPrefix("Token");
    -
    -        StoreApi apiInstance = new StoreApi();
    +        GetPaymentTransactionDetailsApi apiInstance = new GetPaymentTransactionDetailsApi();
    +        String lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +        String lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +        String lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +        String lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +        String lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +        String lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded
    +        Camt.a02.001.03 requestBody = ; // Camt.a02.001.03 | Payment Transaction Request
             try {
    -            map['String', 'Integer'] result = apiInstance.getInventory();
    +            camt.a02.002.03 result = apiInstance.getPaymentTransactionDetailsPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, requestBody);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling StoreApi#getInventory");
    +            System.err.println("Exception when calling GetPaymentTransactionDetailsApi#getPaymentTransactionDetailsPost");
                 e.printStackTrace();
             }
         }
     }
    -
    -
    import io.swagger.client.api.StoreApi;
    +                          
    +
    import io.swagger.client.api.GetPaymentTransactionDetailsApi;
     
    -public class StoreApiExample {
    +public class GetPaymentTransactionDetailsApiExample {
     
         public static void main(String[] args) {
    -        StoreApi apiInstance = new StoreApi();
    +        GetPaymentTransactionDetailsApi apiInstance = new GetPaymentTransactionDetailsApi();
    +        String lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +        String lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +        String lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +        String lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +        String lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +        String lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded
    +        Camt.a02.001.03 requestBody = ; // Camt.a02.001.03 | Payment Transaction Request
             try {
    -            map['String', 'Integer'] result = apiInstance.getInventory();
    +            camt.a02.002.03 result = apiInstance.getPaymentTransactionDetailsPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, requestBody);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling StoreApi#getInventory");
    +            System.err.println("Exception when calling GetPaymentTransactionDetailsApi#getPaymentTransactionDetailsPost");
                 e.printStackTrace();
             }
         }
     }
    -
    -
    Configuration *apiConfig = [Configuration sharedConfig];
    -
    -// Configure API key authorization: (authentication scheme: api_key)
    -[apiConfig setApiKey:@"YOUR_API_KEY" forApiKeyIdentifier:@"api_key"];
    -// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
    -//[apiConfig setApiKeyPrefix:@"Bearer" forApiKeyIdentifier:@"api_key"];
    -
    -
    -StoreApi *apiInstance = [[StoreApi alloc] init];
    -
    -// Returns pet inventories by status
    -[apiInstance getInventoryWithCompletionHandler: 
    -              ^(map['String', 'Integer'] output, NSError* error) {
    +                            
    +
    String *lAUApplicationID = lAUApplicationID_example; // ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001)
    +String *lAUVersion = lAUVersion_example; // version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0)
    +String *lAUCallTime = lAUCallTime_example; // timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z)
    +String *lAURequestNonce = lAURequestNonce_example; // a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074)
    +String *lAUSigned = lAUSigned_example; // service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[FullViewer/Scope/cclabeb0]))
    +String *lAUSignature = lAUSignature_example; // contains the LAU signature, base64 ecoded (default to U1khA8h9Lm1PqzB99fG6uw==)
    +Camt.a02.001.03 *requestBody = ; // Payment Transaction Request
    +
    +GetPaymentTransactionDetailsApi *apiInstance = [[GetPaymentTransactionDetailsApi alloc] init];
    +
    +// Get Payment Transaction Details
    +[apiInstance getPaymentTransactionDetailsPostWith:lAUApplicationID
    +    lAUVersion:lAUVersion
    +    lAUCallTime:lAUCallTime
    +    lAURequestNonce:lAURequestNonce
    +    lAUSigned:lAUSigned
    +    lAUSignature:lAUSignature
    +    requestBody:requestBody
    +              completionHandler: ^(camt.a02.002.03 output, NSError* error) {
                                 if (output) {
                                     NSLog(@"%@", output);
                                 }
    @@ -3984,17 +5644,25 @@ 

    Usage and SDK Samples

    -
    -
    var SwaggerPetstore = require('swagger_petstore');
    -var defaultClient = SwaggerPetstore.ApiClient.instance;
    +                            
    +
    var GpiApi = require('gpi_api');
    +
    +var api = new GpiApi.GetPaymentTransactionDetailsApi()
    +
    +var lAUApplicationID = lAUApplicationID_example; // {String} ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +
    +var lAUVersion = lAUVersion_example; // {String} version of the LAUSigned header. Mandatory. "1.0" for this first release
    +
    +var lAUCallTime = lAUCallTime_example; // {String} timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
     
    -// Configure API key authorization: api_key
    -var api_key = defaultClient.authentications['api_key'];
    -api_key.apiKey = "YOUR API KEY"
    -// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
    -//api_key.apiKeyPrefix['api_key'] = "Token"
    +var lAURequestNonce = lAURequestNonce_example; // {String} a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +
    +var lAUSigned = lAUSigned_example; // {String} service specific HTTP headers
    +
    +var lAUSignature = lAUSignature_example; // {String} contains the LAU signature, base64 ecoded
    +
    +var requestBody = ; // {Camt.a02.001.03} Payment Transaction Request
     
    -var api = new SwaggerPetstore.StoreApi()
     
     var callback = function(error, data, response) {
       if (error) {
    @@ -4003,14 +5671,14 @@ 

    Usage and SDK Samples

    console.log('API called successfully. Returned data: ' + data); } }; -api.getInventory(callback); +api.getPaymentTransactionDetailsPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, requestBody, callback);
    - -
    +
    using System;
     using System.Diagnostics;
     using IO.Swagger.Api;
    @@ -4019,27 +5687,29 @@ 

    Usage and SDK Samples

    namespace Example { - public class getInventoryExample + public class getPaymentTransactionDetailsPostExample { public void main() { - // Configure API key authorization: api_key - Configuration.Default.ApiKey.Add("api_key", "YOUR_API_KEY"); - // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed - // Configuration.Default.ApiKeyPrefix.Add("api_key", "Bearer"); - - var apiInstance = new StoreApi(); + var apiInstance = new GetPaymentTransactionDetailsApi(); + var lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001) + var lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0) + var lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z) + var lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074) + var lAUSigned = lAUSigned_example; // String | service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[FullViewer/Scope/cclabeb0])) + var lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded (default to U1khA8h9Lm1PqzB99fG6uw==) + var requestBody = new Camt.a02.001.03(); // Camt.a02.001.03 | Payment Transaction Request try { - // Returns pet inventories by status - map['String', 'Integer'] result = apiInstance.getInventory(); + // Get Payment Transaction Details + camt.a02.002.03 result = apiInstance.getPaymentTransactionDetailsPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, requestBody); Debug.WriteLine(result); } catch (Exception e) { - Debug.Print("Exception when calling StoreApi.getInventory: " + e.Message ); + Debug.Print("Exception when calling GetPaymentTransactionDetailsApi.getPaymentTransactionDetailsPost: " + e.Message ); } } } @@ -4047,108 +5717,421 @@

    Usage and SDK Samples

    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
    -// Configure API key authorization: api_key
    -Swagger\Client\Configuration::getDefaultConfiguration()->setApiKey('api_key', 'YOUR_API_KEY');
    -// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
    -// Swagger\Client\Configuration::getDefaultConfiguration()->setApiKeyPrefix('api_key', 'Bearer');
    -
    -$api_instance = new Swagger\Client\Api\StoreApi();
    +$api_instance = new Swagger\Client\Api\GetPaymentTransactionDetailsApi();
    +$lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +$lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +$lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +$lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +$lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +$lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded
    +$requestBody = ; // Camt.a02.001.03 | Payment Transaction Request
     
     try {
    -    $result = $api_instance->getInventory();
    +    $result = $api_instance->getPaymentTransactionDetailsPost($lAUApplicationID, $lAUVersion, $lAUCallTime, $lAURequestNonce, $lAUSigned, $lAUSignature, $requestBody);
         print_r($result);
     } catch (Exception $e) {
    -    echo 'Exception when calling StoreApi->getInventory: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling GetPaymentTransactionDetailsApi->getPaymentTransactionDetailsPost: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::SwaggerClient::Configuration;
    -use WWW::SwaggerClient::StoreApi;
    -
    -# Configure API key authorization: api_key
    -$WWW::SwaggerClient::Configuration::api_key->{'api_key'} = 'YOUR_API_KEY';
    -# uncomment below to setup prefix (e.g. Bearer) for API key, if needed
    -#$WWW::SwaggerClient::Configuration::api_key_prefix->{'api_key'} = "Bearer";
    +use WWW::SwaggerClient::GetPaymentTransactionDetailsApi;
     
    -my $api_instance = WWW::SwaggerClient::StoreApi->new();
    +my $api_instance = WWW::SwaggerClient::GetPaymentTransactionDetailsApi->new();
    +my $lAUApplicationID = lAUApplicationID_example; # String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +my $lAUVersion = lAUVersion_example; # String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +my $lAUCallTime = lAUCallTime_example; # String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +my $lAURequestNonce = lAURequestNonce_example; # String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +my $lAUSigned = lAUSigned_example; # String | service specific HTTP headers
    +my $lAUSignature = lAUSignature_example; # String | contains the LAU signature, base64 ecoded
    +my $requestBody = WWW::SwaggerClient::Object::Camt.a02.001.03->new(); # Camt.a02.001.03 | Payment Transaction Request
     
     eval { 
    -    my $result = $api_instance->getInventory();
    +    my $result = $api_instance->getPaymentTransactionDetailsPost(lAUApplicationID => $lAUApplicationID, lAUVersion => $lAUVersion, lAUCallTime => $lAUCallTime, lAURequestNonce => $lAURequestNonce, lAUSigned => $lAUSigned, lAUSignature => $lAUSignature, requestBody => $requestBody);
         print Dumper($result);
     };
     if ($@) {
    -    warn "Exception when calling StoreApi->getInventory: $@\n";
    +    warn "Exception when calling GetPaymentTransactionDetailsApi->getPaymentTransactionDetailsPost: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import swagger_client
     from swagger_client.rest import ApiException
     from pprint import pprint
     
    -# Configure API key authorization: api_key
    -swagger_client.configuration.api_key['api_key'] = 'YOUR_API_KEY'
    -# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
    -# swagger_client.configuration.api_key_prefix['api_key'] = 'Bearer'
    -
     # create an instance of the API class
    -api_instance = swagger_client.StoreApi()
    +api_instance = swagger_client.GetPaymentTransactionDetailsApi()
    +lAUApplicationID = lAUApplicationID_example # String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001)
    +lAUVersion = lAUVersion_example # String | version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0)
    +lAUCallTime = lAUCallTime_example # String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z)
    +lAURequestNonce = lAURequestNonce_example # String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074)
    +lAUSigned = lAUSigned_example # String | service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[FullViewer/Scope/cclabeb0]))
    +lAUSignature = lAUSignature_example # String | contains the LAU signature, base64 ecoded (default to U1khA8h9Lm1PqzB99fG6uw==)
    +requestBody =  # Camt.a02.001.03 | Payment Transaction Request
     
     try: 
    -    # Returns pet inventories by status
    -    api_response = api_instance.get_inventory()
    +    # Get Payment Transaction Details
    +    api_response = api_instance.get_payment_transaction_details_post(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, requestBody)
         pprint(api_response)
     except ApiException as e:
    -    print("Exception when calling StoreApi->getInventory: %s\n" % e)
    + print("Exception when calling GetPaymentTransactionDetailsApi->getPaymentTransactionDetailsPost: %s\n" % e)
    +
    +
    + +

    Parameters

    + + +
    Header parameters
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescription
    LAUApplicationID* + + +
    +
    +
    + + String + + +
    + ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys +
    +
    +
    + Required +
    +
    +
    +
    LAUVersion* + + +
    +
    +
    + + String + + +
    + version of the LAUSigned header. Mandatory. "1.0" for this first release +
    +
    +
    + Required +
    +
    +
    +
    LAUCallTime* + + +
    +
    +
    + + String + + +
    + timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ +
    +
    +
    + Required +
    +
    +
    +
    LAURequestNonce* + + +
    +
    +
    + + String + + +
    + a random value generated by the client. Provided with the request and copied by the gpi Connector on the response +
    +
    +
    + Required +
    +
    +
    +
    LAUSigned* + + +
    +
    +
    + + String + + +
    + service specific HTTP headers +
    +
    +
    + Required +
    +
    +
    +
    LAUSignature* + + +
    +
    +
    + + String + + +
    + contains the LAU signature, base64 ecoded +
    +
    +
    + Required +
    +
    +
    +
    + +
    Body parameters
    + + + + + + + + + +
    NameDescription
    requestBody * + + + +
    +
    + + + +

    Responses

    +

    Status: 200 - Payment Transaction Response

    + + + +
    +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeFormatDescription
    LAUApplicationIDStringID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    LAUVersionStringversion of the LAUSigned header. Mandatory. "1.0" for this first release
    LAUCallTimeStringtimestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    LAURequestNonceStringa random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    LAUResponseNonceStringa random value generated by the gpi Connector on the response
    LAUSignatureStringcontains the LAU signature, base64 ecoded
    +
    -
    - -

    Parameters

    - - - - - -

    Responses

    -

    Status: 200 - successful operation

    +

    Status: 400 - Bad Request

    -
    -
    +
    +
    - +
    -
    -
    -
    -
    -
    -
    -

    getOrderById

    -

    Find purchase order by ID

    -
    -
    -
    -

    -

    For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions

    -

    -
    -
    /store/order/{orderId}
    -

    -

    Usage and SDK Samples

    -

    - - -
    -
    -
    curl -X GET "http://petstore.swagger.io/v2/store/order/{orderId}"
    -
    -
    -
    import io.swagger.client.*;
    -import io.swagger.client.auth.*;
    -import io.swagger.client.model.*;
    -import io.swagger.client.api.StoreApi;
    -
    -import java.io.File;
    -import java.util.*;
    -
    -public class StoreApiExample {
    -
    -    public static void main(String[] args) {
    -        
    -        StoreApi apiInstance = new StoreApi();
    -        Long orderId = 789; // Long | ID of pet that needs to be fetched
    -        try {
    -            Order result = apiInstance.getOrderById(orderId);
    -            System.out.println(result);
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling StoreApi#getOrderById");
    -            e.printStackTrace();
    -        }
    -    }
    -}
    -
    - -
    -
    import io.swagger.client.api.StoreApi;
    +                            

    Status: 401 - Unauthorized WWW-Authenticate: Bearer realm='SwAP'

    -public class StoreApiExample { +
    -
    - -
    -
    Long *orderId = 789; // ID of pet that needs to be fetched
    +                            
     
    -StoreApi *apiInstance = [[StoreApi alloc] init];
    +                            
    +
    +
    + +
    + +
    -
    -
    var SwaggerPetstore = require('swagger_petstore');
    -
    -var api = new SwaggerPetstore.StoreApi()
    +                            

    Status: 404 - Not Found

    -var orderId = 789; // {Long} ID of pet that needs to be fetched + -var callback = function(error, data, response) { - if (error) { - console.error(error); - } else { - console.log('API called successfully. Returned data: ' + data); +
    +
    +
    + +
    + +
    -
    -
    <?php
    -require_once(__DIR__ . '/vendor/autoload.php');
    -
    -$api_instance = new Swagger\Client\Api\StoreApi();
    -$orderId = 789; // Long | ID of pet that needs to be fetched
    -
    -try {
    -    $result = $api_instance->getOrderById($orderId);
    -    print_r($result);
    -} catch (Exception $e) {
    -    echo 'Exception when calling StoreApi->getOrderById: ', $e->getMessage(), PHP_EOL;
    -}
    -?>
    -
    +

    Status: 429 - Too many requests

    -
    -
    use Data::Dumper;
    -use WWW::SwaggerClient::Configuration;
    -use WWW::SwaggerClient::StoreApi;
    +                            
     
    -eval { 
    -    my $result = $api_instance->getOrderById(orderId => $orderId);
    -    print Dumper($result);
    +                            
    +
    +
    + +
    + +
    -
    - -

    Parameters

    - -
    Path parameters
    - - - - - - - - -
    NameDescription
    orderId* - - -
    -
    -
    - - Long - - - (int64) - - -
    - ID of pet that needs to be fetched -
    -
    -
    - Required -
    -
    -
    -
    +

    Status: 500 - Internal Server Error

    + +
    +
    +
    + +
    + +
    +
    -

    Responses

    -

    Status: 200 - successful operation

    +

    Status: 502 - Bad Gateway

    -
    -
    +
    +
    - +
    -

    Status: 400 - Invalid ID supplied

    +

    Status: 503 - Service Unavailable

    - -
    -
    - -

    Status: 404 - Order not found

    +
  • + Schema +
  • -
    -
    - -
    -
    -
    -
    -
    -
    -

    placeOrder

    -

    Place an order for a pet

    -
    -
    -
    -

    -

    -

    -
    -
    /store/order
    -

    -

    Usage and SDK Samples

    -

    - - -
    -
    -
    curl -X POST "http://petstore.swagger.io/v2/store/order"
    -
    -
    -
    import io.swagger.client.*;
    -import io.swagger.client.auth.*;
    -import io.swagger.client.model.*;
    -import io.swagger.client.api.StoreApi;
    -
    -import java.io.File;
    -import java.util.*;
    -
    -public class StoreApiExample {
    -
    -    public static void main(String[] args) {
    -        
    -        StoreApi apiInstance = new StoreApi();
    -        Order body = ; // Order | order placed for purchasing the pet
    -        try {
    -            Order result = apiInstance.placeOrder(body);
    -            System.out.println(result);
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling StoreApi#placeOrder");
    -            e.printStackTrace();
    -        }
    -    }
    -}
    -
    - -
    -
    import io.swagger.client.api.StoreApi;
    -
    -public class StoreApiExample {
    -
    -    public static void main(String[] args) {
    -        StoreApi apiInstance = new StoreApi();
    -        Order body = ; // Order | order placed for purchasing the pet
    -        try {
    -            Order result = apiInstance.placeOrder(body);
    -            System.out.println(result);
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling StoreApi#placeOrder");
    -            e.printStackTrace();
    -        }
    -    }
    -}
    -
    - -
    -
    Order *body = ; // order placed for purchasing the pet
    -
    -StoreApi *apiInstance = [[StoreApi alloc] init];
    -
    -// Place an order for a pet
    -[apiInstance placeOrderWith:body
    -              completionHandler: ^(Order output, NSError* error) {
    -                            if (output) {
    -                                NSLog(@"%@", output);
    -                            }
    -                            if (error) {
    -                                NSLog(@"Error: %@", error);
    -                            }
    -                        }];
    -
    -
    - -
    -
    var SwaggerPetstore = require('swagger_petstore');
    -
    -var api = new SwaggerPetstore.StoreApi()
    -
    -var body = ; // {Order} order placed for purchasing the pet
    -
    -
    -var callback = function(error, data, response) {
    -  if (error) {
    -    console.error(error);
    -  } else {
    -    console.log('API called successfully. Returned data: ' + data);
    +                                
    +
    + +
    + +
    -
    - -

    Parameters

    - +

    Status: 504 - Gateway Timeout

    -
    Body parameters
    - - - - - - - - - -
    NameDescription
    body * + - -
    -
    - + var schema = schemaWrapper.schema; + if (schema.$ref != null) { + schema = defsParser.$refs.get(schema.$ref); + } else { + schemaWrapper.definitions = defs; + $RefParser.dereference(schemaWrapper).catch(function(err) { + console.log(err); + }); + } + //console.log(JSON.stringify(schema)); + var view = new JSONSchemaView(schema, 3); + $('#responses-getPaymentTransactionDetailsPost-504-schema-data').val(stringify(schema)); + var result = $('#responses-getPaymentTransactionDetailsPost-504-schema-504'); + result.empty(); + result.append(view.render()); + }); + +
    + +
    +
    -

    Responses

    -

    Status: 200 - successful operation

    +

    Status: default - Unexpected error

    -
    -
    +
    +
    - +
    -

    Status: 400 - Invalid Order

    - - - -
    -
    -

    -
    -

    User

    -
    -
    +
    +

    GetPaymentTransactions

    +
    +
    -

    createUser

    -

    Create user

    +

    getPaymentTransactionsPost

    +

    Get Payment Transactions

    -

    This can only be done by the logged in user.

    +

    This API is a payment transaction search to get transaction-level information regarding all payments that match the search criteria.


    -
    /user
    +
    /get_payment_transactions

    Usage and SDK Samples

    -
    -
    curl -X POST "http://petstore.swagger.io/v2/user"
    +
    +
    curl -X POST "https://local-api-domain/swift-apitracker-pilot/v2/get_payment_transactions"
    -
    +
    import io.swagger.client.*;
     import io.swagger.client.auth.*;
     import io.swagger.client.model.*;
    -import io.swagger.client.api.UserApi;
    +import io.swagger.client.api.GetPaymentTransactionsApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class UserApiExample {
    +public class GetPaymentTransactionsApiExample {
     
         public static void main(String[] args) {
             
    -        UserApi apiInstance = new UserApi();
    -        User body = ; // User | Created user object
    +        GetPaymentTransactionsApi apiInstance = new GetPaymentTransactionsApi();
    +        String lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +        String lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +        String lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +        String lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +        String lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +        String lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded
    +        Camt.a03.001.03 requestBody = ; // Camt.a03.001.03 | Payment Transactions Request
             try {
    -            apiInstance.createUser(body);
    +            camt.a03.002.03 result = apiInstance.getPaymentTransactionsPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, requestBody);
    +            System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling UserApi#createUser");
    +            System.err.println("Exception when calling GetPaymentTransactionsApi#getPaymentTransactionsPost");
                 e.printStackTrace();
             }
         }
     }
    -
    -
    import io.swagger.client.api.UserApi;
    +                          
    +
    import io.swagger.client.api.GetPaymentTransactionsApi;
     
    -public class UserApiExample {
    +public class GetPaymentTransactionsApiExample {
     
         public static void main(String[] args) {
    -        UserApi apiInstance = new UserApi();
    -        User body = ; // User | Created user object
    +        GetPaymentTransactionsApi apiInstance = new GetPaymentTransactionsApi();
    +        String lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +        String lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +        String lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +        String lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +        String lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +        String lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded
    +        Camt.a03.001.03 requestBody = ; // Camt.a03.001.03 | Payment Transactions Request
             try {
    -            apiInstance.createUser(body);
    +            camt.a03.002.03 result = apiInstance.getPaymentTransactionsPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, requestBody);
    +            System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling UserApi#createUser");
    +            System.err.println("Exception when calling GetPaymentTransactionsApi#getPaymentTransactionsPost");
                 e.printStackTrace();
             }
         }
     }
    -
    -
    User *body = ; // Created user object
    -
    -UserApi *apiInstance = [[UserApi alloc] init];
    -
    -// Create user
    -[apiInstance createUserWith:body
    -              completionHandler: ^(NSError* error) {
    +                            
    +
    String *lAUApplicationID = lAUApplicationID_example; // ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001)
    +String *lAUVersion = lAUVersion_example; // version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0)
    +String *lAUCallTime = lAUCallTime_example; // timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z)
    +String *lAURequestNonce = lAURequestNonce_example; // a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074)
    +String *lAUSigned = lAUSigned_example; // service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[FullViewer/Scope/cclabeb0]))
    +String *lAUSignature = lAUSignature_example; // contains the LAU signature, base64 ecoded (default to U1khA8h9Lm1PqzB99fG6uw==)
    +Camt.a03.001.03 *requestBody = ; // Payment Transactions Request
    +
    +GetPaymentTransactionsApi *apiInstance = [[GetPaymentTransactionsApi alloc] init];
    +
    +// Get Payment Transactions
    +[apiInstance getPaymentTransactionsPostWith:lAUApplicationID
    +    lAUVersion:lAUVersion
    +    lAUCallTime:lAUCallTime
    +    lAURequestNonce:lAURequestNonce
    +    lAUSigned:lAUSigned
    +    lAUSignature:lAUSignature
    +    requestBody:requestBody
    +              completionHandler: ^(camt.a03.002.03 output, NSError* error) {
    +                            if (output) {
    +                                NSLog(@"%@", output);
    +                            }
                                 if (error) {
                                     NSLog(@"Error: %@", error);
                                 }
    @@ -4891,29 +6624,41 @@ 

    Usage and SDK Samples

    -
    -
    var SwaggerPetstore = require('swagger_petstore');
    +                            
    +
    var GpiApi = require('gpi_api');
    +
    +var api = new GpiApi.GetPaymentTransactionsApi()
    +
    +var lAUApplicationID = lAUApplicationID_example; // {String} ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
     
    -var api = new SwaggerPetstore.UserApi()
    +var lAUVersion = lAUVersion_example; // {String} version of the LAUSigned header. Mandatory. "1.0" for this first release
     
    -var body = ; // {User} Created user object
    +var lAUCallTime = lAUCallTime_example; // {String} timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +
    +var lAURequestNonce = lAURequestNonce_example; // {String} a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +
    +var lAUSigned = lAUSigned_example; // {String} service specific HTTP headers
    +
    +var lAUSignature = lAUSignature_example; // {String} contains the LAU signature, base64 ecoded
    +
    +var requestBody = ; // {Camt.a03.001.03} Payment Transactions Request
     
     
     var callback = function(error, data, response) {
       if (error) {
         console.error(error);
       } else {
    -    console.log('API called successfully.');
    +    console.log('API called successfully. Returned data: ' + data);
       }
     };
    -api.createUser(body, callback);
    +api.getPaymentTransactionsPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, requestBody, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using IO.Swagger.Api;
    @@ -4922,22 +6667,29 @@ 

    Usage and SDK Samples

    namespace Example { - public class createUserExample + public class getPaymentTransactionsPostExample { public void main() { - var apiInstance = new UserApi(); - var body = new User(); // User | Created user object + var apiInstance = new GetPaymentTransactionsApi(); + var lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001) + var lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0) + var lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z) + var lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074) + var lAUSigned = lAUSigned_example; // String | service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[FullViewer/Scope/cclabeb0])) + var lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded (default to U1khA8h9Lm1PqzB99fG6uw==) + var requestBody = new Camt.a03.001.03(); // Camt.a03.001.03 | Payment Transactions Request try { - // Create user - apiInstance.createUser(body); + // Get Payment Transactions + camt.a03.002.03 result = apiInstance.getPaymentTransactionsPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, requestBody); + Debug.WriteLine(result); } catch (Exception e) { - Debug.Print("Exception when calling UserApi.createUser: " + e.Message ); + Debug.Print("Exception when calling GetPaymentTransactionsApi.getPaymentTransactionsPost: " + e.Message ); } } } @@ -4945,38 +6697,52 @@

    Usage and SDK Samples

    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
    -$api_instance = new Swagger\Client\Api\UserApi();
    -$body = ; // User | Created user object
    +$api_instance = new Swagger\Client\Api\GetPaymentTransactionsApi();
    +$lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +$lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +$lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +$lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +$lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +$lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded
    +$requestBody = ; // Camt.a03.001.03 | Payment Transactions Request
     
     try {
    -    $api_instance->createUser($body);
    +    $result = $api_instance->getPaymentTransactionsPost($lAUApplicationID, $lAUVersion, $lAUCallTime, $lAURequestNonce, $lAUSigned, $lAUSignature, $requestBody);
    +    print_r($result);
     } catch (Exception $e) {
    -    echo 'Exception when calling UserApi->createUser: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling GetPaymentTransactionsApi->getPaymentTransactionsPost: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::SwaggerClient::Configuration;
    -use WWW::SwaggerClient::UserApi;
    +use WWW::SwaggerClient::GetPaymentTransactionsApi;
     
    -my $api_instance = WWW::SwaggerClient::UserApi->new();
    -my $body = WWW::SwaggerClient::Object::User->new(); # User | Created user object
    +my $api_instance = WWW::SwaggerClient::GetPaymentTransactionsApi->new();
    +my $lAUApplicationID = lAUApplicationID_example; # String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +my $lAUVersion = lAUVersion_example; # String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +my $lAUCallTime = lAUCallTime_example; # String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +my $lAURequestNonce = lAURequestNonce_example; # String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +my $lAUSigned = lAUSigned_example; # String | service specific HTTP headers
    +my $lAUSignature = lAUSignature_example; # String | contains the LAU signature, base64 ecoded
    +my $requestBody = WWW::SwaggerClient::Object::Camt.a03.001.03->new(); # Camt.a03.001.03 | Payment Transactions Request
     
     eval { 
    -    $api_instance->createUser(body => $body);
    +    my $result = $api_instance->getPaymentTransactionsPost(lAUApplicationID => $lAUApplicationID, lAUVersion => $lAUVersion, lAUCallTime => $lAUCallTime, lAURequestNonce => $lAURequestNonce, lAUSigned => $lAUSigned, lAUSignature => $lAUSignature, requestBody => $requestBody);
    +    print Dumper($result);
     };
     if ($@) {
    -    warn "Exception when calling UserApi->createUser: $@\n";
    +    warn "Exception when calling GetPaymentTransactionsApi->getPaymentTransactionsPost: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import swagger_client
    @@ -4984,20 +6750,172 @@ 

    Usage and SDK Samples

    from pprint import pprint # create an instance of the API class -api_instance = swagger_client.UserApi() -body = # User | Created user object +api_instance = swagger_client.GetPaymentTransactionsApi() +lAUApplicationID = lAUApplicationID_example # String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001) +lAUVersion = lAUVersion_example # String | version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0) +lAUCallTime = lAUCallTime_example # String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z) +lAURequestNonce = lAURequestNonce_example # String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074) +lAUSigned = lAUSigned_example # String | service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[FullViewer/Scope/cclabeb0])) +lAUSignature = lAUSignature_example # String | contains the LAU signature, base64 ecoded (default to U1khA8h9Lm1PqzB99fG6uw==) +requestBody = # Camt.a03.001.03 | Payment Transactions Request try: - # Create user - api_instance.create_user(body) + # Get Payment Transactions + api_response = api_instance.get_payment_transactions_post(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, requestBody) + pprint(api_response) except ApiException as e: - print("Exception when calling UserApi->createUser: %s\n" % e)
    + print("Exception when calling GetPaymentTransactionsApi->getPaymentTransactionsPost: %s\n" % e)

    Parameters

    +
    Header parameters
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescription
    LAUApplicationID* + + +
    +
    +
    + + String + + +
    + ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys +
    +
    +
    + Required +
    +
    +
    +
    LAUVersion* + + +
    +
    +
    + + String + + +
    + version of the LAUSigned header. Mandatory. "1.0" for this first release +
    +
    +
    + Required +
    +
    +
    +
    LAUCallTime* + + +
    +
    +
    + + String + + +
    + timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ +
    +
    +
    + Required +
    +
    +
    +
    LAURequestNonce* + + +
    +
    +
    + + String + + +
    + a random value generated by the client. Provided with the request and copied by the gpi Connector on the response +
    +
    +
    + Required +
    +
    +
    +
    LAUSigned* + + +
    +
    +
    + + String + + +
    + service specific HTTP headers +
    +
    +
    + Required +
    +
    +
    +
    LAUSignature* + + +
    +
    +
    + + String + + +
    + contains the LAU signature, base64 ecoded +
    +
    +
    + Required +
    +
    +
    +
    Body parameters
    @@ -5005,7 +6923,7 @@

    Parameters

    - + @@ -5045,368 +6963,644 @@

    Parameters

    Responses

    -

    Status: default - successful operation

    +

    Status: 200 - Payment Transactions Response

    +
    +
    + +
    + +
    +
    +
    Name Description
    body *
    requestBody * @@ -5013,11 +6931,11 @@

    Parameters

    $(document).ready(function() { var schemaWrapper = { "in" : "body", - "name" : "body", - "description" : "Created user object", + "name" : "request_body", + "description" : "Payment Transactions Request", "required" : true, "schema" : { - "$ref" : "#/definitions/User" + "$ref" : "#/definitions/camt.a03.001.03" } }; var schema = schemaWrapper.schema; @@ -5031,12 +6949,12 @@

    Parameters

    } var view = new JSONSchemaView(schema,2,{isBodyParam: true}); - var result = $('#d2e199_createUser_body'); + var result = $('#d2e199_getPaymentTransactionsPost_requestBody'); result.empty(); result.append(view.render()); }); -
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeFormatDescription
    LAUApplicationIDStringID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    LAUVersionStringversion of the LAUSigned header. Mandatory. "1.0" for this first release
    LAUCallTimeStringtimestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    LAURequestNonceStringa random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    LAUResponseNonceStringa random value generated by the gpi Connector on the response
    LAUSignatureStringcontains the LAU signature, base64 ecoded
    +
    -
    -
    -
    -
    -
    -
    -

    createUsersWithArrayInput

    -

    Creates list of users with given input array

    -
    -
    -
    -

    -

    -

    -
    -
    /user/createWithArray
    -

    -

    Usage and SDK Samples

    -

    - +

    Status: 400 - Bad Request

    -
    -
    -
    curl -X POST "http://petstore.swagger.io/v2/user/createWithArray"
    -
    -
    -
    import io.swagger.client.*;
    -import io.swagger.client.auth.*;
    -import io.swagger.client.model.*;
    -import io.swagger.client.api.UserApi;
    +                            
     
    -public class UserApiExample {
    +                            
    +
    +
    + +
    + +
    +
    -
    -
    import io.swagger.client.api.UserApi;
    +                            

    Status: 401 - Unauthorized WWW-Authenticate: Bearer realm='SwAP'

    -public class UserApiExample { +
    -
    - -
    -
    array[User] *body = ; // List of user object
    +                            
     
    -UserApi *apiInstance = [[UserApi alloc] init];
    +                            
    +
    +
    + +
    + +
    -
    -
    var SwaggerPetstore = require('swagger_petstore');
    -
    -var api = new SwaggerPetstore.UserApi()
    +                            

    Status: 404 - Not Found

    -var body = ; // {array[User]} List of user object + -var callback = function(error, data, response) { - if (error) { - console.error(error); - } else { - console.log('API called successfully.'); +
    +
    +
    + +
    + +
    +
    -namespace Example -{ - public class createUsersWithArrayInputExample - { - public void main() - { - - var apiInstance = new UserApi(); - var body = new array[User](); // array[User] | List of user object +

    Status: 429 - Too many requests

    - try - { - // Creates list of users with given input array - apiInstance.createUsersWithArrayInput(body); - } - catch (Exception e) - { - Debug.Print("Exception when calling UserApi.createUsersWithArrayInput: " + e.Message ); - } - } - } -} -
    -
    + -$api_instance = new Swagger\Client\Api\UserApi(); -$body = ; // array[User] | List of user object +
    +
    +
    + +
    + +
    -
    -
    use Data::Dumper;
    -use WWW::SwaggerClient::Configuration;
    -use WWW::SwaggerClient::UserApi;
    +                            

    Status: 500 - Internal Server Error

    + + -eval { - $api_instance->createUsersWithArrayInput(body => $body); +
    +
    +
    + +
    + +
    -
    -
    from __future__ import print_statement
    -import time
    -import swagger_client
    -from swagger_client.rest import ApiException
    -from pprint import pprint
    +                            

    Status: 502 - Bad Gateway

    -# create an instance of the API class -api_instance = swagger_client.UserApi() -body = # array[User] | List of user object +
    -
    -
    + -

    Parameters

    +
    +
    +
    + +
    + +
    +
    +

    Status: 503 - Service Unavailable

    -
    Body parameters
    - - - - - - - - +
    NameDescription
    body * + - + + + + + +

    Status: 504 - Gateway Timeout

    - var view = new JSONSchemaView(schema,2,{isBodyParam: true}); - var result = $('#d2e199_createUsersWithArrayInput_body'); - result.empty(); - result.append(view.render()); -}); - -
    -
    + +
    +
    +
    + +
    + +
    +
    -

    Responses

    -

    Status: default - successful operation

    +

    Status: default - Unexpected error

    +
    +
    + +
    + +

    -
    -
    +
    +
    +

    StatusConfirmations

    +
    +
    -

    createUsersWithListInput

    -

    Creates list of users with given input array

    +

    statusConfirmationsPost

    +

    Status Confirmations

    -

    +

    This API is a status confirmation update to inform the tracker about the updated status of a given payment


    -
    /user/createWithList
    +
    /status_confirmations

    Usage and SDK Samples

    -
    -
    curl -X POST "http://petstore.swagger.io/v2/user/createWithList"
    +
    +
    curl -X POST "https://local-api-domain/swift-apitracker-pilot/v2/status_confirmations"
    -
    +
    import io.swagger.client.*;
     import io.swagger.client.auth.*;
     import io.swagger.client.model.*;
    -import io.swagger.client.api.UserApi;
    +import io.swagger.client.api.StatusConfirmationsApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class UserApiExample {
    +public class StatusConfirmationsApiExample {
     
         public static void main(String[] args) {
             
    -        UserApi apiInstance = new UserApi();
    -        array[User] body = ; // array[User] | List of user object
    +        StatusConfirmationsApi apiInstance = new StatusConfirmationsApi();
    +        String lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +        String lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +        String lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +        String lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +        String lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +        String lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 encoded
    +        Boolean signatureRequired = true; // Boolean | a field indicating that a Signature is required
    +        Camt.a01.001.03 requestBody = ; // Camt.a01.001.03 | Status Confirmation Request
             try {
    -            apiInstance.createUsersWithListInput(body);
    +            camt.a01.002.02 result = apiInstance.statusConfirmationsPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, signatureRequired, requestBody);
    +            System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling UserApi#createUsersWithListInput");
    +            System.err.println("Exception when calling StatusConfirmationsApi#statusConfirmationsPost");
                 e.printStackTrace();
             }
         }
     }
    -
    -
    import io.swagger.client.api.UserApi;
    +                          
    +
    import io.swagger.client.api.StatusConfirmationsApi;
     
    -public class UserApiExample {
    +public class StatusConfirmationsApiExample {
     
         public static void main(String[] args) {
    -        UserApi apiInstance = new UserApi();
    -        array[User] body = ; // array[User] | List of user object
    +        StatusConfirmationsApi apiInstance = new StatusConfirmationsApi();
    +        String lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +        String lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +        String lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +        String lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +        String lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +        String lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 encoded
    +        Boolean signatureRequired = true; // Boolean | a field indicating that a Signature is required
    +        Camt.a01.001.03 requestBody = ; // Camt.a01.001.03 | Status Confirmation Request
             try {
    -            apiInstance.createUsersWithListInput(body);
    +            camt.a01.002.02 result = apiInstance.statusConfirmationsPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, signatureRequired, requestBody);
    +            System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling UserApi#createUsersWithListInput");
    +            System.err.println("Exception when calling StatusConfirmationsApi#statusConfirmationsPost");
                 e.printStackTrace();
             }
         }
     }
    -
    -
    array[User] *body = ; // List of user object
    -
    -UserApi *apiInstance = [[UserApi alloc] init];
    -
    -// Creates list of users with given input array
    -[apiInstance createUsersWithListInputWith:body
    -              completionHandler: ^(NSError* error) {
    +                            
    +
    String *lAUApplicationID = lAUApplicationID_example; // ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001)
    +String *lAUVersion = lAUVersion_example; // version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0)
    +String *lAUCallTime = lAUCallTime_example; // timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z)
    +String *lAURequestNonce = lAURequestNonce_example; // a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074)
    +String *lAUSigned = lAUSigned_example; // service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[Update/Scope/cclabeb0]))
    +String *lAUSignature = lAUSignature_example; // contains the LAU signature, base64 encoded (default to U1khA8h9Lm1PqzB99fG6uw==)
    +Boolean *signatureRequired = true; // a field indicating that a Signature is required (default to true)
    +Camt.a01.001.03 *requestBody = ; // Status Confirmation Request
    +
    +StatusConfirmationsApi *apiInstance = [[StatusConfirmationsApi alloc] init];
    +
    +// Status Confirmations
    +[apiInstance statusConfirmationsPostWith:lAUApplicationID
    +    lAUVersion:lAUVersion
    +    lAUCallTime:lAUCallTime
    +    lAURequestNonce:lAURequestNonce
    +    lAUSigned:lAUSigned
    +    lAUSignature:lAUSignature
    +    signatureRequired:signatureRequired
    +    requestBody:requestBody
    +              completionHandler: ^(camt.a01.002.02 output, NSError* error) {
    +                            if (output) {
    +                                NSLog(@"%@", output);
    +                            }
                                 if (error) {
                                     NSLog(@"Error: %@", error);
                                 }
    @@ -5414,29 +7608,43 @@ 

    Usage and SDK Samples

    -
    -
    var SwaggerPetstore = require('swagger_petstore');
    +                            
    +
    var GpiApi = require('gpi_api');
    +
    +var api = new GpiApi.StatusConfirmationsApi()
     
    -var api = new SwaggerPetstore.UserApi()
    +var lAUApplicationID = lAUApplicationID_example; // {String} ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
     
    -var body = ; // {array[User]} List of user object
    +var lAUVersion = lAUVersion_example; // {String} version of the LAUSigned header. Mandatory. "1.0" for this first release
    +
    +var lAUCallTime = lAUCallTime_example; // {String} timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +
    +var lAURequestNonce = lAURequestNonce_example; // {String} a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +
    +var lAUSigned = lAUSigned_example; // {String} service specific HTTP headers
    +
    +var lAUSignature = lAUSignature_example; // {String} contains the LAU signature, base64 encoded
    +
    +var signatureRequired = true; // {Boolean} a field indicating that a Signature is required
    +
    +var requestBody = ; // {Camt.a01.001.03} Status Confirmation Request
     
     
     var callback = function(error, data, response) {
       if (error) {
         console.error(error);
       } else {
    -    console.log('API called successfully.');
    +    console.log('API called successfully. Returned data: ' + data);
       }
     };
    -api.createUsersWithListInput(body, callback);
    +api.statusConfirmationsPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, signatureRequired, requestBody, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using IO.Swagger.Api;
    @@ -5445,22 +7653,30 @@ 

    Usage and SDK Samples

    namespace Example { - public class createUsersWithListInputExample + public class statusConfirmationsPostExample { public void main() { - var apiInstance = new UserApi(); - var body = new array[User](); // array[User] | List of user object + var apiInstance = new StatusConfirmationsApi(); + var lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001) + var lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0) + var lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z) + var lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074) + var lAUSigned = lAUSigned_example; // String | service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[Update/Scope/cclabeb0])) + var lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 encoded (default to U1khA8h9Lm1PqzB99fG6uw==) + var signatureRequired = true; // Boolean | a field indicating that a Signature is required (default to true) + var requestBody = new Camt.a01.001.03(); // Camt.a01.001.03 | Status Confirmation Request try { - // Creates list of users with given input array - apiInstance.createUsersWithListInput(body); + // Status Confirmations + camt.a01.002.02 result = apiInstance.statusConfirmationsPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, signatureRequired, requestBody); + Debug.WriteLine(result); } catch (Exception e) { - Debug.Print("Exception when calling UserApi.createUsersWithListInput: " + e.Message ); + Debug.Print("Exception when calling StatusConfirmationsApi.statusConfirmationsPost: " + e.Message ); } } } @@ -5468,38 +7684,54 @@

    Usage and SDK Samples

    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
    -$api_instance = new Swagger\Client\Api\UserApi();
    -$body = ; // array[User] | List of user object
    +$api_instance = new Swagger\Client\Api\StatusConfirmationsApi();
    +$lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +$lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +$lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +$lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +$lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +$lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 encoded
    +$signatureRequired = true; // Boolean | a field indicating that a Signature is required
    +$requestBody = ; // Camt.a01.001.03 | Status Confirmation Request
     
     try {
    -    $api_instance->createUsersWithListInput($body);
    +    $result = $api_instance->statusConfirmationsPost($lAUApplicationID, $lAUVersion, $lAUCallTime, $lAURequestNonce, $lAUSigned, $lAUSignature, $signatureRequired, $requestBody);
    +    print_r($result);
     } catch (Exception $e) {
    -    echo 'Exception when calling UserApi->createUsersWithListInput: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling StatusConfirmationsApi->statusConfirmationsPost: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::SwaggerClient::Configuration;
    -use WWW::SwaggerClient::UserApi;
    -
    -my $api_instance = WWW::SwaggerClient::UserApi->new();
    -my $body = [WWW::SwaggerClient::Object::array[User]->new()]; # array[User] | List of user object
    +use WWW::SwaggerClient::StatusConfirmationsApi;
    +
    +my $api_instance = WWW::SwaggerClient::StatusConfirmationsApi->new();
    +my $lAUApplicationID = lAUApplicationID_example; # String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +my $lAUVersion = lAUVersion_example; # String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +my $lAUCallTime = lAUCallTime_example; # String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +my $lAURequestNonce = lAURequestNonce_example; # String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +my $lAUSigned = lAUSigned_example; # String | service specific HTTP headers
    +my $lAUSignature = lAUSignature_example; # String | contains the LAU signature, base64 encoded
    +my $signatureRequired = true; # Boolean | a field indicating that a Signature is required
    +my $requestBody = WWW::SwaggerClient::Object::Camt.a01.001.03->new(); # Camt.a01.001.03 | Status Confirmation Request
     
     eval { 
    -    $api_instance->createUsersWithListInput(body => $body);
    +    my $result = $api_instance->statusConfirmationsPost(lAUApplicationID => $lAUApplicationID, lAUVersion => $lAUVersion, lAUCallTime => $lAUCallTime, lAURequestNonce => $lAURequestNonce, lAUSigned => $lAUSigned, lAUSignature => $lAUSignature, signatureRequired => $signatureRequired, requestBody => $requestBody);
    +    print Dumper($result);
     };
     if ($@) {
    -    warn "Exception when calling UserApi->createUsersWithListInput: $@\n";
    +    warn "Exception when calling StatusConfirmationsApi->statusConfirmationsPost: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import swagger_client
    @@ -5507,301 +7739,185 @@ 

    Usage and SDK Samples

    from pprint import pprint # create an instance of the API class -api_instance = swagger_client.UserApi() -body = # array[User] | List of user object +api_instance = swagger_client.StatusConfirmationsApi() +lAUApplicationID = lAUApplicationID_example # String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001) +lAUVersion = lAUVersion_example # String | version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0) +lAUCallTime = lAUCallTime_example # String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z) +lAURequestNonce = lAURequestNonce_example # String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074) +lAUSigned = lAUSigned_example # String | service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[Update/Scope/cclabeb0])) +lAUSignature = lAUSignature_example # String | contains the LAU signature, base64 encoded (default to U1khA8h9Lm1PqzB99fG6uw==) +signatureRequired = true # Boolean | a field indicating that a Signature is required (default to true) +requestBody = # Camt.a01.001.03 | Status Confirmation Request try: - # Creates list of users with given input array - api_instance.create_users_with_list_input(body) + # Status Confirmations + api_response = api_instance.status_confirmations_post(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, signatureRequired, requestBody) + pprint(api_response) except ApiException as e: - print("Exception when calling UserApi->createUsersWithListInput: %s\n" % e)
    + print("Exception when calling StatusConfirmationsApi->statusConfirmationsPost: %s\n" % e)

    Parameters

    - -
    Body parameters
    +
    Header parameters
    - + -
    Name Description
    body *
    LAUApplicationID* - -
    +
    + ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys +
    + +
    + Required +
    + +
    - - - -

    Responses

    -

    Status: default - successful operation

    - - - -
    -
    - -
    -
    -
    -
    -
    -
    -

    deleteUser

    -

    Delete user

    -
    -
    -
    -

    -

    This can only be done by the logged in user.

    -

    -
    -
    /user/{username}
    -

    -

    Usage and SDK Samples

    -

    - - -
    -
    -
    curl -X DELETE "http://petstore.swagger.io/v2/user/{username}"
    -
    -
    -
    import io.swagger.client.*;
    -import io.swagger.client.auth.*;
    -import io.swagger.client.model.*;
    -import io.swagger.client.api.UserApi;
    -
    -import java.io.File;
    -import java.util.*;
    -
    -public class UserApiExample {
    -
    -    public static void main(String[] args) {
    -        
    -        UserApi apiInstance = new UserApi();
    -        String username = username_example; // String | The name that needs to be deleted
    -        try {
    -            apiInstance.deleteUser(username);
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling UserApi#deleteUser");
    -            e.printStackTrace();
    -        }
    -    }
    -}
    -
    - -
    -
    import io.swagger.client.api.UserApi;
    -
    -public class UserApiExample {
    -
    -    public static void main(String[] args) {
    -        UserApi apiInstance = new UserApi();
    -        String username = username_example; // String | The name that needs to be deleted
    -        try {
    -            apiInstance.deleteUser(username);
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling UserApi#deleteUser");
    -            e.printStackTrace();
    -        }
    -    }
    -}
    -
    - -
    -
    String *username = username_example; // The name that needs to be deleted
    -
    -UserApi *apiInstance = [[UserApi alloc] init];
    -
    -// Delete user
    -[apiInstance deleteUserWith:username
    -              completionHandler: ^(NSError* error) {
    -                            if (error) {
    -                                NSLog(@"Error: %@", error);
    -                            }
    -                        }];
    -
    -
    + LAUVersion* + -
    -
    var SwaggerPetstore = require('swagger_petstore');
     
    -var api = new SwaggerPetstore.UserApi()
    +    
    +
    +
    + + String + -var username = username_example; // {String} The name that needs to be deleted +
    + version of the LAUSigned header. Mandatory. "1.0" for this first release +
    +
    +
    + Required +
    +
    +
    + + + LAUCallTime* + -var callback = function(error, data, response) { - if (error) { - console.error(error); - } else { - console.log('API called successfully.'); - } -}; -api.deleteUser(username, callback); -
    -
    - -
    -
    using System;
    -using System.Diagnostics;
    -using IO.Swagger.Api;
    -using IO.Swagger.Client;
    -using IO.Swagger.Model;
    +    
    +
    +
    + + String + -namespace Example -{ - public class deleteUserExample - { - public void main() - { - - var apiInstance = new UserApi(); - var username = username_example; // String | The name that needs to be deleted +
    + timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ +
    +
    +
    + Required +
    +
    +
    + + - try - { - // Delete user - apiInstance.deleteUser(username); - } - catch (Exception e) - { - Debug.Print("Exception when calling UserApi.deleteUser: " + e.Message ); - } - } - } -} -
    -
    + LAURequestNonce* + -
    -
    <?php
    -require_once(__DIR__ . '/vendor/autoload.php');
     
    -$api_instance = new Swagger\Client\Api\UserApi();
    -$username = username_example; // String | The name that needs to be deleted
    +    
    +
    +
    + + String + -try { - $api_instance->deleteUser($username); -} catch (Exception $e) { - echo 'Exception when calling UserApi->deleteUser: ', $e->getMessage(), PHP_EOL; -} -?>
    -
    +
    + a random value generated by the client. Provided with the request and copied by the gpi Connector on the response +
    +
    +
    + Required +
    +
    +
    + + -
    -
    use Data::Dumper;
    -use WWW::SwaggerClient::Configuration;
    -use WWW::SwaggerClient::UserApi;
    +                                  LAUSigned*
    +
     
    -my $api_instance = WWW::SwaggerClient::UserApi->new();
    -my $username = username_example; # String | The name that needs to be deleted
     
    -eval { 
    -    $api_instance->deleteUser(username => $username);
    -};
    -if ($@) {
    -    warn "Exception when calling UserApi->deleteUser: $@\n";
    -}
    -
    +
    +
    +
    + + String + -
    -
    from __future__ import print_statement
    -import time
    -import swagger_client
    -from swagger_client.rest import ApiException
    -from pprint import pprint
    +                    
    + service specific HTTP headers +
    +
    +
    + Required +
    +
    +
    + + -# create an instance of the API class -api_instance = swagger_client.UserApi() -username = username_example # String | The name that needs to be deleted + LAUSignature* + -try: - # Delete user - api_instance.delete_user(username) -except ApiException as e: - print("Exception when calling UserApi->deleteUser: %s\n" % e) -
    -
    -

    Parameters

    +
    +
    +
    + + String + -
    Path parameters
    - - - - - - +
    + contains the LAU signature, base64 encoded +
    + +
    + Required +
    + + + + + +
    NameDescription
    username*
    SignatureRequired* -
    +
    - String + Boolean
    - The name that needs to be deleted + a field indicating that a Signature is required
    @@ -5814,301 +7930,545 @@

    Parameters

    +
    Body parameters
    + + + + + + + + +
    NameDescription
    requestBody * + + + +
    +

    Responses

    -

    Status: 400 - Invalid username supplied

    +

    Status: 200 - Status Confirmation Response

    +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeFormatDescription
    LAUApplicationIDStringID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    LAUVersionStringversion of the LAUSigned header. Mandatory. "1.0" for this first release
    LAUCallTimeStringtimestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    LAURequestNonceStringa random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    LAUResponseNonceStringa random value generated by the gpi Connector on the response
    LAUSignatureStringcontains the LAU signature, base64 ecoded
    +
    -

    Status: 404 - User not found

    +

    Status: 400 - Bad Request

    +
    +
    + +
    + +
    - -
    -
    -
    -
    -
    -

    getUserByName

    -

    Get user by user name

    -
    -
    -
    -

    -

    -

    -
    -
    /user/{username}
    -

    -

    Usage and SDK Samples

    -

    - +

    Status: 401 - Unauthorized WWW-Authenticate: Bearer realm='SwAP'

    -
    -
    -
    curl -X GET "http://petstore.swagger.io/v2/user/{username}"
    -
    -
    -
    import io.swagger.client.*;
    -import io.swagger.client.auth.*;
    -import io.swagger.client.model.*;
    -import io.swagger.client.api.UserApi;
    +                            
     
    -public class UserApiExample {
    +                            
    +
    +
    + +
    + +
    +
    -
    -
    import io.swagger.client.api.UserApi;
    +                            

    Status: 404 - Not Found

    -public class UserApiExample { +
    -
    - -
    -
    String *username = username_example; // The name that needs to be fetched. Use user1 for testing. 
    +                            
     
    -UserApi *apiInstance = [[UserApi alloc] init];
    +                            
    +
    +
    + +
    + +
    -
    -
    var SwaggerPetstore = require('swagger_petstore');
    -
    -var api = new SwaggerPetstore.UserApi()
    +                            

    Status: 429 - Too many requests

    -var username = username_example; // {String} The name that needs to be fetched. Use user1 for testing. + -var callback = function(error, data, response) { - if (error) { - console.error(error); - } else { - console.log('API called successfully. Returned data: ' + data); +
    +
    +
    + +
    + +
    +
    -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. +

    Status: 500 - Internal Server Error

    - 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 ); - } - } - } -} -
    -
    + -$api_instance = new Swagger\Client\Api\UserApi(); -$username = username_example; // String | The name that needs to be fetched. Use user1 for testing. +
    +
    +
    + +
    + +
    -
    -
    use Data::Dumper;
    -use WWW::SwaggerClient::Configuration;
    -use WWW::SwaggerClient::UserApi;
    +                            

    Status: 502 - Bad Gateway

    -my $api_instance = WWW::SwaggerClient::UserApi->new(); -my $username = username_example; # String | The name that needs to be fetched. Use user1 for testing. - -eval { - my $result = $api_instance->getUserByName(username => $username); - print Dumper($result); -}; -if ($@) { - warn "Exception when calling UserApi->getUserByName: $@\n"; -}
    -
    + -# create an instance of the API class -api_instance = swagger_client.UserApi() -username = username_example # String | The name that needs to be fetched. Use user1 for testing. +
    +
    +
    + +
    + +
    -
    -

    Parameters

    +

    Status: 503 - Service Unavailable

    -
    Path parameters
    - - - - - - -
    NameDescription
    username* + -
    -
    -
    - - String - +
    +
    +
    + +
    + +
    +
    -
    +

    Status: 504 - Gateway Timeout

    + +
    +
    +
    + +
    + +
    +
    -

    Responses

    -

    Status: 200 - successful operation

    +

    Status: default - Unexpected error

    -
    -
    +
    +
    - +
    -

    Status: 400 - Invalid username supplied

    - - - -
    -
    - -

    Status: 404 - User not found

    - - - -
    -
    -

    -
    -
    + +
    +

    TransactionCancellationStatus

    +
    +
    -

    loginUser

    -

    Logs user into the system

    +

    transactionCancellationStatusPost

    +

    Transaction Cancellation Status

    -

    +

    This call informs the tracker about the updated status of a given payment


    -
    /user/login
    +
    /transaction_cancellation_status

    Usage and SDK Samples

    -
    -
    curl -X GET "http://petstore.swagger.io/v2/user/login?username=&password="
    +
    +
    curl -X POST "https://local-api-domain/swift-apitracker-pilot/v2/transaction_cancellation_status"
    -
    +
    import io.swagger.client.*;
     import io.swagger.client.auth.*;
     import io.swagger.client.model.*;
    -import io.swagger.client.api.UserApi;
    +import io.swagger.client.api.TransactionCancellationStatusApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class UserApiExample {
    +public class TransactionCancellationStatusApiExample {
     
         public static void main(String[] args) {
             
    -        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
    +        TransactionCancellationStatusApi apiInstance = new TransactionCancellationStatusApi();
    +        String lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +        String lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +        String lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +        String lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +        String lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +        String lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded
    +        Boolean signatureRequired = true; // Boolean | a field indicating that a Signature is required
    +        Camt.a07.001.02 requestBody = ; // Camt.a07.001.02 | Transaction Cancellation Status Request
             try {
    -            'String' result = apiInstance.loginUser(username, password);
    +            camt.a07.002.02 result = apiInstance.transactionCancellationStatusPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, signatureRequired, requestBody);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling UserApi#loginUser");
    +            System.err.println("Exception when calling TransactionCancellationStatusApi#transactionCancellationStatusPost");
                 e.printStackTrace();
             }
         }
     }
    -
    -
    import io.swagger.client.api.UserApi;
    +                          
    +
    import io.swagger.client.api.TransactionCancellationStatusApi;
     
    -public class UserApiExample {
    +public class TransactionCancellationStatusApiExample {
     
         public static void main(String[] args) {
    -        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
    +        TransactionCancellationStatusApi apiInstance = new TransactionCancellationStatusApi();
    +        String lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +        String lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +        String lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +        String lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +        String lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +        String lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded
    +        Boolean signatureRequired = true; // Boolean | a field indicating that a Signature is required
    +        Camt.a07.001.02 requestBody = ; // Camt.a07.001.02 | Transaction Cancellation Status Request
             try {
    -            'String' result = apiInstance.loginUser(username, password);
    +            camt.a07.002.02 result = apiInstance.transactionCancellationStatusPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, signatureRequired, requestBody);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling UserApi#loginUser");
    +            System.err.println("Exception when calling TransactionCancellationStatusApi#transactionCancellationStatusPost");
                 e.printStackTrace();
             }
         }
     }
    -
    -
    String *username = username_example; // The user name for login
    -String *password = password_example; // The password for login in clear text
    -
    -UserApi *apiInstance = [[UserApi alloc] init];
    -
    -// Logs user into the system
    -[apiInstance loginUserWith:username
    -    password:password
    -              completionHandler: ^('String' output, NSError* error) {
    +                            
    +
    String *lAUApplicationID = lAUApplicationID_example; // ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001)
    +String *lAUVersion = lAUVersion_example; // version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0)
    +String *lAUCallTime = lAUCallTime_example; // timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z)
    +String *lAURequestNonce = lAURequestNonce_example; // a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074)
    +String *lAUSigned = lAUSigned_example; // service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[FullViewer/Scope/cclabeb0]))
    +String *lAUSignature = lAUSignature_example; // contains the LAU signature, base64 ecoded (default to U1khA8h9Lm1PqzB99fG6uw==)
    +Boolean *signatureRequired = true; // a field indicating that a Signature is required (default to true)
    +Camt.a07.001.02 *requestBody = ; // Transaction Cancellation Status Request
    +
    +TransactionCancellationStatusApi *apiInstance = [[TransactionCancellationStatusApi alloc] init];
    +
    +// Transaction Cancellation Status
    +[apiInstance transactionCancellationStatusPostWith:lAUApplicationID
    +    lAUVersion:lAUVersion
    +    lAUCallTime:lAUCallTime
    +    lAURequestNonce:lAURequestNonce
    +    lAUSigned:lAUSigned
    +    lAUSignature:lAUSignature
    +    signatureRequired:signatureRequired
    +    requestBody:requestBody
    +              completionHandler: ^(camt.a07.002.02 output, NSError* error) {
                                 if (output) {
                                     NSLog(@"%@", output);
                                 }
    @@ -6250,14 +8621,26 @@ 

    Usage and SDK Samples

    -
    -
    var SwaggerPetstore = require('swagger_petstore');
    +                            
    +
    var GpiApi = require('gpi_api');
    +
    +var api = new GpiApi.TransactionCancellationStatusApi()
    +
    +var lAUApplicationID = lAUApplicationID_example; // {String} ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +
    +var lAUVersion = lAUVersion_example; // {String} version of the LAUSigned header. Mandatory. "1.0" for this first release
    +
    +var lAUCallTime = lAUCallTime_example; // {String} timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +
    +var lAURequestNonce = lAURequestNonce_example; // {String} a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
     
    -var api = new SwaggerPetstore.UserApi()
    +var lAUSigned = lAUSigned_example; // {String} service specific HTTP headers
     
    -var username = username_example; // {String} The user name for login
    +var lAUSignature = lAUSignature_example; // {String} contains the LAU signature, base64 ecoded
     
    -var password = password_example; // {String} The password for login in clear text
    +var signatureRequired = true; // {Boolean} a field indicating that a Signature is required
    +
    +var requestBody = ; // {Camt.a07.001.02} Transaction Cancellation Status Request
     
     
     var callback = function(error, data, response) {
    @@ -6267,14 +8650,14 @@ 

    Usage and SDK Samples

    console.log('API called successfully. Returned data: ' + data); } }; -api.loginUser(username, password, callback); +api.transactionCancellationStatusPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, signatureRequired, requestBody, callback);
    - -
    +
    using System;
     using System.Diagnostics;
     using IO.Swagger.Api;
    @@ -6283,24 +8666,30 @@ 

    Usage and SDK Samples

    namespace Example { - public class loginUserExample + public class transactionCancellationStatusPostExample { 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 + var apiInstance = new TransactionCancellationStatusApi(); + var lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001) + var lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0) + var lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z) + var lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074) + var lAUSigned = lAUSigned_example; // String | service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[FullViewer/Scope/cclabeb0])) + var lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded (default to U1khA8h9Lm1PqzB99fG6uw==) + var signatureRequired = true; // Boolean | a field indicating that a Signature is required (default to true) + var requestBody = new Camt.a07.001.02(); // Camt.a07.001.02 | Transaction Cancellation Status Request try { - // Logs user into the system - 'String' result = apiInstance.loginUser(username, password); + // Transaction Cancellation Status + camt.a07.002.02 result = apiInstance.transactionCancellationStatusPost(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, signatureRequired, requestBody); Debug.WriteLine(result); } catch (Exception e) { - Debug.Print("Exception when calling UserApi.loginUser: " + e.Message ); + Debug.Print("Exception when calling TransactionCancellationStatusApi.transactionCancellationStatusPost: " + e.Message ); } } } @@ -6308,42 +8697,54 @@

    Usage and SDK Samples

    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
    -$api_instance = new Swagger\Client\Api\UserApi();
    -$username = username_example; // String | The user name for login
    -$password = password_example; // String | The password for login in clear text
    +$api_instance = new Swagger\Client\Api\TransactionCancellationStatusApi();
    +$lAUApplicationID = lAUApplicationID_example; // String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +$lAUVersion = lAUVersion_example; // String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +$lAUCallTime = lAUCallTime_example; // String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +$lAURequestNonce = lAURequestNonce_example; // String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +$lAUSigned = lAUSigned_example; // String | service specific HTTP headers
    +$lAUSignature = lAUSignature_example; // String | contains the LAU signature, base64 ecoded
    +$signatureRequired = true; // Boolean | a field indicating that a Signature is required
    +$requestBody = ; // Camt.a07.001.02 | Transaction Cancellation Status Request
     
     try {
    -    $result = $api_instance->loginUser($username, $password);
    +    $result = $api_instance->transactionCancellationStatusPost($lAUApplicationID, $lAUVersion, $lAUCallTime, $lAURequestNonce, $lAUSigned, $lAUSignature, $signatureRequired, $requestBody);
         print_r($result);
     } catch (Exception $e) {
    -    echo 'Exception when calling UserApi->loginUser: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling TransactionCancellationStatusApi->transactionCancellationStatusPost: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::SwaggerClient::Configuration;
    -use WWW::SwaggerClient::UserApi;
    -
    -my $api_instance = WWW::SwaggerClient::UserApi->new();
    -my $username = username_example; # String | The user name for login
    -my $password = password_example; # String | The password for login in clear text
    +use WWW::SwaggerClient::TransactionCancellationStatusApi;
    +
    +my $api_instance = WWW::SwaggerClient::TransactionCancellationStatusApi->new();
    +my $lAUApplicationID = lAUApplicationID_example; # String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    +my $lAUVersion = lAUVersion_example; # String | version of the LAUSigned header. Mandatory. "1.0" for this first release
    +my $lAUCallTime = lAUCallTime_example; # String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    +my $lAURequestNonce = lAURequestNonce_example; # String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    +my $lAUSigned = lAUSigned_example; # String | service specific HTTP headers
    +my $lAUSignature = lAUSignature_example; # String | contains the LAU signature, base64 ecoded
    +my $signatureRequired = true; # Boolean | a field indicating that a Signature is required
    +my $requestBody = WWW::SwaggerClient::Object::Camt.a07.001.02->new(); # Camt.a07.001.02 | Transaction Cancellation Status Request
     
     eval { 
    -    my $result = $api_instance->loginUser(username => $username, password => $password);
    +    my $result = $api_instance->transactionCancellationStatusPost(lAUApplicationID => $lAUApplicationID, lAUVersion => $lAUVersion, lAUCallTime => $lAUCallTime, lAURequestNonce => $lAURequestNonce, lAUSigned => $lAUSigned, lAUSignature => $lAUSignature, signatureRequired => $signatureRequired, requestBody => $requestBody);
         print Dumper($result);
     };
     if ($@) {
    -    warn "Exception when calling UserApi->loginUser: $@\n";
    +    warn "Exception when calling TransactionCancellationStatusApi->transactionCancellationStatusPost: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import swagger_client
    @@ -6351,36 +8752,39 @@ 

    Usage and SDK Samples

    from pprint import pprint # create an instance of the API class -api_instance = swagger_client.UserApi() -username = username_example # String | The user name for login -password = password_example # String | The password for login in clear text +api_instance = swagger_client.TransactionCancellationStatusApi() +lAUApplicationID = lAUApplicationID_example # String | ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys (default to 001) +lAUVersion = lAUVersion_example # String | version of the LAUSigned header. Mandatory. "1.0" for this first release (default to 1.0) +lAUCallTime = lAUCallTime_example # String | timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ (default to 2018-03-23T15:56:26.728Z) +lAURequestNonce = lAURequestNonce_example # String | a random value generated by the client. Provided with the request and copied by the gpi Connector on the response (default to e802ab96-bb3a-4965-9139-5214b9f0f074) +lAUSigned = lAUSigned_example # String | service specific HTTP headers (default to (ApplAPIKey=yVGhKiV5z1ZGdaqFXoZ8AiSA9n5CrY6B),(RBACRole=[FullViewer/Scope/cclabeb0])) +lAUSignature = lAUSignature_example # String | contains the LAU signature, base64 ecoded (default to U1khA8h9Lm1PqzB99fG6uw==) +signatureRequired = true # Boolean | a field indicating that a Signature is required (default to true) +requestBody = # Camt.a07.001.02 | Transaction Cancellation Status Request try: - # Logs user into the system - api_response = api_instance.login_user(username, password) + # Transaction Cancellation Status + api_response = api_instance.transaction_cancellation_status_post(lAUApplicationID, lAUVersion, lAUCallTime, lAURequestNonce, lAUSigned, lAUSignature, signatureRequired, requestBody) pprint(api_response) except ApiException as e: - print("Exception when calling UserApi->loginUser: %s\n" % e)
    + print("Exception when calling TransactionCancellationStatusApi->transactionCancellationStatusPost: %s\n" % e)

    Parameters

    - - - -
    Query parameters
    +
    Header parameters
    - + - + -
    Name Description
    username*
    LAUApplicationID* -
    +
    @@ -6388,7 +8792,7 @@

    Parameters

    - The user name for login + ID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    @@ -6399,11 +8803,11 @@

    Parameters

    password*
    LAUVersion* -
    +
    @@ -6411,7 +8815,7 @@

    Parameters

    - The password for login in clear text + version of the LAUSigned header. Mandatory. "1.0" for this first release
    @@ -6422,611 +8826,635 @@

    Parameters

    - -

    Responses

    -

    Status: 200 - successful operation

    - - - -
    -
    -
    - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - -
    NameTypeFormatDescription
    X-Rate-LimitIntegerint32calls per hour allowed by the user
    X-Expires-AfterDatedate-timedate in UTC when toekn expires
    -
    -
    - -

    Status: 400 - Invalid username/password supplied

    - - - -
    -
    - -
    -
    -
    -
    -
    -
    -

    logoutUser

    -

    Logs out current logged in user session

    -
    -
    -
    -

    -

    -

    -
    -
    /user/logout
    -

    -

    Usage and SDK Samples

    -

    - - -
    -
    -
    curl -X GET "http://petstore.swagger.io/v2/user/logout"
    -
    -
    -
    import io.swagger.client.*;
    -import io.swagger.client.auth.*;
    -import io.swagger.client.model.*;
    -import io.swagger.client.api.UserApi;
    -
    -import java.io.File;
    -import java.util.*;
    -
    -public class UserApiExample {
    -
    -    public static void main(String[] args) {
    -        
    -        UserApi apiInstance = new UserApi();
    -        try {
    -            apiInstance.logoutUser();
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling UserApi#logoutUser");
    -            e.printStackTrace();
    -        }
    -    }
    -}
    -
    - -
    -
    import io.swagger.client.api.UserApi;
    -
    -public class UserApiExample {
    -
    -    public static void main(String[] args) {
    -        UserApi apiInstance = new UserApi();
    -        try {
    -            apiInstance.logoutUser();
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling UserApi#logoutUser");
    -            e.printStackTrace();
    -        }
    -    }
    -}
    -
    - -
    -
    
    -UserApi *apiInstance = [[UserApi alloc] init];
    -
    -// Logs out current logged in user session
    -[apiInstance logoutUserWithCompletionHandler: 
    -              ^(NSError* error) {
    -                            if (error) {
    -                                NSLog(@"Error: %@", error);
    -                            }
    -                        }];
    -
    -
    - -
    -
    var SwaggerPetstore = require('swagger_petstore');
    -
    -var api = new SwaggerPetstore.UserApi()
    +                                  LAUCallTime*
    +
     
    -var callback = function(error, data, response) {
    -  if (error) {
    -    console.error(error);
    -  } else {
    -    console.log('API called successfully.');
    -  }
    -};
    -api.logoutUser(callback);
    -
    -
    - -
    -
    using System;
    -using System.Diagnostics;
    -using IO.Swagger.Api;
    -using IO.Swagger.Client;
    -using IO.Swagger.Model;
    +    
    +
    +
    + + String + -namespace Example -{ - public class logoutUserExample - { - public void main() - { - - var apiInstance = new UserApi(); +
    + timestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ +
    +
    +
    + Required +
    +
    +
    + + - try - { - // Logs out current logged in user session - apiInstance.logoutUser(); - } - catch (Exception e) - { - Debug.Print("Exception when calling UserApi.logoutUser: " + e.Message ); - } - } - } -} -
    -
    + LAURequestNonce* + -
    -
    <?php
    -require_once(__DIR__ . '/vendor/autoload.php');
     
    -$api_instance = new Swagger\Client\Api\UserApi();
    +    
    +
    +
    + + String + -try { - $api_instance->logoutUser(); -} catch (Exception $e) { - echo 'Exception when calling UserApi->logoutUser: ', $e->getMessage(), PHP_EOL; -} -?>
    -
    +
    + a random value generated by the client. Provided with the request and copied by the gpi Connector on the response +
    +
    +
    + Required +
    +
    +
    + + -
    -
    use Data::Dumper;
    -use WWW::SwaggerClient::Configuration;
    -use WWW::SwaggerClient::UserApi;
    +                                  LAUSigned*
    +
     
    -my $api_instance = WWW::SwaggerClient::UserApi->new();
     
    -eval { 
    -    $api_instance->logoutUser();
    -};
    -if ($@) {
    -    warn "Exception when calling UserApi->logoutUser: $@\n";
    -}
    -
    +
    +
    +
    + + String + -
    -
    from __future__ import print_statement
    -import time
    -import swagger_client
    -from swagger_client.rest import ApiException
    -from pprint import pprint
    +                    
    + service specific HTTP headers +
    +
    +
    + Required +
    +
    +
    + + -# create an instance of the API class -api_instance = swagger_client.UserApi() + LAUSignature* + -try: - # Logs out current logged in user session - api_instance.logout_user() -except ApiException as e: - print("Exception when calling UserApi->logoutUser: %s\n" % e) -
    -
    -

    Parameters

    +
    +
    +
    + + String + +
    + contains the LAU signature, base64 ecoded +
    +
    +
    + Required +
    +
    +
    + + + SignatureRequired* + +
    +
    +
    + + Boolean + +
    + a field indicating that a Signature is required +
    +
    +
    + Required +
    +
    +
    + + -

    Responses

    -

    Status: default - successful operation

    + - +
    Body parameters
    + + + + + + + + -import java.io.File; -import java.util.*; +
    NameDescription
    requestBody * -
    -
    - - -
    -
    -
    -
    -

    updateUser

    -

    Updated user

    -
    -
    -
    -

    -

    This can only be done by the logged in user.

    -

    -
    -
    /user/{username}
    -

    -

    Usage and SDK Samples

    -

    - + +
    +
    -public class UserApiExample { - public static void main(String[] args) { - - UserApi apiInstance = new UserApi(); - String username = username_example; // String | name that need to be deleted - User body = ; // User | Updated user object - try { - apiInstance.updateUser(username, body); - } catch (ApiException e) { - System.err.println("Exception when calling UserApi#updateUser"); - e.printStackTrace(); - } - } -}
    -
    -
    -
    import io.swagger.client.api.UserApi;
    +                          

    Responses

    +

    Status: 200 - Transaction Cancellation Status Response

    -public class UserApiExample { +
    -
    - -
    -
    String *username = username_example; // name that need to be deleted
    -User *body = ; // Updated user object
    +                                
  • + Headers +
  • + -UserApi *apiInstance = [[UserApi alloc] init]; +
    +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeFormatDescription
    LAUApplicationIDStringID that identifies the application generationg the API and used by the gpi Connector to retrieve the related LAU keys
    LAUVersionStringversion of the LAUSigned header. Mandatory. "1.0" for this first release
    LAUCallTimeStringtimestamp in UTC of the API call in the format YYYY-MM-DDTHH:MM:SS.sssZ
    LAURequestNonceStringa random value generated by the client. Provided with the request and copied by the gpi Connector on the response
    LAUResponseNonceStringa random value generated by the gpi Connector on the response
    LAUSignatureStringcontains the LAU signature, base64 ecoded
    +
    -
    -
    var SwaggerPetstore = require('swagger_petstore');
    -
    -var api = new SwaggerPetstore.UserApi()
    +                            

    Status: 400 - Bad Request

    -var username = username_example; // {String} name that need to be deleted - -var body = ; // {User} Updated user object + -var callback = function(error, data, response) { - if (error) { - console.error(error); - } else { - console.log('API called successfully.'); +
    +
    +
    + +
    + +
    -
    -
    <?php
    -require_once(__DIR__ . '/vendor/autoload.php');
    -
    -$api_instance = new Swagger\Client\Api\UserApi();
    -$username = username_example; // String | name that need to be deleted
    -$body = ; // User | Updated user object
    -
    -try {
    -    $api_instance->updateUser($username, $body);
    -} catch (Exception $e) {
    -    echo 'Exception when calling UserApi->updateUser: ', $e->getMessage(), PHP_EOL;
    -}
    -?>
    -
    +

    Status: 401 - Unauthorized WWW-Authenticate: Bearer realm='SwAP'

    -
    -
    use Data::Dumper;
    -use WWW::SwaggerClient::Configuration;
    -use WWW::SwaggerClient::UserApi;
    +                            
     
    -eval { 
    -    $api_instance->updateUser(username => $username, body => $body);
    +                            
    +
    +
    + +
    + +
    -
    -
    from __future__ import print_statement
    -import time
    -import swagger_client
    -from swagger_client.rest import ApiException
    -from pprint import pprint
    +                            

    Status: 404 - Not Found

    -# create an instance of the API class -api_instance = swagger_client.UserApi() -username = username_example # String | name that need to be deleted -body = # User | Updated user object +
    -
    -
    + -

    Parameters

    +
    +
    +
    + +
    + +
    +
    +

    Status: 429 - Too many requests

    -
    -
    -
    - - String - +
    -
    - Required -
    -
    -
    - - + - +
    +
    +
    + +
    + +
    +
    -
    Body parameters
    - - - - - - - - + //console.log(JSON.stringify(schema)); + var view = new JSONSchemaView(schema, 3); + $('#responses-transactionCancellationStatusPost-500-schema-data').val(stringify(schema)); + var result = $('#responses-transactionCancellationStatusPost-500-schema-500'); + result.empty(); + result.append(view.render()); + }); + + + + + -
    NameDescription
    body * +

    Status: 500 - Internal Server Error

    +
    +

    Status: 502 - Bad Gateway

    + -

    Responses

    -

    Status: 400 - Invalid user supplied

    +
    +
    +
    + +
    + +
    +
    + +

    Status: 503 - Service Unavailable

    +
    +
    + +
    + +
    -

    Status: 404 - User not found

    +

    Status: 504 - Gateway Timeout

    +
    +
    + +
    + +
    @@ -7037,10 +9465,11 @@

    Status: 404 - User not found

    @@ -8763,7 +11192,7 @@

    Status: 404 - User not found