diff --git a/modules/openapi-generator/src/main/resources/bash/client.mustache b/modules/openapi-generator/src/main/resources/bash/client.mustache index e59d63b3f77..d53e1a937d5 100644 --- a/modules/openapi-generator/src/main/resources/bash/client.mustache +++ b/modules/openapi-generator/src/main/resources/bash/client.mustache @@ -416,18 +416,16 @@ build_request_path() { local query_request_part="" - local count=0 for qparam in "${query_params[@]}"; do + if [[ "${operation_parameters[$qparam]}" == "" ]]; then + continue + fi + # Get the array of parameter values local parameter_value="" local parameter_values mapfile -t parameter_values < <(sed -e 's/'":::"'/\n/g' <<<"${operation_parameters[$qparam]}") - if [[ -n "${parameter_values[*]}" ]]; then - if [[ $((count++)) -gt 0 ]]; then - query_request_part+="&" - fi - fi {{#hasAuthMethods}}{{#authMethods}}{{#isApiKey}}{{#isKeyInQuery}} if [[ ${qparam} == "{{keyParamName}}" ]]; then if [[ -n "${parameter_values[*]}" ]]; then @@ -508,6 +506,9 @@ build_request_path() { fi if [[ -n "${parameter_value}" ]]; then + if [[ -n "${query_request_part}" ]]; then + query_request_part+="&" + fi query_request_part+="${parameter_value}" fi diff --git a/samples/client/petstore/bash/.openapi-generator/VERSION b/samples/client/petstore/bash/.openapi-generator/VERSION index 096bf47efe3..83a328a9227 100644 --- a/samples/client/petstore/bash/.openapi-generator/VERSION +++ b/samples/client/petstore/bash/.openapi-generator/VERSION @@ -1 +1 @@ -3.0.0-SNAPSHOT \ No newline at end of file +4.1.0-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/bash/README.md b/samples/client/petstore/bash/README.md index a543b69de1b..9e6a8c0dac3 100644 --- a/samples/client/petstore/bash/README.md +++ b/samples/client/petstore/bash/README.md @@ -1,6 +1,7 @@ # OpenAPI Petstore Bash client ## Overview + This is a Bash client script for accessing OpenAPI Petstore service. The script uses cURL underneath for making all REST calls. @@ -43,6 +44,7 @@ $ petstore-cli --host http://: --dry-run ``` ## Docker image + You can easily create a Docker image containing a preconfigured environment for using the REST Bash client including working autocompletion and short welcome message with basic instructions, using the generated Dockerfile: @@ -59,6 +61,7 @@ is also available. ## Shell completion ### Bash + The generated bash-completion script can be either directly loaded to the current Bash session using: ```shell @@ -72,10 +75,13 @@ sudo cp petstore-cli.bash-completion /etc/bash-completion.d/petstore-cli ``` #### OS X + On OSX you might need to install bash-completion using Homebrew: + ```shell brew install bash-completion ``` + and add the following to the `~/.bashrc`: ```shell @@ -85,8 +91,8 @@ fi ``` ### Zsh -In Zsh, the generated `_petstore-cli` Zsh completion file must be copied to one of the folders under `$FPATH` variable. +In Zsh, the generated `_petstore-cli` Zsh completion file must be copied to one of the folders under `$FPATH` variable. ## Documentation for API Endpoints @@ -94,11 +100,13 @@ All URIs are relative to */v2* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- -*AnotherFakeApi* | [**testSpecialTags**](docs/AnotherFakeApi.md#testspecialtags) | **PATCH** /another-fake/dummy | To test special tags +*AnotherFakeApi* | [**123Test@$%SpecialTags**](docs/AnotherFakeApi.md#123test@$%specialtags) | **PATCH** /another-fake/dummy | To test special tags +*FakeApi* | [**createXmlItem**](docs/FakeApi.md#createxmlitem) | **POST** /fake/create_xml_item | creates an XmlItem *FakeApi* | [**fakeOuterBooleanSerialize**](docs/FakeApi.md#fakeouterbooleanserialize) | **POST** /fake/outer/boolean | *FakeApi* | [**fakeOuterCompositeSerialize**](docs/FakeApi.md#fakeoutercompositeserialize) | **POST** /fake/outer/composite | *FakeApi* | [**fakeOuterNumberSerialize**](docs/FakeApi.md#fakeouternumberserialize) | **POST** /fake/outer/number | *FakeApi* | [**fakeOuterStringSerialize**](docs/FakeApi.md#fakeouterstringserialize) | **POST** /fake/outer/string | +*FakeApi* | [**testBodyWithFileSchema**](docs/FakeApi.md#testbodywithfileschema) | **PUT** /fake/body-with-file-schema | *FakeApi* | [**testBodyWithQueryParams**](docs/FakeApi.md#testbodywithqueryparams) | **PUT** /fake/body-with-query-params | *FakeApi* | [**testClientModel**](docs/FakeApi.md#testclientmodel) | **PATCH** /fake | To test \"client\" model *FakeApi* | [**testEndpointParameters**](docs/FakeApi.md#testendpointparameters) | **POST** /fake | Fake endpoint for testing various parameters @@ -106,6 +114,7 @@ Class | Method | HTTP request | Description 偽のエンドポイント 가짜 엔드 포인트 *FakeApi* | [**testEnumParameters**](docs/FakeApi.md#testenumparameters) | **GET** /fake | To test enum parameters +*FakeApi* | [**testGroupParameters**](docs/FakeApi.md#testgroupparameters) | **DELETE** /fake | Fake endpoint to test group parameters (optional) *FakeApi* | [**testInlineAdditionalProperties**](docs/FakeApi.md#testinlineadditionalproperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties *FakeApi* | [**testJsonFormData**](docs/FakeApi.md#testjsonformdata) | **GET** /fake/jsonFormData | test json serialization of form data *FakeClassnameTags123Api* | [**testClassname**](docs/FakeClassnameTags123Api.md#testclassname) | **PATCH** /fake_classname_test | To test class name in snake case @@ -117,6 +126,7 @@ Class | Method | HTTP request | Description *PetApi* | [**updatePet**](docs/PetApi.md#updatepet) | **PUT** /pet | Update an existing pet *PetApi* | [**updatePetWithForm**](docs/PetApi.md#updatepetwithform) | **POST** /pet/{petId} | Updates a pet in the store with form data *PetApi* | [**uploadFile**](docs/PetApi.md#uploadfile) | **POST** /pet/{petId}/uploadImage | uploads an image +*PetApi* | [**uploadFileWithRequiredFile**](docs/PetApi.md#uploadfilewithrequiredfile) | **POST** /fake/{petId}/uploadImageWithRequiredFile | uploads an image (required) *StoreApi* | [**deleteOrder**](docs/StoreApi.md#deleteorder) | **DELETE** /store/order/{order_id} | Delete purchase order by ID *StoreApi* | [**getInventory**](docs/StoreApi.md#getinventory) | **GET** /store/inventory | Returns pet inventories by status *StoreApi* | [**getOrderById**](docs/StoreApi.md#getorderbyid) | **GET** /store/order/{order_id} | Find purchase order by ID @@ -133,25 +143,34 @@ Class | Method | HTTP request | Description ## Documentation For Models - - [$special[model.name]](docs/$special[model.name].md) - - [200_response](docs/200_response.md) + - [$special[modelName]](docs/$special[modelName].md) + - [200Response](docs/200Response.md) + - [AdditionalPropertiesAnyType](docs/AdditionalPropertiesAnyType.md) + - [AdditionalPropertiesArray](docs/AdditionalPropertiesArray.md) + - [AdditionalPropertiesBoolean](docs/AdditionalPropertiesBoolean.md) - [AdditionalPropertiesClass](docs/AdditionalPropertiesClass.md) + - [AdditionalPropertiesInteger](docs/AdditionalPropertiesInteger.md) + - [AdditionalPropertiesNumber](docs/AdditionalPropertiesNumber.md) + - [AdditionalPropertiesObject](docs/AdditionalPropertiesObject.md) + - [AdditionalPropertiesString](docs/AdditionalPropertiesString.md) - [Animal](docs/Animal.md) - - [AnimalFarm](docs/AnimalFarm.md) - [ApiResponse](docs/ApiResponse.md) - [ArrayOfArrayOfNumberOnly](docs/ArrayOfArrayOfNumberOnly.md) - [ArrayOfNumberOnly](docs/ArrayOfNumberOnly.md) - [ArrayTest](docs/ArrayTest.md) - [Capitalization](docs/Capitalization.md) - [Cat](docs/Cat.md) + - [CatAllOf](docs/CatAllOf.md) - [Category](docs/Category.md) - [ClassModel](docs/ClassModel.md) - [Client](docs/Client.md) - [Dog](docs/Dog.md) + - [DogAllOf](docs/DogAllOf.md) - [EnumArrays](docs/EnumArrays.md) - [EnumClass](docs/EnumClass.md) - - [Enum_Test](docs/Enum_Test.md) - - [Format_test](docs/Format_test.md) + - [EnumTest](docs/EnumTest.md) + - [FileSchemaTestClass](docs/FileSchemaTestClass.md) + - [FormatTest](docs/FormatTest.md) - [HasOnlyReadOnly](docs/HasOnlyReadOnly.md) - [MapTest](docs/MapTest.md) - [MixedPropertiesAndAdditionalPropertiesClass](docs/MixedPropertiesAndAdditionalPropertiesClass.md) @@ -164,7 +183,10 @@ Class | Method | HTTP request | Description - [ReadOnlyFirst](docs/ReadOnlyFirst.md) - [Return](docs/Return.md) - [Tag](docs/Tag.md) + - [TypeHolderDefault](docs/TypeHolderDefault.md) + - [TypeHolderExample](docs/TypeHolderExample.md) - [User](docs/User.md) + - [XmlItem](docs/XmlItem.md) ## Documentation For Authorization @@ -172,12 +194,14 @@ Class | Method | HTTP request | Description ## api_key + - **Type**: API key - **API key parameter name**: api_key - **Location**: HTTP header ## api_key_query + - **Type**: API key - **API key parameter name**: api_key_query - **Location**: URL query string @@ -188,6 +212,7 @@ Class | Method | HTTP request | Description ## petstore_auth + - **Type**: OAuth - **Flow**: implicit - **Authorization URL**: http://petstore.swagger.io/api/oauth/dialog diff --git a/samples/client/petstore/bash/_client.sh b/samples/client/petstore/bash/_client.sh new file mode 100644 index 00000000000..8be68229c3d --- /dev/null +++ b/samples/client/petstore/bash/_client.sh @@ -0,0 +1,594 @@ +#compdef + +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# ! +# ! Note: +# ! +# ! THIS SCRIPT HAS BEEN AUTOMATICALLY GENERATED USING +# ! openapi-generator (https://openapi-generator.tech) +# ! FROM OPENAPI SPECIFICATION IN JSON. +# ! +# ! Based on: https://github.com/Valodim/zsh-curl-completion/blob/master/_curl +# ! +# ! +# ! +# ! Installation: +# ! +# ! Copy the _ file to any directory under FPATH +# ! environment variable (echo $FPATH) +# ! +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + +local curcontext="$curcontext" state line ret=1 +typeset -A opt_args + +typeset -A mime_type_abbreviations +# text/* +mime_type_abbreviations[text]="text/plain" +mime_type_abbreviations[html]="text/html" +mime_type_abbreviations[md]="text/x-markdown" +mime_type_abbreviations[csv]="text/csv" +mime_type_abbreviations[css]="text/css" +mime_type_abbreviations[rtf]="text/rtf" +# application/* +mime_type_abbreviations[json]="application/json" +mime_type_abbreviations[xml]="application/xml" +mime_type_abbreviations[yaml]="application/yaml" +mime_type_abbreviations[js]="application/javascript" +mime_type_abbreviations[bin]="application/octet-stream" +mime_type_abbreviations[rdf]="application/rdf+xml" +# image/* +mime_type_abbreviations[jpg]="image/jpeg" +mime_type_abbreviations[png]="image/png" +mime_type_abbreviations[gif]="image/gif" +mime_type_abbreviations[bmp]="image/bmp" +mime_type_abbreviations[tiff]="image/tiff" + +# +# Generate zsh completion string list for abbreviated mime types +# +get_mime_type_completions() { + typeset -a result + result=() + for k in "${(@k)mime_type_abbreviations}"; do + value=$mime_type_abbreviations[${k}] + #echo $value + result+=( "${k}[${value}]" ) + #echo $result + done + echo "$result" +} + +# +# cURL crypto engines completion function +# +_curl_crypto_engine() { + local vals + vals=( ${${(f)"$(curl --engine list)":gs/ /}[2,$]} ) + _describe -t outputs 'engines' vals && return 0 +} + +# +# cURL post data completion functions= +# +_curl_post_data() { + + # don't do anything further if this is raw content + compset -P '=' && _message 'raw content' && return 0 + + # complete filename or stdin for @ syntax + compset -P '*@' && { + local expl + _description files expl stdin + compadd "$expl[@]" - "-" + _files + return 0 + } + + # got a name already? expecting data. + compset -P '*=' && _message 'data value' && return 0 + + # otherwise, name (or @ or =) should be specified + _message 'data name' && return 0 + +} + + +local arg_http arg_ftp arg_other arg_proxy arg_crypto arg_connection arg_auth arg_input arg_output + +# HTTP Arguments +arg_http=(''\ + {-0,--http1.0}'[force use of use http 1.0 instead of 1.1]' \ + {-b,--cookie}'[pass data to http server as cookie]:data or file' \ + {-c,--cookie-jar}'[specify cookie file]:file name:_files' \ + {-d,--data}'[send specified data as HTTP POST data]:data:{_curl_post_data}' \ + '--data-binary[post HTTP POST data without any processing]:data:{_curl_post_data}' \ + '--data-urlencode[post HTTP POST data, with url encoding]:data:{_curl_post_data}' \ + {-f,--fail}'[enable failfast behavior for server errors]' \ + '*'{-F,--form}'[add POST form data]:name=content' \ + {-G,--get}'[use HTTP GET even with data (-d, --data, --data-binary)]' \ + '*'{-H,--header}'[specify an extra header]:header' \ + '--ignore-content-length[ignore Content-Length header]' \ + {-i,--include}'[include HTTP header in the output]' \ + {-j,--junk-session-cookies}'[discard all session cookies]' \ + {-e,--referer}'[send url as referer]:referer url:_urls' \ + {-L,--location}'[follow Location headers on http 3XX response]' \ + '--location-trusted[like --location, but allows sending of auth data to redirected hosts]' \ + '--max-redirs[set maximum number of redirection followings allowed]:number' \ + {-J,--remote-header-name}'[use Content-Disposition for output file name]' \ + {-O,--remote-name}'[write to filename parsed from url instead of stdout]' \ + '--post301[do not convert POST to GET after following 301 Location response (follow RFC 2616/10.3.2)]' \ + '--post302[do not convert POST to GET after following 302 Location response (follow RFC 2616/10.3.2)]' \ + ) + +# FTP arguments +arg_ftp=(\ + {-a,--append}'[append to target file instead of overwriting (FTP/SFTP)]' \ + '--crlf[convert LF to CRLF in upload]' \ + '--disable-eprt[disable use of EPRT and LPRT for active FTP transfers]' \ + '--disable-epsv[disable use of EPSV for passive FTP transfers]' \ + '--ftp-account[account data (FTP)]:data' \ + '--ftp-alternative-to-user[command to send when USER and PASS commands fail (FTP)]:command' \ + '--ftp-create-dirs[create paths remotely if it does not exist]' \ + '--ftp-method[ftp method to use to reach a file (FTP)]:method:(multicwd ocwd singlecwd)' \ + '--ftp-pasv[use passive mode for the data connection (FTP)]' \ + '--ftp-skip-pasv-ip[do not use the ip the server suggests for PASV]' \ + '--form-string[like --form, but do not parse content]:name=string' \ + '--ftp-pret[send PRET before PASV]' \ + '--ftp-ssl-ccc[use clear command channel (CCC) after authentication (FTP)]' \ + '--ftp-ssl-ccc-mode[sets the CCC mode (FTP)]:mode:(active passive)' \ + '--ftp-ssl-control[require SSL/TLS for FTP login, clear for transfer]' \ + {-l,--list-only}'[list names only when listing directories (FTP)]' \ + {-P,--ftp-port}'[use active mode, tell server to connect to specified address or interface (FTP]:address' \ + '*'{-Q,--quote}'[send arbitrary command to the remote server before transfer (FTP/SFTP)]:command' \ + ) + +# Other Protocol arguments +arg_other=(\ + '--mail-from[specify From: address]:address' \ + '--mail-rcpt[specify email recipient for SMTP, may be given multiple times]:address' \ + {-t,--telnet-option}'[pass options to telnet protocol]:opt=val' \ + '--tftp-blksize[set tftp BLKSIZE option]:value' \ + ) + +# Proxy arguments +arg_proxy=(\ + '--noproxy[list of hosts to connect directly to instead of through proxy]:no-proxy-list' \ + {-p,--proxytunnel}'[tunnel non-http protocols through http proxy]' \ + {-U,--proxy-user}'[specify the user name and password to use for proxy authentication]:user:password' \ + '--proxy-anyauth[use any authentication method for proxy, default to most secure]' \ + '--proxy-basic[use HTTP Basic authentication for proxy]' \ + '--proxy-digest[use http digest authentication for proxy]' \ + '--proxy-negotiate[enable GSS-Negotiate authentication for proxy]' \ + '--proxy-ntlm[enable ntlm authentication for proxy]' \ + '--proxy1.0[use http 1.0 proxy]:proxy url' \ + {-x,--proxy}'[use specified proxy]:proxy url' \ + '--socks5-gssapi-service[change service name for socks server]:servicename' \ + '--socks5-gssapi-nec[allow unprotected exchange of protection mode negotiation]' \ + ) + +# Crypto arguments +arg_crypto=(\ + {-1,--tlsv1}'[Forces curl to use TLS version 1 when negotiating with a remote TLS server.]' \ + {-2,--sslv2}'[Forces curl to use SSL version 2 when negotiating with a remote SSL server.]' \ + {-3,--sslv3}'[Forces curl to use SSL version 3 when negotiating with a remote SSL server.]' \ + '--ciphers[specifies which cipher to use for the ssl connection]:list of ciphers' \ + '--crlfile[specify file with revoked certificates]:file' \ + '--delegation[set delegation policy to use with GSS/kerberos]:delegation policy:(none policy always)' \ + {-E,--cert}'[use specified client certificate]:certificate file:_files' \ + '--engine[use selected OpenSSL crypto engine]:ssl crypto engine:{_curl_crypto_engine}' \ + '--egd-file[set ssl entropy gathering daemon socket]:entropy socket:_files' \ + '--cert-type[specify certificate type (PEM, DER, ENG)]:certificate type:(PEM DER ENG)' \ + '--cacert[specify certificate file to verify the peer with]:CA certificate:_files' \ + '--capath[specify a search path for certificate files]:CA certificate directory:_directories' \ + '--hostpubmd5[check remote hosts public key]:md5 hash' \ + {-k,--insecure}'[allow ssl to perform insecure ssl connections (ie, ignore certificate)]' \ + '--key[ssl/ssh private key file name]:key file:_files' \ + '--key-type[ssl/ssh private key file type]:file type:(PEM DER ENG)' \ + '--pubkey[ssh public key file]:pubkey file:_files' \ + '--random-file[set source of random data for ssl]:random source:_files' \ + '--no-sessionid[disable caching of ssl session ids]' \ + '--pass:phrase[passphrase for ssl/ssh private key]' \ + '--ssl[try to use ssl/tls for connection, if available]' \ + '--ssl-reqd[try to use ssl/tls for connection, fail if unavailable]' \ + '--tlsauthtype[set TLS authentication type (only SRP supported!)]:authtype' \ + '--tlsuser[set username for TLS authentication]:user' \ + '--tlspassword[set password for TLS authentication]:password' \ + ) + +# Connection arguments +arg_connection=(\ + {-4,--ipv4}'[prefer ipv4]' \ + {-6,--ipv6}'[prefer ipv6, if available]' \ + {-B,--use-ascii}'[use ascii mode]' \ + '--compressed[request a compressed transfer]' \ + '--connect-timeout[timeout for connection phase]:seconds' \ + {-I,--head}'[fetch http HEAD only (HTTP/FTP/FILE]' \ + '--interface[work on a specific interface]:name' \ + '--keepalive-time[set time to wait before sending keepalive probes]:seconds' \ + '--limit-rate[specify maximum transfer rate]:speed' \ + '--local-port[set preferred number or range of local ports to use]:num' \ + {-N,--no-buffer}'[disable buffering of the output stream]' \ + '--no-keepalive[disable use of keepalive messages in TCP connections]' \ + '--raw[disable all http decoding and pass raw data]' \ + '--resolve[provide a custom address for a specific host and port pair]:host\:port\:address' \ + '--retry[specify maximum number of retries for transient errors]:num' \ + '--retry-delay[specify delay between retries]:seconds' \ + '--retry-max-time[maximum time to spend on retries]:seconds' \ + '--tcp-nodelay[turn on TCP_NODELAY option]' \ + {-y,--speed-time}'[specify time to abort after if download is slower than speed-limit]:time' \ + {-Y,--speed-limit}'[specify minimum speed for --speed-time]:speed' \ + ) + +# Authentication arguments +arg_auth=(\ + '--anyauth[use any authentication method, default to most secure]' \ + '--basic[use HTTP Basic authentication]' \ + '--ntlm[enable ntlm authentication]' \ + '--digest[use http digest authentication]' \ + '--krb[use kerberos authentication]:auth:(clear safe confidential private)' \ + '--negotiate[enable GSS-Negotiate authentication]' \ + {-n,--netrc}'[scan ~/.netrc for login data]' \ + '--netrc-optional[like --netrc, but does not make .netrc usage mandatory]' \ + '--netrc-file[like --netrc, but specify file to use]:netrc file:_files' \ + '--tr-encoding[request compressed transfer-encoding]' \ + {-u,--user}'[specify user name and password for server authentication]:user\:password' \ + ) + +# Input arguments +arg_input=(\ + {-C,--continue-at}'[resume at offset ]:offset' \ + {-g,--globoff}'[do not glob {}\[\] letters]' \ + '--max-filesize[maximum filesize to download, fail for bigger files]:bytes' \ + '--proto[specify allowed protocols for transfer]:protocols' \ + '--proto-redir[specify allowed protocols for transfer after a redirect]:protocols' \ + {-r,--range}'[set range of bytes to request (HTTP/FTP/SFTP/FILE)]:range' \ + {-R,--remote-time}'[use timestamp of remote file for local file]' \ + {-T,--upload-file}'[transfer file to remote url (using PUT for HTTP)]:file to upload:_files' \ + '--url[specify a URL to fetch (multi)]:url:_urls' \ + {-z,--time-cond}'[request downloaded file to be newer than date or given reference file]:date expression' \ + ) + +# Output arguments +arg_output=(\ + '--create-dirs[create local directory hierarchy as needed]' \ + {-D,--dump-header}'[write protocol headers to file]:dump file:_files' \ + {-o,--output}'[write to specified file instead of stdout]:output file:_files' \ + {--progress-bar,-\#}'[display progress as a simple progress bar]' \ + {-\#,--progress-bar}'[Make curl display progress as a simple progress bar instead of the standard, more informational, meter.]' \ + {-R,--remote-time}'[use timestamp of remote file for local file]' \ + '--raw[disable all http decoding and pass raw data]' \ + {-s,--silent}'[silent mode, do not show progress meter or error messages]' \ + {-S,--show-error}'[show errors in silent mode]' \ + '--stderr[redirect stderr to specified file]:output file:_files' \ + '--trace[enable full trace dump of all incoming and outgoing data]:trace file:_files' \ + '--trace-ascii[enable full trace dump of all incoming and outgoing data, without hex data]:trace file:_files' \ + '--trace-time[prepends a time stamp to each trace or verbose line that curl displays]' \ + {-v,--verbose}'[output debug info]' \ + {-w,--write-out}'[specify message to output on successful operation]:format string' \ + '--xattr[store some file metadata in extended file attributes]' \ + {-X,--request}'[specifies request method for HTTP server]:method:(GET POST PUT DELETE HEAD OPTIONS TRACE CONNECT PATCH LINK UNLINK)' \ + ) + +_arguments -C -s $arg_http $arg_ftp $arg_other $arg_crypto $arg_connection $arg_auth $arg_input $arg_output \ + {-M,--manual}'[Print manual]' \ + '*'{-K,--config}'[Use other config file to read arguments from]:config file:_files' \ + '--libcurl[output libcurl code for the operation to file]:output file:_files' \ + {-m,--max-time}'[Limit total time of operation]:seconds' \ + {-s,--silent}'[Silent mode, do not show progress meter or error messages]' \ + {-S,--show-error}'[Show errors in silent mode]' \ + '--stderr[Redirect stderr to specified file]:output file:_files' \ + '-q[Do not read settings from .curlrc (must be first option)]' \ + {-h,--help}'[Print help and list of operations]' \ + {-V,--version}'[Print service API version]' \ + '--about[Print the information about service]' \ + '--host[Specify the host URL]':URL:_urls \ + '--dry-run[Print out the cURL command without executing it]' \ + {-ac,--accept}'[Set the Accept header in the request]: :{_values "Accept mime type" $(get_mime_type_completions)}' \ + {-ct,--content-type}'[Set the Content-type header in request]: :{_values "Content mime type" $(get_mime_type_completions)}' \ + '1: :->ops' \ + '*:: :->args' \ + && ret=0 + + +case $state in + ops) + # Operations + _values "Operations" \ + "123Test@$%SpecialTags[To test special tags]" "fooGet[]" "fakeHealthGet[Health check endpoint]" \ + "fakeOuterBooleanSerialize[]" \ + "fakeOuterCompositeSerialize[]" \ + "fakeOuterNumberSerialize[]" \ + "fakeOuterStringSerialize[]" \ + "testBodyWithFileSchema[]" \ + "testBodyWithQueryParams[]" \ + "testClientModel[To test \"client\" model]" \ + "testEndpointParameters[Fake endpoint for testing various parameters +假端點 +偽のエンドポイント +가짜 엔드 포인트]" \ + "testEnumParameters[To test enum parameters]" \ + "testGroupParameters[Fake endpoint to test group parameters (optional)]" \ + "testInlineAdditionalProperties[test inline additionalProperties]" \ + "testJsonFormData[test json serialization of form data]" "testClassname[To test class name in snake case]" "addPet[Add a new pet to the store]" \ + "deletePet[Deletes a pet]" \ + "findPetsByStatus[Finds Pets by status]" \ + "findPetsByTags[Finds Pets by tags]" \ + "getPetById[Find pet by ID]" \ + "updatePet[Update an existing pet]" \ + "updatePetWithForm[Updates a pet in the store with form data]" \ + "uploadFile[uploads an image]" \ + "uploadFileWithRequiredFile[uploads an image (required)]" "deleteOrder[Delete purchase order by ID]" \ + "getInventory[Returns pet inventories by status]" \ + "getOrderById[Find purchase order by ID]" \ + "placeOrder[Place an order for a pet]" "createUser[Create user]" \ + "createUsersWithArrayInput[Creates list of users with given input array]" \ + "createUsersWithListInput[Creates list of users with given input array]" \ + "deleteUser[Delete user]" \ + "getUserByName[Get user by user name]" \ + "loginUser[Logs user into the system]" \ + "logoutUser[Logs out current logged in user session]" \ + "updateUser[Updated user]" + _arguments "(--help)--help[Print information about operation]" + + ret=0 + ;; + args) + case $line[1] in + 123Test@$%SpecialTags) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + fooGet) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + fakeHealthGet) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + fakeOuterBooleanSerialize) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + fakeOuterCompositeSerialize) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + fakeOuterNumberSerialize) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + fakeOuterStringSerialize) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + testBodyWithFileSchema) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + testBodyWithQueryParams) + local -a _op_arguments + _op_arguments=( + "query=:[QUERY] " + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + testClientModel) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + testEndpointParameters) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + testEnumParameters) + local -a _op_arguments + _op_arguments=( + "enum_query_string_array=:[QUERY] Query parameter enum test (string array)" +"enum_query_string=:[QUERY] Query parameter enum test (string)" +"enum_query_integer=:[QUERY] Query parameter enum test (double)" +"enum_query_double=:[QUERY] Query parameter enum test (double)" + "enum_header_string_array\::[HEADER] Header parameter enum test (string array)" +"enum_header_string\::[HEADER] Header parameter enum test (string)" +) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + testGroupParameters) + local -a _op_arguments + _op_arguments=( + "required_string_group=:[QUERY] Required String in group parameters" +"required_int64_group=:[QUERY] Required Integer in group parameters" +"string_group=:[QUERY] String in group parameters" +"int64_group=:[QUERY] Integer in group parameters" + "required_boolean_group\::[HEADER] Required Boolean in group parameters" +"boolean_group\::[HEADER] Boolean in group parameters" +) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + testInlineAdditionalProperties) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + testJsonFormData) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + testClassname) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + addPet) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + deletePet) + local -a _op_arguments + _op_arguments=( + "petId=:[PATH] Pet id to delete" + "api_key\::[HEADER] " +) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + findPetsByStatus) + local -a _op_arguments + _op_arguments=( + "status=:[QUERY] Status values that need to be considered for filter" + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + findPetsByTags) + local -a _op_arguments + _op_arguments=( + "tags=:[QUERY] Tags to filter by" + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + getPetById) + local -a _op_arguments + _op_arguments=( + "petId=:[PATH] ID of pet to return" + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + updatePet) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + updatePetWithForm) + local -a _op_arguments + _op_arguments=( + "petId=:[PATH] ID of pet that needs to be updated" + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + uploadFile) + local -a _op_arguments + _op_arguments=( + "petId=:[PATH] ID of pet to update" + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + uploadFileWithRequiredFile) + local -a _op_arguments + _op_arguments=( + "petId=:[PATH] ID of pet to update" + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + deleteOrder) + local -a _op_arguments + _op_arguments=( + "order_id=:[PATH] ID of the order that needs to be deleted" + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + getInventory) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + getOrderById) + local -a _op_arguments + _op_arguments=( + "order_id=:[PATH] ID of pet that needs to be fetched" + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + placeOrder) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + createUser) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + createUsersWithArrayInput) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + createUsersWithListInput) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + deleteUser) + local -a _op_arguments + _op_arguments=( + "username=:[PATH] The name that needs to be deleted" + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + getUserByName) + local -a _op_arguments + _op_arguments=( + "username=:[PATH] The name that needs to be fetched. Use user1 for testing." + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + loginUser) + local -a _op_arguments + _op_arguments=( + "username=:[QUERY] The user name for login" +"password=:[QUERY] The password for login in clear text" + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + logoutUser) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + updateUser) + local -a _op_arguments + _op_arguments=( + "username=:[PATH] name that need to be deleted" + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + esac + ;; + +esac + +return ret diff --git a/samples/client/petstore/bash/_petstore-cli b/samples/client/petstore/bash/_petstore-cli index 3141c8ccd87..22d7eaf982d 100644 --- a/samples/client/petstore/bash/_petstore-cli +++ b/samples/client/petstore/bash/_petstore-cli @@ -296,10 +296,12 @@ case $state in ops) # Operations _values "Operations" \ - "testSpecialTags[To test special tags]" "fakeOuterBooleanSerialize[]" \ + "123Test@$%SpecialTags[To test special tags]" "createXmlItem[creates an XmlItem]" \ + "fakeOuterBooleanSerialize[]" \ "fakeOuterCompositeSerialize[]" \ "fakeOuterNumberSerialize[]" \ "fakeOuterStringSerialize[]" \ + "testBodyWithFileSchema[]" \ "testBodyWithQueryParams[]" \ "testClientModel[To test \"client\" model]" \ "testEndpointParameters[Fake endpoint for testing various parameters @@ -307,6 +309,7 @@ case $state in 偽のエンドポイント 가짜 엔드 포인트]" \ "testEnumParameters[To test enum parameters]" \ + "testGroupParameters[Fake endpoint to test group parameters (optional)]" \ "testInlineAdditionalProperties[test inline additionalProperties]" \ "testJsonFormData[test json serialization of form data]" "testClassname[To test class name in snake case]" "addPet[Add a new pet to the store]" \ "deletePet[Deletes a pet]" \ @@ -315,7 +318,8 @@ case $state in "getPetById[Find pet by ID]" \ "updatePet[Update an existing pet]" \ "updatePetWithForm[Updates a pet in the store with form data]" \ - "uploadFile[uploads an image]" "deleteOrder[Delete purchase order by ID]" \ + "uploadFile[uploads an image]" \ + "uploadFileWithRequiredFile[uploads an image (required)]" "deleteOrder[Delete purchase order by ID]" \ "getInventory[Returns pet inventories by status]" \ "getOrderById[Find purchase order by ID]" \ "placeOrder[Place an order for a pet]" "createUser[Create user]" \ @@ -332,7 +336,13 @@ case $state in ;; args) case $line[1] in - testSpecialTags) + 123Test@$%SpecialTags) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + createXmlItem) local -a _op_arguments _op_arguments=( ) @@ -362,6 +372,12 @@ case $state in ) _describe -t actions 'operations' _op_arguments -S '' && ret=0 ;; + testBodyWithFileSchema) + local -a _op_arguments + _op_arguments=( + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; testBodyWithQueryParams) local -a _op_arguments _op_arguments=( @@ -390,6 +406,18 @@ case $state in "enum_query_double=:[QUERY] Query parameter enum test (double)" "enum_header_string_array\::[HEADER] Header parameter enum test (string array)" "enum_header_string\::[HEADER] Header parameter enum test (string)" +) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; + testGroupParameters) + local -a _op_arguments + _op_arguments=( + "required_string_group=:[QUERY] Required String in group parameters" +"required_int64_group=:[QUERY] Required Integer in group parameters" +"string_group=:[QUERY] String in group parameters" +"int64_group=:[QUERY] Integer in group parameters" + "required_boolean_group\::[HEADER] Required Boolean in group parameters" +"boolean_group\::[HEADER] Boolean in group parameters" ) _describe -t actions 'operations' _op_arguments -S '' && ret=0 ;; @@ -466,6 +494,13 @@ case $state in ) _describe -t actions 'operations' _op_arguments -S '' && ret=0 ;; + uploadFileWithRequiredFile) + local -a _op_arguments + _op_arguments=( + "petId=:[PATH] ID of pet to update" + ) + _describe -t actions 'operations' _op_arguments -S '' && ret=0 + ;; deleteOrder) local -a _op_arguments _op_arguments=( diff --git a/samples/client/petstore/bash/client.sh b/samples/client/petstore/bash/client.sh new file mode 100644 index 00000000000..c43fb5804e6 --- /dev/null +++ b/samples/client/petstore/bash/client.sh @@ -0,0 +1,4003 @@ +#!/usr/bin/env bash + +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# ! +# ! Note: +# ! +# ! THIS SCRIPT HAS BEEN AUTOMATICALLY GENERATED USING +# ! openapi-generator (https://openapi-generator.tech) +# ! FROM OPENAPI SPECIFICATION IN JSON. +# ! +# ! +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +# +# This is a Bash client for OpenAPI Petstore. +# +# LICENSE: +# http://www.apache.org/licenses/LICENSE-2.0.html +# +# CONTACT: +# +# +# MORE INFORMATION: +# +# + +# For improved pattern matching in case statemets +shopt -s extglob + +############################################################################### +# +# Make sure Bash is at least in version 4.3 +# +############################################################################### +if ! ( (("${BASH_VERSION:0:1}" == "4")) && (("${BASH_VERSION:2:1}" >= "3")) ) \ + && ! (("${BASH_VERSION:0:1}" >= "5")); then + echo "" + echo "Sorry - your Bash version is ${BASH_VERSION}" + echo "" + echo "You need at least Bash 4.3 to run this script." + echo "" + exit 1 +fi + +############################################################################### +# +# Global variables +# +############################################################################### + +## +# The filename of this script for help messages +script_name=$(basename "$0") + +## +# Map for headers passed after operation as KEY:VALUE +declare -A header_arguments + + +## +# Map for operation parameters passed after operation as PARAMETER=VALUE +# These will be mapped to appropriate path or query parameters +# The values in operation_parameters are arrays, so that multiple values +# can be provided for the same parameter if allowed by API specification +declare -A operation_parameters + +## +# Declare colors with autodection if output is terminal +if [ -t 1 ]; then + RED="$(tput setaf 1)" + GREEN="$(tput setaf 2)" + YELLOW="$(tput setaf 3)" + BLUE="$(tput setaf 4)" + MAGENTA="$(tput setaf 5)" + CYAN="$(tput setaf 6)" + WHITE="$(tput setaf 7)" + BOLD="$(tput bold)" + OFF="$(tput sgr0)" +else + RED="" + GREEN="" + YELLOW="" + BLUE="" + MAGENTA="" + CYAN="" + WHITE="" + BOLD="" + OFF="" +fi + +declare -a result_color_table=( "$WHITE" "$WHITE" "$GREEN" "$YELLOW" "$WHITE" "$MAGENTA" "$WHITE" ) + +## +# This array stores the minimum number of required occurrences for parameter +# 0 - optional +# 1 - required +declare -A operation_parameters_minimum_occurrences +operation_parameters_minimum_occurrences["123Test@$%SpecialTags:::Client"]=1 +operation_parameters_minimum_occurrences["fakeOuterBooleanSerialize:::body"]=0 +operation_parameters_minimum_occurrences["fakeOuterCompositeSerialize:::OuterComposite"]=0 +operation_parameters_minimum_occurrences["fakeOuterNumberSerialize:::body"]=0 +operation_parameters_minimum_occurrences["fakeOuterStringSerialize:::body"]=0 +operation_parameters_minimum_occurrences["testBodyWithFileSchema:::FileSchemaTestClass"]=1 +operation_parameters_minimum_occurrences["testBodyWithQueryParams:::query"]=1 +operation_parameters_minimum_occurrences["testBodyWithQueryParams:::User"]=1 +operation_parameters_minimum_occurrences["testClientModel:::Client"]=1 +operation_parameters_minimum_occurrences["testEndpointParameters:::number"]=1 +operation_parameters_minimum_occurrences["testEndpointParameters:::double"]=1 +operation_parameters_minimum_occurrences["testEndpointParameters:::pattern_without_delimiter"]=1 +operation_parameters_minimum_occurrences["testEndpointParameters:::byte"]=1 +operation_parameters_minimum_occurrences["testEndpointParameters:::integer"]=0 +operation_parameters_minimum_occurrences["testEndpointParameters:::int32"]=0 +operation_parameters_minimum_occurrences["testEndpointParameters:::int64"]=0 +operation_parameters_minimum_occurrences["testEndpointParameters:::float"]=0 +operation_parameters_minimum_occurrences["testEndpointParameters:::string"]=0 +operation_parameters_minimum_occurrences["testEndpointParameters:::binary"]=0 +operation_parameters_minimum_occurrences["testEndpointParameters:::date"]=0 +operation_parameters_minimum_occurrences["testEndpointParameters:::dateTime"]=0 +operation_parameters_minimum_occurrences["testEndpointParameters:::password"]=0 +operation_parameters_minimum_occurrences["testEndpointParameters:::callback"]=0 +operation_parameters_minimum_occurrences["testEnumParameters:::enum_header_string_array"]=0 +operation_parameters_minimum_occurrences["testEnumParameters:::enum_header_string"]=0 +operation_parameters_minimum_occurrences["testEnumParameters:::enum_query_string_array"]=0 +operation_parameters_minimum_occurrences["testEnumParameters:::enum_query_string"]=0 +operation_parameters_minimum_occurrences["testEnumParameters:::enum_query_integer"]=0 +operation_parameters_minimum_occurrences["testEnumParameters:::enum_query_double"]=0 +operation_parameters_minimum_occurrences["testEnumParameters:::enum_form_string_array"]=0 +operation_parameters_minimum_occurrences["testEnumParameters:::enum_form_string"]=0 +operation_parameters_minimum_occurrences["testGroupParameters:::required_string_group"]=1 +operation_parameters_minimum_occurrences["testGroupParameters:::required_boolean_group"]=1 +operation_parameters_minimum_occurrences["testGroupParameters:::required_int64_group"]=1 +operation_parameters_minimum_occurrences["testGroupParameters:::string_group"]=0 +operation_parameters_minimum_occurrences["testGroupParameters:::boolean_group"]=0 +operation_parameters_minimum_occurrences["testGroupParameters:::int64_group"]=0 +operation_parameters_minimum_occurrences["testInlineAdditionalProperties:::request_body"]=1 +operation_parameters_minimum_occurrences["testJsonFormData:::param"]=1 +operation_parameters_minimum_occurrences["testJsonFormData:::param2"]=1 +operation_parameters_minimum_occurrences["testClassname:::Client"]=1 +operation_parameters_minimum_occurrences["addPet:::Pet"]=1 +operation_parameters_minimum_occurrences["deletePet:::petId"]=1 +operation_parameters_minimum_occurrences["deletePet:::api_key"]=0 +operation_parameters_minimum_occurrences["findPetsByStatus:::status"]=1 +operation_parameters_minimum_occurrences["findPetsByTags:::tags"]=1 +operation_parameters_minimum_occurrences["getPetById:::petId"]=1 +operation_parameters_minimum_occurrences["updatePet:::Pet"]=1 +operation_parameters_minimum_occurrences["updatePetWithForm:::petId"]=1 +operation_parameters_minimum_occurrences["updatePetWithForm:::name"]=0 +operation_parameters_minimum_occurrences["updatePetWithForm:::status"]=0 +operation_parameters_minimum_occurrences["uploadFile:::petId"]=1 +operation_parameters_minimum_occurrences["uploadFile:::additionalMetadata"]=0 +operation_parameters_minimum_occurrences["uploadFile:::file"]=0 +operation_parameters_minimum_occurrences["uploadFileWithRequiredFile:::petId"]=1 +operation_parameters_minimum_occurrences["uploadFileWithRequiredFile:::requiredFile"]=1 +operation_parameters_minimum_occurrences["uploadFileWithRequiredFile:::additionalMetadata"]=0 +operation_parameters_minimum_occurrences["deleteOrder:::order_id"]=1 +operation_parameters_minimum_occurrences["getOrderById:::order_id"]=1 +operation_parameters_minimum_occurrences["placeOrder:::Order"]=1 +operation_parameters_minimum_occurrences["createUser:::User"]=1 +operation_parameters_minimum_occurrences["createUsersWithArrayInput:::User"]=1 +operation_parameters_minimum_occurrences["createUsersWithListInput:::User"]=1 +operation_parameters_minimum_occurrences["deleteUser:::username"]=1 +operation_parameters_minimum_occurrences["getUserByName:::username"]=1 +operation_parameters_minimum_occurrences["loginUser:::username"]=1 +operation_parameters_minimum_occurrences["loginUser:::password"]=1 +operation_parameters_minimum_occurrences["updateUser:::username"]=1 +operation_parameters_minimum_occurrences["updateUser:::User"]=1 + +## +# This array stores the maximum number of allowed occurrences for parameter +# 1 - single value +# 2 - 2 values +# N - N values +# 0 - unlimited +declare -A operation_parameters_maximum_occurrences +operation_parameters_maximum_occurrences["123Test@$%SpecialTags:::Client"]=0 +operation_parameters_maximum_occurrences["fakeOuterBooleanSerialize:::body"]=0 +operation_parameters_maximum_occurrences["fakeOuterCompositeSerialize:::OuterComposite"]=0 +operation_parameters_maximum_occurrences["fakeOuterNumberSerialize:::body"]=0 +operation_parameters_maximum_occurrences["fakeOuterStringSerialize:::body"]=0 +operation_parameters_maximum_occurrences["testBodyWithFileSchema:::FileSchemaTestClass"]=0 +operation_parameters_maximum_occurrences["testBodyWithQueryParams:::query"]=0 +operation_parameters_maximum_occurrences["testBodyWithQueryParams:::User"]=0 +operation_parameters_maximum_occurrences["testClientModel:::Client"]=0 +operation_parameters_maximum_occurrences["testEndpointParameters:::number"]=0 +operation_parameters_maximum_occurrences["testEndpointParameters:::double"]=0 +operation_parameters_maximum_occurrences["testEndpointParameters:::pattern_without_delimiter"]=0 +operation_parameters_maximum_occurrences["testEndpointParameters:::byte"]=0 +operation_parameters_maximum_occurrences["testEndpointParameters:::integer"]=0 +operation_parameters_maximum_occurrences["testEndpointParameters:::int32"]=0 +operation_parameters_maximum_occurrences["testEndpointParameters:::int64"]=0 +operation_parameters_maximum_occurrences["testEndpointParameters:::float"]=0 +operation_parameters_maximum_occurrences["testEndpointParameters:::string"]=0 +operation_parameters_maximum_occurrences["testEndpointParameters:::binary"]=0 +operation_parameters_maximum_occurrences["testEndpointParameters:::date"]=0 +operation_parameters_maximum_occurrences["testEndpointParameters:::dateTime"]=0 +operation_parameters_maximum_occurrences["testEndpointParameters:::password"]=0 +operation_parameters_maximum_occurrences["testEndpointParameters:::callback"]=0 +operation_parameters_maximum_occurrences["testEnumParameters:::enum_header_string_array"]=0 +operation_parameters_maximum_occurrences["testEnumParameters:::enum_header_string"]=0 +operation_parameters_maximum_occurrences["testEnumParameters:::enum_query_string_array"]=0 +operation_parameters_maximum_occurrences["testEnumParameters:::enum_query_string"]=0 +operation_parameters_maximum_occurrences["testEnumParameters:::enum_query_integer"]=0 +operation_parameters_maximum_occurrences["testEnumParameters:::enum_query_double"]=0 +operation_parameters_maximum_occurrences["testEnumParameters:::enum_form_string_array"]=0 +operation_parameters_maximum_occurrences["testEnumParameters:::enum_form_string"]=0 +operation_parameters_maximum_occurrences["testGroupParameters:::required_string_group"]=0 +operation_parameters_maximum_occurrences["testGroupParameters:::required_boolean_group"]=0 +operation_parameters_maximum_occurrences["testGroupParameters:::required_int64_group"]=0 +operation_parameters_maximum_occurrences["testGroupParameters:::string_group"]=0 +operation_parameters_maximum_occurrences["testGroupParameters:::boolean_group"]=0 +operation_parameters_maximum_occurrences["testGroupParameters:::int64_group"]=0 +operation_parameters_maximum_occurrences["testInlineAdditionalProperties:::request_body"]=0 +operation_parameters_maximum_occurrences["testJsonFormData:::param"]=0 +operation_parameters_maximum_occurrences["testJsonFormData:::param2"]=0 +operation_parameters_maximum_occurrences["testClassname:::Client"]=0 +operation_parameters_maximum_occurrences["addPet:::Pet"]=0 +operation_parameters_maximum_occurrences["deletePet:::petId"]=0 +operation_parameters_maximum_occurrences["deletePet:::api_key"]=0 +operation_parameters_maximum_occurrences["findPetsByStatus:::status"]=0 +operation_parameters_maximum_occurrences["findPetsByTags:::tags"]=0 +operation_parameters_maximum_occurrences["getPetById:::petId"]=0 +operation_parameters_maximum_occurrences["updatePet:::Pet"]=0 +operation_parameters_maximum_occurrences["updatePetWithForm:::petId"]=0 +operation_parameters_maximum_occurrences["updatePetWithForm:::name"]=0 +operation_parameters_maximum_occurrences["updatePetWithForm:::status"]=0 +operation_parameters_maximum_occurrences["uploadFile:::petId"]=0 +operation_parameters_maximum_occurrences["uploadFile:::additionalMetadata"]=0 +operation_parameters_maximum_occurrences["uploadFile:::file"]=0 +operation_parameters_maximum_occurrences["uploadFileWithRequiredFile:::petId"]=0 +operation_parameters_maximum_occurrences["uploadFileWithRequiredFile:::requiredFile"]=0 +operation_parameters_maximum_occurrences["uploadFileWithRequiredFile:::additionalMetadata"]=0 +operation_parameters_maximum_occurrences["deleteOrder:::order_id"]=0 +operation_parameters_maximum_occurrences["getOrderById:::order_id"]=0 +operation_parameters_maximum_occurrences["placeOrder:::Order"]=0 +operation_parameters_maximum_occurrences["createUser:::User"]=0 +operation_parameters_maximum_occurrences["createUsersWithArrayInput:::User"]=0 +operation_parameters_maximum_occurrences["createUsersWithListInput:::User"]=0 +operation_parameters_maximum_occurrences["deleteUser:::username"]=0 +operation_parameters_maximum_occurrences["getUserByName:::username"]=0 +operation_parameters_maximum_occurrences["loginUser:::username"]=0 +operation_parameters_maximum_occurrences["loginUser:::password"]=0 +operation_parameters_maximum_occurrences["updateUser:::username"]=0 +operation_parameters_maximum_occurrences["updateUser:::User"]=0 + +## +# The type of collection for specifying multiple values for parameter: +# - multi, csv, ssv, tsv +declare -A operation_parameters_collection_type +operation_parameters_collection_type["123Test@$%SpecialTags:::Client"]="" +operation_parameters_collection_type["fakeOuterBooleanSerialize:::body"]="" +operation_parameters_collection_type["fakeOuterCompositeSerialize:::OuterComposite"]="" +operation_parameters_collection_type["fakeOuterNumberSerialize:::body"]="" +operation_parameters_collection_type["fakeOuterStringSerialize:::body"]="" +operation_parameters_collection_type["testBodyWithFileSchema:::FileSchemaTestClass"]="" +operation_parameters_collection_type["testBodyWithQueryParams:::query"]="" +operation_parameters_collection_type["testBodyWithQueryParams:::User"]="" +operation_parameters_collection_type["testClientModel:::Client"]="" +operation_parameters_collection_type["testEndpointParameters:::number"]="" +operation_parameters_collection_type["testEndpointParameters:::double"]="" +operation_parameters_collection_type["testEndpointParameters:::pattern_without_delimiter"]="" +operation_parameters_collection_type["testEndpointParameters:::byte"]="" +operation_parameters_collection_type["testEndpointParameters:::integer"]="" +operation_parameters_collection_type["testEndpointParameters:::int32"]="" +operation_parameters_collection_type["testEndpointParameters:::int64"]="" +operation_parameters_collection_type["testEndpointParameters:::float"]="" +operation_parameters_collection_type["testEndpointParameters:::string"]="" +operation_parameters_collection_type["testEndpointParameters:::binary"]="" +operation_parameters_collection_type["testEndpointParameters:::date"]="" +operation_parameters_collection_type["testEndpointParameters:::dateTime"]="" +operation_parameters_collection_type["testEndpointParameters:::password"]="" +operation_parameters_collection_type["testEndpointParameters:::callback"]="" +operation_parameters_collection_type["testEnumParameters:::enum_header_string_array"]="csv" +operation_parameters_collection_type["testEnumParameters:::enum_header_string"]="" +operation_parameters_collection_type["testEnumParameters:::enum_query_string_array"]="multi" +operation_parameters_collection_type["testEnumParameters:::enum_query_string"]="" +operation_parameters_collection_type["testEnumParameters:::enum_query_integer"]="" +operation_parameters_collection_type["testEnumParameters:::enum_query_double"]="" +operation_parameters_collection_type["testEnumParameters:::enum_form_string_array"]= +operation_parameters_collection_type["testEnumParameters:::enum_form_string"]="" +operation_parameters_collection_type["testGroupParameters:::required_string_group"]="" +operation_parameters_collection_type["testGroupParameters:::required_boolean_group"]="" +operation_parameters_collection_type["testGroupParameters:::required_int64_group"]="" +operation_parameters_collection_type["testGroupParameters:::string_group"]="" +operation_parameters_collection_type["testGroupParameters:::boolean_group"]="" +operation_parameters_collection_type["testGroupParameters:::int64_group"]="" +operation_parameters_collection_type["testInlineAdditionalProperties:::request_body"]= +operation_parameters_collection_type["testJsonFormData:::param"]="" +operation_parameters_collection_type["testJsonFormData:::param2"]="" +operation_parameters_collection_type["testClassname:::Client"]="" +operation_parameters_collection_type["addPet:::Pet"]="" +operation_parameters_collection_type["deletePet:::petId"]="" +operation_parameters_collection_type["deletePet:::api_key"]="" +operation_parameters_collection_type["findPetsByStatus:::status"]="csv" +operation_parameters_collection_type["findPetsByTags:::tags"]="csv" +operation_parameters_collection_type["getPetById:::petId"]="" +operation_parameters_collection_type["updatePet:::Pet"]="" +operation_parameters_collection_type["updatePetWithForm:::petId"]="" +operation_parameters_collection_type["updatePetWithForm:::name"]="" +operation_parameters_collection_type["updatePetWithForm:::status"]="" +operation_parameters_collection_type["uploadFile:::petId"]="" +operation_parameters_collection_type["uploadFile:::additionalMetadata"]="" +operation_parameters_collection_type["uploadFile:::file"]="" +operation_parameters_collection_type["uploadFileWithRequiredFile:::petId"]="" +operation_parameters_collection_type["uploadFileWithRequiredFile:::requiredFile"]="" +operation_parameters_collection_type["uploadFileWithRequiredFile:::additionalMetadata"]="" +operation_parameters_collection_type["deleteOrder:::order_id"]="" +operation_parameters_collection_type["getOrderById:::order_id"]="" +operation_parameters_collection_type["placeOrder:::Order"]="" +operation_parameters_collection_type["createUser:::User"]="" +operation_parameters_collection_type["createUsersWithArrayInput:::User"]= +operation_parameters_collection_type["createUsersWithListInput:::User"]= +operation_parameters_collection_type["deleteUser:::username"]="" +operation_parameters_collection_type["getUserByName:::username"]="" +operation_parameters_collection_type["loginUser:::username"]="" +operation_parameters_collection_type["loginUser:::password"]="" +operation_parameters_collection_type["updateUser:::username"]="" +operation_parameters_collection_type["updateUser:::User"]="" + + +## +# Map for body parameters passed after operation as +# PARAMETER==STRING_VALUE or PARAMETER:=NUMERIC_VALUE +# These will be mapped to top level json keys ( { "PARAMETER": "VALUE" }) +declare -A body_parameters + +## +# These arguments will be directly passed to cURL +curl_arguments="" + +## +# The host for making the request +host="" + +## +# The user credentials for basic authentication +basic_auth_credential="" + +## +# The user API key +apikey_auth_credential="" + +## +# If true, the script will only output the actual cURL command that would be +# used +print_curl=false + +## +# The operation ID passed on the command line +operation="" + +## +# The provided Accept header value +header_accept="" + +## +# The provided Content-type header value +header_content_type="" + +## +# If there is any body content on the stdin pass it to the body of the request +body_content_temp_file="" + +## +# If this variable is set to true, the request will be performed even +# if parameters for required query, header or body values are not provided +# (path parameters are still required). +force=false + +## +# Declare some mime types abbreviations for easier content-type and accepts +# headers specification +declare -A mime_type_abbreviations +# text/* +mime_type_abbreviations["text"]="text/plain" +mime_type_abbreviations["html"]="text/html" +mime_type_abbreviations["md"]="text/x-markdown" +mime_type_abbreviations["csv"]="text/csv" +mime_type_abbreviations["css"]="text/css" +mime_type_abbreviations["rtf"]="text/rtf" +# application/* +mime_type_abbreviations["json"]="application/json" +mime_type_abbreviations["xml"]="application/xml" +mime_type_abbreviations["yaml"]="application/yaml" +mime_type_abbreviations["js"]="application/javascript" +mime_type_abbreviations["bin"]="application/octet-stream" +mime_type_abbreviations["rdf"]="application/rdf+xml" +# image/* +mime_type_abbreviations["jpg"]="image/jpeg" +mime_type_abbreviations["png"]="image/png" +mime_type_abbreviations["gif"]="image/gif" +mime_type_abbreviations["bmp"]="image/bmp" +mime_type_abbreviations["tiff"]="image/tiff" + + +############################################################################## +# +# Escape special URL characters +# Based on table at http://www.w3schools.com/tags/ref_urlencode.asp +# +############################################################################## +url_escape() { + local raw_url="$1" + + value=$(sed -e 's/ /%20/g' \ + -e 's/!/%21/g' \ + -e 's/"/%22/g' \ + -e 's/#/%23/g' \ + -e 's/\&/%26/g' \ + -e 's/'\''/%28/g' \ + -e 's/(/%28/g' \ + -e 's/)/%29/g' \ + -e 's/:/%3A/g' \ + -e 's/\t/%09/g' \ + -e 's/?/%3F/g' <<<"$raw_url"); + + echo "$value" +} + +############################################################################## +# +# Lookup the mime type abbreviation in the mime_type_abbreviations array. +# If not present assume the user provided a valid mime type +# +############################################################################## +lookup_mime_type() { + local mime_type="$1" + + if [[ ${mime_type_abbreviations[$mime_type]} ]]; then + echo "${mime_type_abbreviations[$mime_type]}" + else + echo "$mime_type" + fi +} + +############################################################################## +# +# Converts an associative array into a list of cURL header +# arguments (-H "KEY: VALUE") +# +############################################################################## +header_arguments_to_curl() { + local headers_curl="" + local api_key_header="" + local api_key_header_in_cli="" + api_key_header="api_key" + + for key in "${!header_arguments[@]}"; do + headers_curl+="-H \"${key}: ${header_arguments[${key}]}\" " + if [[ "${key}XX" == "${api_key_header}XX" ]]; then + api_key_header_in_cli="YES" + fi + done + # + # If the api_key was not provided in the header, try one from the + # environment variable + # + if [[ -z $api_key_header_in_cli && -n $apikey_auth_credential ]]; then + headers_curl+="-H \"${api_key_header}: ${apikey_auth_credential}\"" + fi + headers_curl+=" " + + echo "${headers_curl}" +} + +############################################################################## +# +# Converts an associative array into a simple JSON with keys as top +# level object attributes +# +# \todo Add conversion of more complex attributes using paths +# +############################################################################## +body_parameters_to_json() { + local body_json="-d '{" + local count=0 + for key in "${!body_parameters[@]}"; do + if [[ $((count++)) -gt 0 ]]; then + body_json+=", " + fi + body_json+="\"${key}\": ${body_parameters[${key}]}" + done + body_json+="}'" + + if [[ "${#body_parameters[@]}" -eq 0 ]]; then + echo "" + else + echo "${body_json}" + fi +} + +############################################################################## +# +# Helper method for showing error because for example echo in +# build_request_path() is evaluated as part of command line not printed on +# output. Anyway better idea for resource clean up ;-). +# +############################################################################## +ERROR_MSG="" +function finish { + if [[ -n "$ERROR_MSG" ]]; then + echo >&2 "${OFF}${RED}$ERROR_MSG" + echo >&2 "${OFF}Check usage: '${script_name} --help'" + fi +} +trap finish EXIT + + +############################################################################## +# +# Validate and build request path including query parameters +# +############################################################################## +build_request_path() { + local path_template=$1 + local -n path_params=$2 + local -n query_params=$3 + + + # + # Check input parameters count against minimum and maximum required + # + if [[ "$force" = false ]]; then + local was_error="" + for qparam in "${query_params[@]}" "${path_params[@]}"; do + local parameter_values + mapfile -t parameter_values < <(sed -e 's/'":::"'/\n/g' <<<"${operation_parameters[$qparam]}") + + # + # Check if the number of provided values is not less than minimum required + # + if [[ ${#parameter_values[@]} -lt ${operation_parameters_minimum_occurrences["${operation}:::${qparam}"]} ]]; then + echo "ERROR: Too few values provided for '${qparam}' parameter." + was_error=true + fi + + # + # Check if the number of provided values is not more than maximum + # + if [[ ${operation_parameters_maximum_occurrences["${operation}:::${qparam}"]} -gt 0 \ + && ${#parameter_values[@]} -gt ${operation_parameters_maximum_occurrences["${operation}:::${qparam}"]} ]]; then + echo "ERROR: Too many values provided for '${qparam}' parameter" + was_error=true + fi + done + if [[ -n "$was_error" ]]; then + exit 1 + fi + fi + + # First replace all path parameters in the path + for pparam in "${path_params[@]}"; do + local path_regex="(.*)(\\{$pparam\\})(.*)" + if [[ $path_template =~ $path_regex ]]; then + path_template=${BASH_REMATCH[1]}${operation_parameters[$pparam]}${BASH_REMATCH[3]} + fi + done + + local query_request_part="" + + for qparam in "${query_params[@]}"; do + if [[ "${operation_parameters[$qparam]}" == "" ]]; then + continue + fi + + # Get the array of parameter values + local parameter_value="" + local parameter_values + mapfile -t parameter_values < <(sed -e 's/'":::"'/\n/g' <<<"${operation_parameters[$qparam]}") + + + if [[ ${qparam} == "api_key_query" ]]; then + if [[ -n "${parameter_values[*]}" ]]; then + parameter_value+="${qparam}=${parameter_values}" + else + echo "Missing ApiKey!!! You have to provide on command line option 'api_key_query=...'" + exit 1 + fi + continue + fi + + # + # Append parameters without specific cardinality + # + local collection_type="${operation_parameters_collection_type["${operation}:::${qparam}"]}" + if [[ "${collection_type}" == "" ]]; then + local vcount=0 + for qvalue in "${parameter_values[@]}"; do + if [[ $((vcount++)) -gt 0 ]]; then + parameter_value+="&" + fi + parameter_value+="${qparam}=${qvalue}" + done + # + # Append parameters specified as 'mutli' collections i.e. param=value1¶m=value2&... + # + elif [[ "${collection_type}" == "multi" ]]; then + local vcount=0 + for qvalue in "${parameter_values[@]}"; do + if [[ $((vcount++)) -gt 0 ]]; then + parameter_value+="&" + fi + parameter_value+="${qparam}=${qvalue}" + done + # + # Append parameters specified as 'csv' collections i.e. param=value1,value2,... + # + elif [[ "${collection_type}" == "csv" ]]; then + parameter_value+="${qparam}=" + local vcount=0 + for qvalue in "${parameter_values[@]}"; do + if [[ $((vcount++)) -gt 0 ]]; then + parameter_value+="," + fi + parameter_value+="${qvalue}" + done + # + # Append parameters specified as 'ssv' collections i.e. param="value1 value2 ..." + # + elif [[ "${collection_type}" == "ssv" ]]; then + parameter_value+="${qparam}=" + local vcount=0 + for qvalue in "${parameter_values[@]}"; do + if [[ $((vcount++)) -gt 0 ]]; then + parameter_value+=" " + fi + parameter_value+="${qvalue}" + done + # + # Append parameters specified as 'tsv' collections i.e. param="value1\tvalue2\t..." + # + elif [[ "${collection_type}" == "tsv" ]]; then + parameter_value+="${qparam}=" + local vcount=0 + for qvalue in "${parameter_values[@]}"; do + if [[ $((vcount++)) -gt 0 ]]; then + parameter_value+="\\t" + fi + parameter_value+="${qvalue}" + done + else + echo "Unsupported collection format \"${collection_type}\"" + exit 1 + fi + + if [[ -n "${parameter_value}" ]]; then + if [[ -n "${query_request_part}" ]]; then + query_request_part+="&" + fi + query_request_part+="${parameter_value}" + fi + + done + + + # Now append query parameters - if any + if [[ -n "${query_request_part}" ]]; then + path_template+="?${query_request_part}" + fi + + echo "$path_template" +} + + + +############################################################################### +# +# Print main help message +# +############################################################################### +print_help() { +cat <${OFF}] + [-ac|--accept ${GREEN}${OFF}] [-ct,--content-type ${GREEN}${OFF}] + [--host ${CYAN}${OFF}] [--dry-run] [-nc|--no-colors] ${YELLOW}${OFF} [-h|--help] + [${BLUE}${OFF}] [${MAGENTA}${OFF}] [${MAGENTA}${OFF}] + + - ${CYAN}${OFF} - endpoint of the REST service without basepath + + - ${RED}${OFF} - any valid cURL options can be passed before ${YELLOW}${OFF} + - ${GREEN}${OFF} - either full mime-type or one of supported abbreviations: + (text, html, md, csv, css, rtf, json, xml, yaml, js, bin, + rdf, jpg, png, gif, bmp, tiff) + - ${BLUE}${OFF} - HTTP headers can be passed in the form ${YELLOW}HEADER${OFF}:${BLUE}VALUE${OFF} + - ${MAGENTA}${OFF} - REST operation parameters can be passed in the following + forms: + * ${YELLOW}KEY${OFF}=${BLUE}VALUE${OFF} - path or query parameters + - ${MAGENTA}${OFF} - simple JSON body content (first level only) can be build + using the following arguments: + * ${YELLOW}KEY${OFF}==${BLUE}VALUE${OFF} - body parameters which will be added to body + JSON as '{ ..., "${YELLOW}KEY${OFF}": "${BLUE}VALUE${OFF}", ... }' + * ${YELLOW}KEY${OFF}:=${BLUE}VALUE${OFF} - body parameters which will be added to body + JSON as '{ ..., "${YELLOW}KEY${OFF}": ${BLUE}VALUE${OFF}, ... }' + +EOF + echo -e "${BOLD}${WHITE}Authentication methods${OFF}" + echo -e "" + echo -e " - ${BLUE}Api-key${OFF} - add '${RED}api_key:${OFF}' after ${YELLOW}${OFF}" + + echo -e " - ${BLUE}Api-key${OFF} - add '${RED}api_key_query=${OFF}' after ${YELLOW}${OFF}" + + echo -e " - ${BLUE}Basic AUTH${OFF} - add '-u :' before ${YELLOW}${OFF}" + + echo -e " - ${BLUE}Basic AUTH${OFF} - add '-u :' before ${YELLOW}${OFF}" + + echo -e " - ${MAGENTA}OAuth2 (flow: implicit)${OFF}" + echo -e " Authorization URL: " + echo -e " * http://petstore.swagger.io/api/oauth/dialog" + echo -e " Scopes:" + echo -e " * write:pets - modify pets in your account" + echo -e " * read:pets - read your pets" + echo "" + echo -e "${BOLD}${WHITE}Operations (grouped by tags)${OFF}" + echo "" + echo -e "${BOLD}${WHITE}[anotherFake]${OFF}" +read -r -d '' ops <${OFF}\\t\\t\\t\\tSpecify the host URL " +echo -e " \\t\\t\\t\\t(e.g. 'https://petstore.swagger.io')" + + echo -e " --force\\t\\t\\t\\tForce command invocation in spite of missing" + echo -e " \\t\\t\\t\\trequired parameters or wrong content type" + echo -e " --dry-run\\t\\t\\t\\tPrint out the cURL command without" + echo -e " \\t\\t\\t\\texecuting it" + echo -e " -nc,--no-colors\\t\\t\\tEnforce print without colors, otherwise autodected" + echo -e " -ac,--accept ${YELLOW}${OFF}\\t\\tSet the 'Accept' header in the request" + echo -e " -ct,--content-type ${YELLOW}${OFF}\\tSet the 'Content-type' header in " + echo -e " \\tthe request" + echo "" +} + + +############################################################################## +# +# Print REST service description +# +############################################################################## +print_about() { + echo "" + echo -e "${BOLD}${WHITE}OpenAPI Petstore command line client (API version 1.0.0)${OFF}" + echo "" + echo -e "License: Apache-2.0" + echo -e "Contact: " + echo "" +read -r -d '' appdescription < 10. Other values will generated exceptions" | paste -sd' ' | fold -sw 80 + echo -e "" + echo -e "${BOLD}${WHITE}Parameters${OFF}" + echo -e " * ${GREEN}order_id${OFF} ${BLUE}[integer]${OFF} ${RED}(required)${OFF} ${CYAN}(default: null)${OFF} - ID of pet that needs to be fetched ${YELLOW}Specify as: order_id=value${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo "" + echo -e "${BOLD}${WHITE}Responses${OFF}" + code=200 + echo -e "${result_color_table[${code:0:1}]} 200;successful operation${OFF}" | paste -sd' ' | column -t -s ';' | fold -sw 80 | sed '2,$s/^/ /' + code=400 + echo -e "${result_color_table[${code:0:1}]} 400;Invalid ID supplied${OFF}" | paste -sd' ' | column -t -s ';' | fold -sw 80 | sed '2,$s/^/ /' + code=404 + echo -e "${result_color_table[${code:0:1}]} 404;Order not found${OFF}" | paste -sd' ' | column -t -s ';' | fold -sw 80 | sed '2,$s/^/ /' +} +############################################################################## +# +# Print help for placeOrder operation +# +############################################################################## +print_placeOrder_help() { + echo "" + echo -e "${BOLD}${WHITE}placeOrder - Place an order for a pet${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e "" + echo -e "${BOLD}${WHITE}Parameters${OFF}" + echo -e " * ${GREEN}body${OFF} ${BLUE}[application/json]${OFF} ${RED}(required)${OFF}${OFF} - order placed for purchasing the pet" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e "" + echo "" + echo -e "${BOLD}${WHITE}Responses${OFF}" + code=200 + echo -e "${result_color_table[${code:0:1}]} 200;successful operation${OFF}" | paste -sd' ' | column -t -s ';' | fold -sw 80 | sed '2,$s/^/ /' + code=400 + echo -e "${result_color_table[${code:0:1}]} 400;Invalid Order${OFF}" | paste -sd' ' | column -t -s ';' | fold -sw 80 | sed '2,$s/^/ /' +} +############################################################################## +# +# Print help for createUser operation +# +############################################################################## +print_createUser_help() { + echo "" + echo -e "${BOLD}${WHITE}createUser - Create user${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e "" + echo -e "This can only be done by the logged in user." | paste -sd' ' | fold -sw 80 + echo -e "" + echo -e "${BOLD}${WHITE}Parameters${OFF}" + echo -e " * ${GREEN}body${OFF} ${BLUE}[application/json]${OFF} ${RED}(required)${OFF}${OFF} - Created user object" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e "" + echo "" + echo -e "${BOLD}${WHITE}Responses${OFF}" + code=0 + echo -e "${result_color_table[${code:0:1}]} 0;successful operation${OFF}" | paste -sd' ' | column -t -s ';' | fold -sw 80 | sed '2,$s/^/ /' +} +############################################################################## +# +# Print help for createUsersWithArrayInput operation +# +############################################################################## +print_createUsersWithArrayInput_help() { + echo "" + echo -e "${BOLD}${WHITE}createUsersWithArrayInput - Creates list of users with given input array${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e "" + echo -e "${BOLD}${WHITE}Parameters${OFF}" + echo -e " * ${GREEN}body${OFF} ${BLUE}[application/json]${OFF} ${RED}(required)${OFF}${OFF} - List of user object" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e "" + echo "" + echo -e "${BOLD}${WHITE}Responses${OFF}" + code=0 + echo -e "${result_color_table[${code:0:1}]} 0;successful operation${OFF}" | paste -sd' ' | column -t -s ';' | fold -sw 80 | sed '2,$s/^/ /' +} +############################################################################## +# +# Print help for createUsersWithListInput operation +# +############################################################################## +print_createUsersWithListInput_help() { + echo "" + echo -e "${BOLD}${WHITE}createUsersWithListInput - Creates list of users with given input array${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e "" + echo -e "${BOLD}${WHITE}Parameters${OFF}" + echo -e " * ${GREEN}body${OFF} ${BLUE}[application/json]${OFF} ${RED}(required)${OFF}${OFF} - List of user object" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e "" + echo "" + echo -e "${BOLD}${WHITE}Responses${OFF}" + code=0 + echo -e "${result_color_table[${code:0:1}]} 0;successful operation${OFF}" | paste -sd' ' | column -t -s ';' | fold -sw 80 | sed '2,$s/^/ /' +} +############################################################################## +# +# Print help for deleteUser operation +# +############################################################################## +print_deleteUser_help() { + echo "" + echo -e "${BOLD}${WHITE}deleteUser - Delete user${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e "" + echo -e "This can only be done by the logged in user." | paste -sd' ' | fold -sw 80 + echo -e "" + echo -e "${BOLD}${WHITE}Parameters${OFF}" + echo -e " * ${GREEN}username${OFF} ${BLUE}[string]${OFF} ${RED}(required)${OFF} ${CYAN}(default: null)${OFF} - The name that needs to be deleted ${YELLOW}Specify as: username=value${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo "" + echo -e "${BOLD}${WHITE}Responses${OFF}" + code=400 + echo -e "${result_color_table[${code:0:1}]} 400;Invalid username supplied${OFF}" | paste -sd' ' | column -t -s ';' | fold -sw 80 | sed '2,$s/^/ /' + code=404 + echo -e "${result_color_table[${code:0:1}]} 404;User not found${OFF}" | paste -sd' ' | column -t -s ';' | fold -sw 80 | sed '2,$s/^/ /' +} +############################################################################## +# +# Print help for getUserByName operation +# +############################################################################## +print_getUserByName_help() { + echo "" + echo -e "${BOLD}${WHITE}getUserByName - Get user by user name${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e "" + echo -e "${BOLD}${WHITE}Parameters${OFF}" + echo -e " * ${GREEN}username${OFF} ${BLUE}[string]${OFF} ${RED}(required)${OFF} ${CYAN}(default: null)${OFF} - The name that needs to be fetched. Use user1 for testing. ${YELLOW}Specify as: username=value${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo "" + echo -e "${BOLD}${WHITE}Responses${OFF}" + code=200 + echo -e "${result_color_table[${code:0:1}]} 200;successful operation${OFF}" | paste -sd' ' | column -t -s ';' | fold -sw 80 | sed '2,$s/^/ /' + code=400 + echo -e "${result_color_table[${code:0:1}]} 400;Invalid username supplied${OFF}" | paste -sd' ' | column -t -s ';' | fold -sw 80 | sed '2,$s/^/ /' + code=404 + echo -e "${result_color_table[${code:0:1}]} 404;User not found${OFF}" | paste -sd' ' | column -t -s ';' | fold -sw 80 | sed '2,$s/^/ /' +} +############################################################################## +# +# Print help for loginUser operation +# +############################################################################## +print_loginUser_help() { + echo "" + echo -e "${BOLD}${WHITE}loginUser - Logs user into the system${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e "" + echo -e "${BOLD}${WHITE}Parameters${OFF}" + echo -e " * ${GREEN}username${OFF} ${BLUE}[string]${OFF} ${RED}(required)${OFF} ${CYAN}(default: null)${OFF} - The user name for login${YELLOW} Specify as: username=value${OFF}" \ + | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e " * ${GREEN}password${OFF} ${BLUE}[string]${OFF} ${RED}(required)${OFF} ${CYAN}(default: null)${OFF} - The password for login in clear text${YELLOW} Specify as: password=value${OFF}" \ + | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo "" + echo -e "${BOLD}${WHITE}Responses${OFF}" + code=200 + echo -e "${result_color_table[${code:0:1}]} 200;successful operation${OFF}" | paste -sd' ' | column -t -s ';' | fold -sw 80 | sed '2,$s/^/ /' + echo -e " ${BOLD}${WHITE}Response headers${OFF}" + echo -e " ${BLUE}X-Rate-Limit${OFF} - calls per hour allowed by the user" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e " ${BLUE}X-Expires-After${OFF} - date in UTC when token expires" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + code=400 + echo -e "${result_color_table[${code:0:1}]} 400;Invalid username/password supplied${OFF}" | paste -sd' ' | column -t -s ';' | fold -sw 80 | sed '2,$s/^/ /' +} +############################################################################## +# +# Print help for logoutUser operation +# +############################################################################## +print_logoutUser_help() { + echo "" + echo -e "${BOLD}${WHITE}logoutUser - Logs out current logged in user session${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e "" + echo "" + echo -e "${BOLD}${WHITE}Responses${OFF}" + code=0 + echo -e "${result_color_table[${code:0:1}]} 0;successful operation${OFF}" | paste -sd' ' | column -t -s ';' | fold -sw 80 | sed '2,$s/^/ /' +} +############################################################################## +# +# Print help for updateUser operation +# +############################################################################## +print_updateUser_help() { + echo "" + echo -e "${BOLD}${WHITE}updateUser - Updated user${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e "" + echo -e "This can only be done by the logged in user." | paste -sd' ' | fold -sw 80 + echo -e "" + echo -e "${BOLD}${WHITE}Parameters${OFF}" + echo -e " * ${GREEN}username${OFF} ${BLUE}[string]${OFF} ${RED}(required)${OFF} ${CYAN}(default: null)${OFF} - name that need to be deleted ${YELLOW}Specify as: username=value${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e " * ${GREEN}body${OFF} ${BLUE}[application/json]${OFF} ${RED}(required)${OFF}${OFF} - Updated user object" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e "" + echo "" + echo -e "${BOLD}${WHITE}Responses${OFF}" + code=400 + echo -e "${result_color_table[${code:0:1}]} 400;Invalid user supplied${OFF}" | paste -sd' ' | column -t -s ';' | fold -sw 80 | sed '2,$s/^/ /' + code=404 + echo -e "${result_color_table[${code:0:1}]} 404;User not found${OFF}" | paste -sd' ' | column -t -s ';' | fold -sw 80 | sed '2,$s/^/ /' +} + + +############################################################################## +# +# Call 123Test@$%SpecialTags operation +# +############################################################################## +call_123Test@$%SpecialTags() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/another-fake/dummy" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="PATCH" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + local body_json_curl="" + + # + # Check if the user provided 'Content-type' headers in the + # command line. If not try to set them based on the OpenAPI specification + # if values produces and consumes are defined unambigously + # + if [[ -z $header_content_type ]]; then + header_content_type="application/json" + fi + + + if [[ -z $header_content_type && "$force" = false ]]; then + : + echo "ERROR: Request's content-type not specified!!!" + echo "This operation expects content-type in one of the following formats:" + echo -e "\\t- application/json" + echo "" + echo "Use '--content-type' to set proper content type" + exit 1 + else + headers_curl="${headers_curl} -H 'Content-type: ${header_content_type}'" + fi + + + # + # If we have received some body content over pipe, pass it from the + # temporary file to cURL + # + if [[ -n $body_content_temp_file ]]; then + if [[ "$print_curl" = true ]]; then + echo "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + else + eval "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + fi + rm "${body_content_temp_file}" + # + # If not, try to build the content body from arguments KEY==VALUE and KEY:=VALUE + # + else + body_json_curl=$(body_parameters_to_json) + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + fi + fi +} + +############################################################################## +# +# Call fooGet operation +# +############################################################################## +call_fooGet() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/foo" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="GET" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + +############################################################################## +# +# Call fakeHealthGet operation +# +############################################################################## +call_fakeHealthGet() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/fake/health" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="GET" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + +############################################################################## +# +# Call fakeOuterBooleanSerialize operation +# +############################################################################## +call_fakeOuterBooleanSerialize() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/fake/outer/boolean" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="POST" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + local body_json_curl="" + + # + # Check if the user provided 'Content-type' headers in the + # command line. If not try to set them based on the OpenAPI specification + # if values produces and consumes are defined unambigously + # + if [[ -z $header_content_type ]]; then + header_content_type="application/json" + fi + + + if [[ -z $header_content_type && "$force" = false ]]; then + : + echo "ERROR: Request's content-type not specified!!!" + echo "This operation expects content-type in one of the following formats:" + echo -e "\\t- application/json" + echo "" + echo "Use '--content-type' to set proper content type" + exit 1 + else + headers_curl="${headers_curl} -H 'Content-type: ${header_content_type}'" + fi + + + # + # If we have received some body content over pipe, pass it from the + # temporary file to cURL + # + if [[ -n $body_content_temp_file ]]; then + if [[ "$print_curl" = true ]]; then + echo "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + else + eval "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + fi + rm "${body_content_temp_file}" + # + # If not, try to build the content body from arguments KEY==VALUE and KEY:=VALUE + # + else + body_json_curl=$(body_parameters_to_json) + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + fi + fi +} + +############################################################################## +# +# Call fakeOuterCompositeSerialize operation +# +############################################################################## +call_fakeOuterCompositeSerialize() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/fake/outer/composite" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="POST" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + local body_json_curl="" + + # + # Check if the user provided 'Content-type' headers in the + # command line. If not try to set them based on the OpenAPI specification + # if values produces and consumes are defined unambigously + # + if [[ -z $header_content_type ]]; then + header_content_type="application/json" + fi + + + if [[ -z $header_content_type && "$force" = false ]]; then + : + echo "ERROR: Request's content-type not specified!!!" + echo "This operation expects content-type in one of the following formats:" + echo -e "\\t- application/json" + echo "" + echo "Use '--content-type' to set proper content type" + exit 1 + else + headers_curl="${headers_curl} -H 'Content-type: ${header_content_type}'" + fi + + + # + # If we have received some body content over pipe, pass it from the + # temporary file to cURL + # + if [[ -n $body_content_temp_file ]]; then + if [[ "$print_curl" = true ]]; then + echo "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + else + eval "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + fi + rm "${body_content_temp_file}" + # + # If not, try to build the content body from arguments KEY==VALUE and KEY:=VALUE + # + else + body_json_curl=$(body_parameters_to_json) + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + fi + fi +} + +############################################################################## +# +# Call fakeOuterNumberSerialize operation +# +############################################################################## +call_fakeOuterNumberSerialize() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/fake/outer/number" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="POST" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + local body_json_curl="" + + # + # Check if the user provided 'Content-type' headers in the + # command line. If not try to set them based on the OpenAPI specification + # if values produces and consumes are defined unambigously + # + if [[ -z $header_content_type ]]; then + header_content_type="application/json" + fi + + + if [[ -z $header_content_type && "$force" = false ]]; then + : + echo "ERROR: Request's content-type not specified!!!" + echo "This operation expects content-type in one of the following formats:" + echo -e "\\t- application/json" + echo "" + echo "Use '--content-type' to set proper content type" + exit 1 + else + headers_curl="${headers_curl} -H 'Content-type: ${header_content_type}'" + fi + + + # + # If we have received some body content over pipe, pass it from the + # temporary file to cURL + # + if [[ -n $body_content_temp_file ]]; then + if [[ "$print_curl" = true ]]; then + echo "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + else + eval "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + fi + rm "${body_content_temp_file}" + # + # If not, try to build the content body from arguments KEY==VALUE and KEY:=VALUE + # + else + body_json_curl=$(body_parameters_to_json) + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + fi + fi +} + +############################################################################## +# +# Call fakeOuterStringSerialize operation +# +############################################################################## +call_fakeOuterStringSerialize() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/fake/outer/string" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="POST" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + local body_json_curl="" + + # + # Check if the user provided 'Content-type' headers in the + # command line. If not try to set them based on the OpenAPI specification + # if values produces and consumes are defined unambigously + # + if [[ -z $header_content_type ]]; then + header_content_type="application/json" + fi + + + if [[ -z $header_content_type && "$force" = false ]]; then + : + echo "ERROR: Request's content-type not specified!!!" + echo "This operation expects content-type in one of the following formats:" + echo -e "\\t- application/json" + echo "" + echo "Use '--content-type' to set proper content type" + exit 1 + else + headers_curl="${headers_curl} -H 'Content-type: ${header_content_type}'" + fi + + + # + # If we have received some body content over pipe, pass it from the + # temporary file to cURL + # + if [[ -n $body_content_temp_file ]]; then + if [[ "$print_curl" = true ]]; then + echo "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + else + eval "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + fi + rm "${body_content_temp_file}" + # + # If not, try to build the content body from arguments KEY==VALUE and KEY:=VALUE + # + else + body_json_curl=$(body_parameters_to_json) + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + fi + fi +} + +############################################################################## +# +# Call testBodyWithFileSchema operation +# +############################################################################## +call_testBodyWithFileSchema() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/fake/body-with-file-schema" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="PUT" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + local body_json_curl="" + + # + # Check if the user provided 'Content-type' headers in the + # command line. If not try to set them based on the OpenAPI specification + # if values produces and consumes are defined unambigously + # + if [[ -z $header_content_type ]]; then + header_content_type="application/json" + fi + + + if [[ -z $header_content_type && "$force" = false ]]; then + : + echo "ERROR: Request's content-type not specified!!!" + echo "This operation expects content-type in one of the following formats:" + echo -e "\\t- application/json" + echo "" + echo "Use '--content-type' to set proper content type" + exit 1 + else + headers_curl="${headers_curl} -H 'Content-type: ${header_content_type}'" + fi + + + # + # If we have received some body content over pipe, pass it from the + # temporary file to cURL + # + if [[ -n $body_content_temp_file ]]; then + if [[ "$print_curl" = true ]]; then + echo "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + else + eval "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + fi + rm "${body_content_temp_file}" + # + # If not, try to build the content body from arguments KEY==VALUE and KEY:=VALUE + # + else + body_json_curl=$(body_parameters_to_json) + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + fi + fi +} + +############################################################################## +# +# Call testBodyWithQueryParams operation +# +############################################################################## +call_testBodyWithQueryParams() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=(query) + local path + + if ! path=$(build_request_path "/v2/fake/body-with-query-params" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="PUT" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + local body_json_curl="" + + # + # Check if the user provided 'Content-type' headers in the + # command line. If not try to set them based on the OpenAPI specification + # if values produces and consumes are defined unambigously + # + if [[ -z $header_content_type ]]; then + header_content_type="application/json" + fi + + + if [[ -z $header_content_type && "$force" = false ]]; then + : + echo "ERROR: Request's content-type not specified!!!" + echo "This operation expects content-type in one of the following formats:" + echo -e "\\t- application/json" + echo "" + echo "Use '--content-type' to set proper content type" + exit 1 + else + headers_curl="${headers_curl} -H 'Content-type: ${header_content_type}'" + fi + + + # + # If we have received some body content over pipe, pass it from the + # temporary file to cURL + # + if [[ -n $body_content_temp_file ]]; then + if [[ "$print_curl" = true ]]; then + echo "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + else + eval "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + fi + rm "${body_content_temp_file}" + # + # If not, try to build the content body from arguments KEY==VALUE and KEY:=VALUE + # + else + body_json_curl=$(body_parameters_to_json) + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + fi + fi +} + +############################################################################## +# +# Call testClientModel operation +# +############################################################################## +call_testClientModel() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/fake" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="PATCH" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + local body_json_curl="" + + # + # Check if the user provided 'Content-type' headers in the + # command line. If not try to set them based on the OpenAPI specification + # if values produces and consumes are defined unambigously + # + if [[ -z $header_content_type ]]; then + header_content_type="application/json" + fi + + + if [[ -z $header_content_type && "$force" = false ]]; then + : + echo "ERROR: Request's content-type not specified!!!" + echo "This operation expects content-type in one of the following formats:" + echo -e "\\t- application/json" + echo "" + echo "Use '--content-type' to set proper content type" + exit 1 + else + headers_curl="${headers_curl} -H 'Content-type: ${header_content_type}'" + fi + + + # + # If we have received some body content over pipe, pass it from the + # temporary file to cURL + # + if [[ -n $body_content_temp_file ]]; then + if [[ "$print_curl" = true ]]; then + echo "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + else + eval "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + fi + rm "${body_content_temp_file}" + # + # If not, try to build the content body from arguments KEY==VALUE and KEY:=VALUE + # + else + body_json_curl=$(body_parameters_to_json) + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + fi + fi +} + +############################################################################## +# +# Call testEndpointParameters operation +# +############################################################################## +call_testEndpointParameters() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=( ) + local path + + if ! path=$(build_request_path "/v2/fake" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="POST" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + +############################################################################## +# +# Call testEnumParameters operation +# +############################################################################## +call_testEnumParameters() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=(enum_query_string_array enum_query_string enum_query_integer enum_query_double) + local path + + if ! path=$(build_request_path "/v2/fake" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="GET" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + +############################################################################## +# +# Call testGroupParameters operation +# +############################################################################## +call_testGroupParameters() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=(required_string_group required_int64_group string_group int64_group ) + local path + + if ! path=$(build_request_path "/v2/fake" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="DELETE" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + +############################################################################## +# +# Call testInlineAdditionalProperties operation +# +############################################################################## +call_testInlineAdditionalProperties() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/fake/inline-additionalProperties" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="POST" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + local body_json_curl="" + + # + # Check if the user provided 'Content-type' headers in the + # command line. If not try to set them based on the OpenAPI specification + # if values produces and consumes are defined unambigously + # + if [[ -z $header_content_type ]]; then + header_content_type="application/json" + fi + + + if [[ -z $header_content_type && "$force" = false ]]; then + : + echo "ERROR: Request's content-type not specified!!!" + echo "This operation expects content-type in one of the following formats:" + echo -e "\\t- application/json" + echo "" + echo "Use '--content-type' to set proper content type" + exit 1 + else + headers_curl="${headers_curl} -H 'Content-type: ${header_content_type}'" + fi + + + # + # If we have received some body content over pipe, pass it from the + # temporary file to cURL + # + if [[ -n $body_content_temp_file ]]; then + if [[ "$print_curl" = true ]]; then + echo "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + else + eval "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + fi + rm "${body_content_temp_file}" + # + # If not, try to build the content body from arguments KEY==VALUE and KEY:=VALUE + # + else + body_json_curl=$(body_parameters_to_json) + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + fi + fi +} + +############################################################################## +# +# Call testJsonFormData operation +# +############################################################################## +call_testJsonFormData() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/fake/jsonFormData" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="GET" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + +############################################################################## +# +# Call testClassname operation +# +############################################################################## +call_testClassname() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=( api_key_query ) + local path + + if ! path=$(build_request_path "/v2/fake_classname_test" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="PATCH" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + local body_json_curl="" + + # + # Check if the user provided 'Content-type' headers in the + # command line. If not try to set them based on the OpenAPI specification + # if values produces and consumes are defined unambigously + # + if [[ -z $header_content_type ]]; then + header_content_type="application/json" + fi + + + if [[ -z $header_content_type && "$force" = false ]]; then + : + echo "ERROR: Request's content-type not specified!!!" + echo "This operation expects content-type in one of the following formats:" + echo -e "\\t- application/json" + echo "" + echo "Use '--content-type' to set proper content type" + exit 1 + else + headers_curl="${headers_curl} -H 'Content-type: ${header_content_type}'" + fi + + + # + # If we have received some body content over pipe, pass it from the + # temporary file to cURL + # + if [[ -n $body_content_temp_file ]]; then + if [[ "$print_curl" = true ]]; then + echo "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + else + eval "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + fi + rm "${body_content_temp_file}" + # + # If not, try to build the content body from arguments KEY==VALUE and KEY:=VALUE + # + else + body_json_curl=$(body_parameters_to_json) + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + fi + fi +} + +############################################################################## +# +# Call addPet operation +# +############################################################################## +call_addPet() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=( ) + local path + + if ! path=$(build_request_path "/v2/pet" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="POST" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + local body_json_curl="" + + # + # Check if the user provided 'Content-type' headers in the + # command line. If not try to set them based on the OpenAPI specification + # if values produces and consumes are defined unambigously + # + + + if [[ -z $header_content_type && "$force" = false ]]; then + : + echo "ERROR: Request's content-type not specified!!!" + echo "This operation expects content-type in one of the following formats:" + echo -e "\\t- application/json" + echo -e "\\t- application/xml" + echo "" + echo "Use '--content-type' to set proper content type" + exit 1 + else + headers_curl="${headers_curl} -H 'Content-type: ${header_content_type}'" + fi + + + # + # If we have received some body content over pipe, pass it from the + # temporary file to cURL + # + if [[ -n $body_content_temp_file ]]; then + if [[ "$print_curl" = true ]]; then + echo "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + else + eval "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + fi + rm "${body_content_temp_file}" + # + # If not, try to build the content body from arguments KEY==VALUE and KEY:=VALUE + # + else + body_json_curl=$(body_parameters_to_json) + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + fi + fi +} + +############################################################################## +# +# Call deletePet operation +# +############################################################################## +call_deletePet() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=(petId) + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=( ) + local path + + if ! path=$(build_request_path "/v2/pet/{petId}" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="DELETE" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + +############################################################################## +# +# Call findPetsByStatus operation +# +############################################################################## +call_findPetsByStatus() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=(status ) + local path + + if ! path=$(build_request_path "/v2/pet/findByStatus" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="GET" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + +############################################################################## +# +# Call findPetsByTags operation +# +############################################################################## +call_findPetsByTags() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=(tags ) + local path + + if ! path=$(build_request_path "/v2/pet/findByTags" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="GET" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + +############################################################################## +# +# Call getPetById operation +# +############################################################################## +call_getPetById() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=(petId) + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=( ) + local path + + if ! path=$(build_request_path "/v2/pet/{petId}" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="GET" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + +############################################################################## +# +# Call updatePet operation +# +############################################################################## +call_updatePet() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=( ) + local path + + if ! path=$(build_request_path "/v2/pet" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="PUT" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + local body_json_curl="" + + # + # Check if the user provided 'Content-type' headers in the + # command line. If not try to set them based on the OpenAPI specification + # if values produces and consumes are defined unambigously + # + + + if [[ -z $header_content_type && "$force" = false ]]; then + : + echo "ERROR: Request's content-type not specified!!!" + echo "This operation expects content-type in one of the following formats:" + echo -e "\\t- application/json" + echo -e "\\t- application/xml" + echo "" + echo "Use '--content-type' to set proper content type" + exit 1 + else + headers_curl="${headers_curl} -H 'Content-type: ${header_content_type}'" + fi + + + # + # If we have received some body content over pipe, pass it from the + # temporary file to cURL + # + if [[ -n $body_content_temp_file ]]; then + if [[ "$print_curl" = true ]]; then + echo "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + else + eval "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + fi + rm "${body_content_temp_file}" + # + # If not, try to build the content body from arguments KEY==VALUE and KEY:=VALUE + # + else + body_json_curl=$(body_parameters_to_json) + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + fi + fi +} + +############################################################################## +# +# Call updatePetWithForm operation +# +############################################################################## +call_updatePetWithForm() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=(petId) + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=( ) + local path + + if ! path=$(build_request_path "/v2/pet/{petId}" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="POST" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + +############################################################################## +# +# Call uploadFile operation +# +############################################################################## +call_uploadFile() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=(petId) + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=( ) + local path + + if ! path=$(build_request_path "/v2/pet/{petId}/uploadImage" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="POST" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + +############################################################################## +# +# Call uploadFileWithRequiredFile operation +# +############################################################################## +call_uploadFileWithRequiredFile() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=(petId) + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=( ) + local path + + if ! path=$(build_request_path "/v2/fake/{petId}/uploadImageWithRequiredFile" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="POST" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + +############################################################################## +# +# Call deleteOrder operation +# +############################################################################## +call_deleteOrder() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=(order_id) + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/store/order/{order_id}" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="DELETE" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + +############################################################################## +# +# Call getInventory operation +# +############################################################################## +call_getInventory() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=( ) + local path + + if ! path=$(build_request_path "/v2/store/inventory" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="GET" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + +############################################################################## +# +# Call getOrderById operation +# +############################################################################## +call_getOrderById() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=(order_id) + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/store/order/{order_id}" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="GET" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + +############################################################################## +# +# Call placeOrder operation +# +############################################################################## +call_placeOrder() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/store/order" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="POST" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + local body_json_curl="" + + # + # Check if the user provided 'Content-type' headers in the + # command line. If not try to set them based on the OpenAPI specification + # if values produces and consumes are defined unambigously + # + if [[ -z $header_content_type ]]; then + header_content_type="application/json" + fi + + + if [[ -z $header_content_type && "$force" = false ]]; then + : + echo "ERROR: Request's content-type not specified!!!" + echo "This operation expects content-type in one of the following formats:" + echo -e "\\t- application/json" + echo "" + echo "Use '--content-type' to set proper content type" + exit 1 + else + headers_curl="${headers_curl} -H 'Content-type: ${header_content_type}'" + fi + + + # + # If we have received some body content over pipe, pass it from the + # temporary file to cURL + # + if [[ -n $body_content_temp_file ]]; then + if [[ "$print_curl" = true ]]; then + echo "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + else + eval "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + fi + rm "${body_content_temp_file}" + # + # If not, try to build the content body from arguments KEY==VALUE and KEY:=VALUE + # + else + body_json_curl=$(body_parameters_to_json) + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + fi + fi +} + +############################################################################## +# +# Call createUser operation +# +############################################################################## +call_createUser() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/user" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="POST" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + local body_json_curl="" + + # + # Check if the user provided 'Content-type' headers in the + # command line. If not try to set them based on the OpenAPI specification + # if values produces and consumes are defined unambigously + # + if [[ -z $header_content_type ]]; then + header_content_type="application/json" + fi + + + if [[ -z $header_content_type && "$force" = false ]]; then + : + echo "ERROR: Request's content-type not specified!!!" + echo "This operation expects content-type in one of the following formats:" + echo -e "\\t- application/json" + echo "" + echo "Use '--content-type' to set proper content type" + exit 1 + else + headers_curl="${headers_curl} -H 'Content-type: ${header_content_type}'" + fi + + + # + # If we have received some body content over pipe, pass it from the + # temporary file to cURL + # + if [[ -n $body_content_temp_file ]]; then + if [[ "$print_curl" = true ]]; then + echo "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + else + eval "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + fi + rm "${body_content_temp_file}" + # + # If not, try to build the content body from arguments KEY==VALUE and KEY:=VALUE + # + else + body_json_curl=$(body_parameters_to_json) + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + fi + fi +} + +############################################################################## +# +# Call createUsersWithArrayInput operation +# +############################################################################## +call_createUsersWithArrayInput() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/user/createWithArray" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="POST" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + local body_json_curl="" + + # + # Check if the user provided 'Content-type' headers in the + # command line. If not try to set them based on the OpenAPI specification + # if values produces and consumes are defined unambigously + # + if [[ -z $header_content_type ]]; then + header_content_type="application/json" + fi + + + if [[ -z $header_content_type && "$force" = false ]]; then + : + echo "ERROR: Request's content-type not specified!!!" + echo "This operation expects content-type in one of the following formats:" + echo -e "\\t- application/json" + echo "" + echo "Use '--content-type' to set proper content type" + exit 1 + else + headers_curl="${headers_curl} -H 'Content-type: ${header_content_type}'" + fi + + + # + # If we have received some body content over pipe, pass it from the + # temporary file to cURL + # + if [[ -n $body_content_temp_file ]]; then + if [[ "$print_curl" = true ]]; then + echo "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + else + eval "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + fi + rm "${body_content_temp_file}" + # + # If not, try to build the content body from arguments KEY==VALUE and KEY:=VALUE + # + else + body_json_curl=$(body_parameters_to_json) + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + fi + fi +} + +############################################################################## +# +# Call createUsersWithListInput operation +# +############################################################################## +call_createUsersWithListInput() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/user/createWithList" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="POST" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + local body_json_curl="" + + # + # Check if the user provided 'Content-type' headers in the + # command line. If not try to set them based on the OpenAPI specification + # if values produces and consumes are defined unambigously + # + if [[ -z $header_content_type ]]; then + header_content_type="application/json" + fi + + + if [[ -z $header_content_type && "$force" = false ]]; then + : + echo "ERROR: Request's content-type not specified!!!" + echo "This operation expects content-type in one of the following formats:" + echo -e "\\t- application/json" + echo "" + echo "Use '--content-type' to set proper content type" + exit 1 + else + headers_curl="${headers_curl} -H 'Content-type: ${header_content_type}'" + fi + + + # + # If we have received some body content over pipe, pass it from the + # temporary file to cURL + # + if [[ -n $body_content_temp_file ]]; then + if [[ "$print_curl" = true ]]; then + echo "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + else + eval "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + fi + rm "${body_content_temp_file}" + # + # If not, try to build the content body from arguments KEY==VALUE and KEY:=VALUE + # + else + body_json_curl=$(body_parameters_to_json) + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + fi + fi +} + +############################################################################## +# +# Call deleteUser operation +# +############################################################################## +call_deleteUser() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=(username) + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/user/{username}" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="DELETE" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + +############################################################################## +# +# Call getUserByName operation +# +############################################################################## +call_getUserByName() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=(username) + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/user/{username}" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="GET" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + +############################################################################## +# +# Call loginUser operation +# +############################################################################## +call_loginUser() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=(username password) + local path + + if ! path=$(build_request_path "/v2/user/login" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="GET" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + +############################################################################## +# +# Call logoutUser operation +# +############################################################################## +call_logoutUser() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/user/logout" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="GET" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + +############################################################################## +# +# Call updateUser operation +# +############################################################################## +call_updateUser() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=(username) + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/user/{username}" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="PUT" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + local body_json_curl="" + + # + # Check if the user provided 'Content-type' headers in the + # command line. If not try to set them based on the OpenAPI specification + # if values produces and consumes are defined unambigously + # + if [[ -z $header_content_type ]]; then + header_content_type="application/json" + fi + + + if [[ -z $header_content_type && "$force" = false ]]; then + : + echo "ERROR: Request's content-type not specified!!!" + echo "This operation expects content-type in one of the following formats:" + echo -e "\\t- application/json" + echo "" + echo "Use '--content-type' to set proper content type" + exit 1 + else + headers_curl="${headers_curl} -H 'Content-type: ${header_content_type}'" + fi + + + # + # If we have received some body content over pipe, pass it from the + # temporary file to cURL + # + if [[ -n $body_content_temp_file ]]; then + if [[ "$print_curl" = true ]]; then + echo "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + else + eval "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + fi + rm "${body_content_temp_file}" + # + # If not, try to build the content body from arguments KEY==VALUE and KEY:=VALUE + # + else + body_json_curl=$(body_parameters_to_json) + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + fi + fi +} + + + +############################################################################## +# +# Main +# +############################################################################## + + +# Check dependencies +type curl >/dev/null 2>&1 || { echo >&2 "ERROR: You do not have 'cURL' installed."; exit 1; } +type sed >/dev/null 2>&1 || { echo >&2 "ERROR: You do not have 'sed' installed."; exit 1; } +type column >/dev/null 2>&1 || { echo >&2 "ERROR: You do not have 'bsdmainutils' installed."; exit 1; } + +# +# Process command line +# +# Pass all arguments before 'operation' to cURL except the ones we override +# +take_user=false +take_host=false +take_accept_header=false +take_contenttype_header=false + +for key in "$@"; do +# Take the value of -u|--user argument +if [[ "$take_user" = true ]]; then + basic_auth_credential="$key" + take_user=false + continue +fi +# Take the value of --host argument +if [[ "$take_host" = true ]]; then + host="$key" + take_host=false + continue +fi +# Take the value of --accept argument +if [[ "$take_accept_header" = true ]]; then + header_accept=$(lookup_mime_type "$key") + take_accept_header=false + continue +fi +# Take the value of --content-type argument +if [[ "$take_contenttype_header" = true ]]; then + header_content_type=$(lookup_mime_type "$key") + take_contenttype_header=false + continue +fi +case $key in + -h|--help) + if [[ "x$operation" == "x" ]]; then + print_help + exit 0 + else + eval "print_${operation}_help" + exit 0 + fi + ;; + -V|--version) + print_version + exit 0 + ;; + --about) + print_about + exit 0 + ;; + -u|--user) + take_user=true + ;; + --host) + take_host=true + ;; + --force) + force=true + ;; + -ac|--accept) + take_accept_header=true + ;; + -ct|--content-type) + take_contenttype_header=true + ;; + --dry-run) + print_curl=true + ;; + -nc|--no-colors) + RED="" + GREEN="" + YELLOW="" + BLUE="" + MAGENTA="" + CYAN="" + WHITE="" + BOLD="" + OFF="" + result_color_table=( "" "" "" "" "" "" "" ) + ;; + 123Test@$%SpecialTags) + operation="123Test@$%SpecialTags" + ;; + fooGet) + operation="fooGet" + ;; + fakeHealthGet) + operation="fakeHealthGet" + ;; + fakeOuterBooleanSerialize) + operation="fakeOuterBooleanSerialize" + ;; + fakeOuterCompositeSerialize) + operation="fakeOuterCompositeSerialize" + ;; + fakeOuterNumberSerialize) + operation="fakeOuterNumberSerialize" + ;; + fakeOuterStringSerialize) + operation="fakeOuterStringSerialize" + ;; + testBodyWithFileSchema) + operation="testBodyWithFileSchema" + ;; + testBodyWithQueryParams) + operation="testBodyWithQueryParams" + ;; + testClientModel) + operation="testClientModel" + ;; + testEndpointParameters) + operation="testEndpointParameters" + ;; + testEnumParameters) + operation="testEnumParameters" + ;; + testGroupParameters) + operation="testGroupParameters" + ;; + testInlineAdditionalProperties) + operation="testInlineAdditionalProperties" + ;; + testJsonFormData) + operation="testJsonFormData" + ;; + testClassname) + operation="testClassname" + ;; + addPet) + operation="addPet" + ;; + deletePet) + operation="deletePet" + ;; + findPetsByStatus) + operation="findPetsByStatus" + ;; + findPetsByTags) + operation="findPetsByTags" + ;; + getPetById) + operation="getPetById" + ;; + updatePet) + operation="updatePet" + ;; + updatePetWithForm) + operation="updatePetWithForm" + ;; + uploadFile) + operation="uploadFile" + ;; + uploadFileWithRequiredFile) + operation="uploadFileWithRequiredFile" + ;; + deleteOrder) + operation="deleteOrder" + ;; + getInventory) + operation="getInventory" + ;; + getOrderById) + operation="getOrderById" + ;; + placeOrder) + operation="placeOrder" + ;; + createUser) + operation="createUser" + ;; + createUsersWithArrayInput) + operation="createUsersWithArrayInput" + ;; + createUsersWithListInput) + operation="createUsersWithListInput" + ;; + deleteUser) + operation="deleteUser" + ;; + getUserByName) + operation="getUserByName" + ;; + loginUser) + operation="loginUser" + ;; + logoutUser) + operation="logoutUser" + ;; + updateUser) + operation="updateUser" + ;; + *==*) + # Parse body arguments and convert them into top level + # JSON properties passed in the body content as strings + if [[ "$operation" ]]; then + IFS='==' read -r body_key sep body_value <<< "$key" + body_parameters[${body_key}]="\"${body_value}\"" + fi + ;; + *:=*) + # Parse body arguments and convert them into top level + # JSON properties passed in the body content without qoutes + if [[ "$operation" ]]; then + # ignore error about 'sep' being unused + # shellcheck disable=SC2034 + IFS=':=' read -r body_key sep body_value <<< "$key" + body_parameters[${body_key}]=${body_value} + fi + ;; + +\([^=]\):*) + # Parse header arguments and convert them into curl + # only after the operation argument + if [[ "$operation" ]]; then + IFS=':' read -r header_name header_value <<< "$key" + # + # If the header key is the same as the api_key expected by API in the + # header, override the ${apikey_auth_credential} variable + # + if [[ $header_name == "api_key" ]]; then + apikey_auth_credential=$header_value + fi + header_arguments[$header_name]=$header_value + else + curl_arguments+=" $key" + fi + ;; + -) + body_content_temp_file=$(mktemp) + cat - > "$body_content_temp_file" + ;; + *=*) + # Parse operation arguments and convert them into curl + # only after the operation argument + if [[ "$operation" ]]; then + IFS='=' read -r parameter_name parameter_value <<< "$key" + if [[ -z "${operation_parameters[$parameter_name]+foo}" ]]; then + operation_parameters[$parameter_name]=$(url_escape "${parameter_value}") + else + operation_parameters[$parameter_name]+=":::"$(url_escape "${parameter_value}") + fi + else + curl_arguments+=" $key" + fi + ;; + *) + # If we are before the operation, treat the arguments as cURL arguments + if [[ "x$operation" == "x" ]]; then + # Maintain quotes around cURL arguments if necessary + space_regexp="[[:space:]]" + if [[ $key =~ $space_regexp ]]; then + curl_arguments+=" \"$key\"" + else + curl_arguments+=" $key" + fi + fi + ;; +esac +done + + +# Check if user provided host name +if [[ -z "$host" ]]; then + ERROR_MSG="ERROR: No hostname provided!!! You have to provide on command line option '--host ...'" + exit 1 +fi + +# Check if user specified operation ID +if [[ -z "$operation" ]]; then + ERROR_MSG="ERROR: No operation specified!!!" + exit 1 +fi + + +# Run cURL command based on the operation ID +case $operation in + 123Test@$%SpecialTags) + call_123Test@$%SpecialTags + ;; + fooGet) + call_fooGet + ;; + fakeHealthGet) + call_fakeHealthGet + ;; + fakeOuterBooleanSerialize) + call_fakeOuterBooleanSerialize + ;; + fakeOuterCompositeSerialize) + call_fakeOuterCompositeSerialize + ;; + fakeOuterNumberSerialize) + call_fakeOuterNumberSerialize + ;; + fakeOuterStringSerialize) + call_fakeOuterStringSerialize + ;; + testBodyWithFileSchema) + call_testBodyWithFileSchema + ;; + testBodyWithQueryParams) + call_testBodyWithQueryParams + ;; + testClientModel) + call_testClientModel + ;; + testEndpointParameters) + call_testEndpointParameters + ;; + testEnumParameters) + call_testEnumParameters + ;; + testGroupParameters) + call_testGroupParameters + ;; + testInlineAdditionalProperties) + call_testInlineAdditionalProperties + ;; + testJsonFormData) + call_testJsonFormData + ;; + testClassname) + call_testClassname + ;; + addPet) + call_addPet + ;; + deletePet) + call_deletePet + ;; + findPetsByStatus) + call_findPetsByStatus + ;; + findPetsByTags) + call_findPetsByTags + ;; + getPetById) + call_getPetById + ;; + updatePet) + call_updatePet + ;; + updatePetWithForm) + call_updatePetWithForm + ;; + uploadFile) + call_uploadFile + ;; + uploadFileWithRequiredFile) + call_uploadFileWithRequiredFile + ;; + deleteOrder) + call_deleteOrder + ;; + getInventory) + call_getInventory + ;; + getOrderById) + call_getOrderById + ;; + placeOrder) + call_placeOrder + ;; + createUser) + call_createUser + ;; + createUsersWithArrayInput) + call_createUsersWithArrayInput + ;; + createUsersWithListInput) + call_createUsersWithListInput + ;; + deleteUser) + call_deleteUser + ;; + getUserByName) + call_getUserByName + ;; + loginUser) + call_loginUser + ;; + logoutUser) + call_logoutUser + ;; + updateUser) + call_updateUser + ;; + *) + ERROR_MSG="ERROR: Unknown operation: $operation" + exit 1 +esac diff --git a/samples/client/petstore/bash/client.sh.bash-completion b/samples/client/petstore/bash/client.sh.bash-completion new file mode 100644 index 00000000000..f099fa5897a --- /dev/null +++ b/samples/client/petstore/bash/client.sh.bash-completion @@ -0,0 +1,326 @@ +# completion -*- shell-script -*- + +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# ! +# ! Note: +# ! +# ! THIS SCRIPT HAS BEEN AUTOMATICALLY GENERATED USING +# ! openapi-generator (https://openapi-generator.tech) +# ! FROM OPENAPI SPECIFICATION IN JSON. +# ! +# ! +# ! +# ! System wide installation: +# ! +# ! $ sudo cp .bash-completion /etc/bash-completion.d/ +# ! +# ! +# ! User home installation (add this line to .bash_profile): +# ! +# ! [ -r ~/.bash-completion ] && source ~/.bash-completion +# ! +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +declare -A mime_type_abbreviations +# text/* +mime_type_abbreviations["text"]="text/plain" +mime_type_abbreviations["html"]="text/html" +mime_type_abbreviations["md"]="text/x-markdown" +mime_type_abbreviations["csv"]="text/csv" +mime_type_abbreviations["css"]="text/css" +mime_type_abbreviations["rtf"]="text/rtf" +# application/* +mime_type_abbreviations["json"]="application/json" +mime_type_abbreviations["xml"]="application/xml" +mime_type_abbreviations["yaml"]="application/yaml" +mime_type_abbreviations["js"]="application/javascript" +mime_type_abbreviations["bin"]="application/octet-stream" +mime_type_abbreviations["rdf"]="application/rdf+xml" +# image/* +mime_type_abbreviations["jpg"]="image/jpeg" +mime_type_abbreviations["png"]="image/png" +mime_type_abbreviations["gif"]="image/gif" +mime_type_abbreviations["bmp"]="image/bmp" +mime_type_abbreviations["tiff"]="image/tiff" + + +# +# Check if this is OSX, if so defined custom init_completion +# +if [[ `uname` =~ "Darwin" ]]; then + __osx_init_completion() + { + COMPREPLY=() + _get_comp_words_by_ref cur prev words cword + } +fi + +_() +{ + local cur + local prev + local words + local cword + + # The reference of currently selected REST operation + local operation="" + + # The list of available operation in the REST service + # It's modelled as an associative array for efficient key lookup + declare -A operations + operations["123Test@$%SpecialTags"]=1 + operations["fooGet"]=1 + operations["fakeHealthGet"]=1 + operations["fakeOuterBooleanSerialize"]=1 + operations["fakeOuterCompositeSerialize"]=1 + operations["fakeOuterNumberSerialize"]=1 + operations["fakeOuterStringSerialize"]=1 + operations["testBodyWithFileSchema"]=1 + operations["testBodyWithQueryParams"]=1 + operations["testClientModel"]=1 + operations["testEndpointParameters"]=1 + operations["testEnumParameters"]=1 + operations["testGroupParameters"]=1 + operations["testInlineAdditionalProperties"]=1 + operations["testJsonFormData"]=1 + operations["testClassname"]=1 + operations["addPet"]=1 + operations["deletePet"]=1 + operations["findPetsByStatus"]=1 + operations["findPetsByTags"]=1 + operations["getPetById"]=1 + operations["updatePet"]=1 + operations["updatePetWithForm"]=1 + operations["uploadFile"]=1 + operations["uploadFileWithRequiredFile"]=1 + operations["deleteOrder"]=1 + operations["getInventory"]=1 + operations["getOrderById"]=1 + operations["placeOrder"]=1 + operations["createUser"]=1 + operations["createUsersWithArrayInput"]=1 + operations["createUsersWithListInput"]=1 + operations["deleteUser"]=1 + operations["getUserByName"]=1 + operations["loginUser"]=1 + operations["logoutUser"]=1 + operations["updateUser"]=1 + + # An associative array of operations to their parameters + # Only include path, query and header parameters + declare -A operation_parameters + operation_parameters["123Test@$%SpecialTags"]="" + operation_parameters["fooGet"]="" + operation_parameters["fakeHealthGet"]="" + operation_parameters["fakeOuterBooleanSerialize"]="" + operation_parameters["fakeOuterCompositeSerialize"]="" + operation_parameters["fakeOuterNumberSerialize"]="" + operation_parameters["fakeOuterStringSerialize"]="" + operation_parameters["testBodyWithFileSchema"]="" + operation_parameters["testBodyWithQueryParams"]="query= " + operation_parameters["testClientModel"]="" + operation_parameters["testEndpointParameters"]="" + operation_parameters["testEnumParameters"]="enum_query_string_array= enum_query_string= enum_query_integer= enum_query_double= enum_header_string_array: enum_header_string: " + operation_parameters["testGroupParameters"]="required_string_group= required_int64_group= string_group= int64_group= required_boolean_group: boolean_group: " + operation_parameters["testInlineAdditionalProperties"]="" + operation_parameters["testJsonFormData"]="" + operation_parameters["testClassname"]="" + operation_parameters["addPet"]="" + operation_parameters["deletePet"]="petId= api_key: " + operation_parameters["findPetsByStatus"]="status= " + operation_parameters["findPetsByTags"]="tags= " + operation_parameters["getPetById"]="petId= " + operation_parameters["updatePet"]="" + operation_parameters["updatePetWithForm"]="petId= " + operation_parameters["uploadFile"]="petId= " + operation_parameters["uploadFileWithRequiredFile"]="petId= " + operation_parameters["deleteOrder"]="order_id= " + operation_parameters["getInventory"]="" + operation_parameters["getOrderById"]="order_id= " + operation_parameters["placeOrder"]="" + operation_parameters["createUser"]="" + operation_parameters["createUsersWithArrayInput"]="" + operation_parameters["createUsersWithListInput"]="" + operation_parameters["deleteUser"]="username= " + operation_parameters["getUserByName"]="username= " + operation_parameters["loginUser"]="username= password= " + operation_parameters["logoutUser"]="" + operation_parameters["updateUser"]="username= " + + # An associative array of possible values for enum parameters + declare -A operation_parameters_enum_values + operation_parameters_enum_values["testGroupParameters::required_boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::required_boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::required_boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::required_boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::required_boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::required_boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::boolean_group"]="true false" + + # + # Check if this is OSX and use special __osx_init_completion function + # + if [[ `uname` =~ "Darwin" ]]; then + __osx_init_completion || return + else + _init_completion -s || return + fi + + + # Check if operation is already in the command line provided + for word in "${words[@]}"; do + if [[ -n $word && ${operations[$word]} ]]; then + operation="${word}" + fi + done + + if [[ -z $operation ]]; then + case $prev in + --ciphers|--connect-timeout|-C|--continue-at|-F|--form|--form-string|\ + --ftp-account|--ftp-alternative-to-user|-P|--ftp-port|-H|--header|-h|\ + --help|--hostpubmd5|--keepalive-time|--krb|--limit-rate|--local-port|\ + --mail-from|--mail-rcpt|--max-filesize|--max-redirs|-m|--max-time|\ + --pass|--proto|--proto-redir|--proxy-user|--proxy1.0|-Q|--quote|-r|\ + --range|-X|--request|--retry|--retry-delay|--retry-max-time|\ + --socks5-gssapi-service|-t|--telnet-option|--tftp-blksize|-z|\ + --time-cond|--url|-u|--user|-A|--user-agent|-V|--version|-w|\ + --write-out|--resolve|--tlsuser|--tlspassword|--about) + return + ;; + -K|--config|-b|--cookie|-c|--cookie-jar|-D|--dump-header|--egd-file|\ + --key|--libcurl|-o|--output|--random-file|-T|--upload-file|--trace|\ + --trace-ascii|--netrc-file) + _filedir + return + ;; + --cacert|-E|--cert) + _filedir '@(c?(e)rt|cer|pem|der)' + return + ;; + --capath) + _filedir -d + return + ;; + --cert-type|--key-type) + COMPREPLY=( $( compgen -W 'DER PEM ENG' -- "$cur" ) ) + return + ;; + --crlfile) + _filedir crl + return + ;; + -d|--data|--data-ascii|--data-binary|--data-urlencode) + if [[ $cur == \@* ]]; then + cur=${cur:1} + _filedir + COMPREPLY=( "${COMPREPLY[@]/#/@}" ) + fi + return + ;; + --delegation) + COMPREPLY=( $( compgen -W 'none policy always' -- "$cur" ) ) + return + ;; + --engine) + COMPREPLY=( $( compgen -W 'list' -- "$cur" ) ) + return + ;; + --ftp-method) + COMPREPLY=( $( compgen -W 'multicwd nocwd singlecwd' -- "$cur" ) ) + return + ;; + --ftp-ssl-ccc-mode) + COMPREPLY=( $( compgen -W 'active passive' -- "$cur" ) ) + return + ;; + --interface) + _available_interfaces -a + return + ;; + -x|--proxy|--socks4|--socks4a|--socks5|--socks5-hostname) + _known_hosts_real + return + ;; + --pubkey) + _filedir pub + return + ;; + --stderr) + COMPREPLY=( $( compgen -W '-' -- "$cur" ) ) + _filedir + return + ;; + --tlsauthtype) + COMPREPLY=( $( compgen -W 'SRP' -- "$cur" ) ) + return + ;; + --host) + COMPREPLY=( $( compgen -W 'http:// https://' -- "$cur" ) ) + return + ;; + -ct|--content-type|-ac|--accept) + COMPREPLY=( $( compgen -W '${!mime_type_abbreviations[*]}' -- "$cur" ) ) + return + ;; + esac + fi + + # + # Complete the server address based on ~/.ssh/known_hosts + # and ~/.ssh/config + # + local prefix=${COMP_WORDS[COMP_CWORD-2]} + local colon=${COMP_WORDS[COMP_CWORD-1]} + if [[ "$colon" == ":" && ( $prefix == "https" || $prefix == "http" ) ]]; then + COMPREPLY=() + local comp_ssh_hosts=`[[ -f ~/.ssh/known_hosts ]] && \ + ( cat ~/.ssh/known_hosts | \ + grep '^[a-zA-Z0-9]' | \ + cut -f 1 -d ' ' | \ + sed -e s/,.*//g | \ + grep -v ^# | \ + uniq | \ + grep -v "\[" ) ; + [[ -f ~/.ssh/config ]] && \ + ( cat ~/.ssh/config | \ + grep "^Host " | \ + awk '{print $2}' )` + COMPREPLY=( $( compgen -P '//' -W '${comp_ssh_hosts}' -- "${cur:2}") ) + return + fi + + # + # Complete the and cURL's arguments + # + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$(_parse_help curl) $(_parse_help $1)' -- "$cur" ) ) + return + fi + + # + # If the argument starts with a letter this could be either an operation + # or an operation parameter + # When $cur is empty, suggest the list of operations by default + # + if [[ $cur =~ ^[A-Za-z_0-9]* ]]; then + # If operation has not been yet selected, suggest the list of operations + # otherwise suggest arguments of this operation as declared in the + # OpenAPI specification + if [[ -z $operation ]]; then + COMPREPLY=( $(compgen -W '${!operations[*]}' -- ${cur}) ) + else + COMPREPLY=( $(compgen -W '${operation_parameters[$operation]}' -- ${cur}) ) + compopt -o nospace + fi + return + fi + +} && +complete -F _ + +# ex: ts=4 sw=4 et filetype=sh diff --git a/samples/client/petstore/bash/docs/$special[modelName].md b/samples/client/petstore/bash/docs/$special[modelName].md new file mode 100644 index 00000000000..884128c8b39 --- /dev/null +++ b/samples/client/petstore/bash/docs/$special[modelName].md @@ -0,0 +1,10 @@ +# $special[model.name] + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**DollarspecialLeft_Square_BracketpropertyPeriodnameRight_Square_Bracket** | **integer** | | [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/bash/docs/200Response.md b/samples/client/petstore/bash/docs/200Response.md new file mode 100644 index 00000000000..b575df6f2eb --- /dev/null +++ b/samples/client/petstore/bash/docs/200Response.md @@ -0,0 +1,11 @@ +# 200_response + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **integer** | | [optional] [default to null] +**class** | **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/bash/docs/AdditionalPropertiesAnyType.md b/samples/client/petstore/bash/docs/AdditionalPropertiesAnyType.md new file mode 100644 index 00000000000..dfb55fb51b4 --- /dev/null +++ b/samples/client/petstore/bash/docs/AdditionalPropertiesAnyType.md @@ -0,0 +1,10 @@ +# AdditionalPropertiesAnyType + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**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/bash/docs/AdditionalPropertiesArray.md b/samples/client/petstore/bash/docs/AdditionalPropertiesArray.md new file mode 100644 index 00000000000..5edd62c9050 --- /dev/null +++ b/samples/client/petstore/bash/docs/AdditionalPropertiesArray.md @@ -0,0 +1,10 @@ +# AdditionalPropertiesArray + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**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/bash/docs/AdditionalPropertiesBoolean.md b/samples/client/petstore/bash/docs/AdditionalPropertiesBoolean.md new file mode 100644 index 00000000000..3223701aa4c --- /dev/null +++ b/samples/client/petstore/bash/docs/AdditionalPropertiesBoolean.md @@ -0,0 +1,10 @@ +# AdditionalPropertiesBoolean + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**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/bash/docs/AdditionalPropertiesClass.md b/samples/client/petstore/bash/docs/AdditionalPropertiesClass.md index 70fe49c1edf..5b1ed2dce63 100644 --- a/samples/client/petstore/bash/docs/AdditionalPropertiesClass.md +++ b/samples/client/petstore/bash/docs/AdditionalPropertiesClass.md @@ -3,8 +3,17 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**map_property** | **map[String, string]** | | [optional] [default to null] -**map_of_map_property** | **map[String, map[String, string]]** | | [optional] [default to null] +**mapUnderscorestring** | **map[String, string]** | | [optional] [default to null] +**mapUnderscorenumber** | **map[String, integer]** | | [optional] [default to null] +**mapUnderscoreinteger** | **map[String, integer]** | | [optional] [default to null] +**mapUnderscoreboolean** | **map[String, boolean]** | | [optional] [default to null] +**mapUnderscorearrayUnderscoreinteger** | **map[String, array[integer]]** | | [optional] [default to null] +**mapUnderscorearrayUnderscoreanytype** | **map[String, array[map]]** | | [optional] [default to null] +**mapUnderscoremapUnderscorestring** | **map[String, map[String, string]]** | | [optional] [default to null] +**mapUnderscoremapUnderscoreanytype** | **map[String, map[String, map]]** | | [optional] [default to null] +**anytypeUnderscore1** | [**map**](.md) | | [optional] [default to null] +**anytypeUnderscore2** | [**map**](.md) | | [optional] [default to null] +**anytypeUnderscore3** | [**map**](.md) | | [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/bash/docs/AdditionalPropertiesInteger.md b/samples/client/petstore/bash/docs/AdditionalPropertiesInteger.md new file mode 100644 index 00000000000..c95116042e2 --- /dev/null +++ b/samples/client/petstore/bash/docs/AdditionalPropertiesInteger.md @@ -0,0 +1,10 @@ +# AdditionalPropertiesInteger + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**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/bash/docs/AdditionalPropertiesNumber.md b/samples/client/petstore/bash/docs/AdditionalPropertiesNumber.md new file mode 100644 index 00000000000..5ba50ecfe5e --- /dev/null +++ b/samples/client/petstore/bash/docs/AdditionalPropertiesNumber.md @@ -0,0 +1,10 @@ +# AdditionalPropertiesNumber + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**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/bash/docs/AdditionalPropertiesObject.md b/samples/client/petstore/bash/docs/AdditionalPropertiesObject.md new file mode 100644 index 00000000000..5694b15649a --- /dev/null +++ b/samples/client/petstore/bash/docs/AdditionalPropertiesObject.md @@ -0,0 +1,10 @@ +# AdditionalPropertiesObject + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**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/bash/docs/AdditionalPropertiesString.md b/samples/client/petstore/bash/docs/AdditionalPropertiesString.md new file mode 100644 index 00000000000..f39e11d88e5 --- /dev/null +++ b/samples/client/petstore/bash/docs/AdditionalPropertiesString.md @@ -0,0 +1,10 @@ +# AdditionalPropertiesString + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**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/bash/docs/AnotherFakeApi.md b/samples/client/petstore/bash/docs/AnotherFakeApi.md index f5b70880abc..f93603717d2 100644 --- a/samples/client/petstore/bash/docs/AnotherFakeApi.md +++ b/samples/client/petstore/bash/docs/AnotherFakeApi.md @@ -4,25 +4,28 @@ All URIs are relative to */v2* Method | HTTP request | Description ------------- | ------------- | ------------- -[**testSpecialTags**](AnotherFakeApi.md#testSpecialTags) | **PATCH** /another-fake/dummy | To test special tags +[**123Test@$%SpecialTags**](AnotherFakeApi.md#123Test@$%SpecialTags) | **PATCH** /another-fake/dummy | To test special tags -## **testSpecialTags** + +## 123Test@$%SpecialTags To test special tags -To test special tags +To test special tags and operation ID starting with number ### Example + ```bash -petstore-cli testSpecialTags +petstore-cli 123Test@$%SpecialTags ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **client** | [**Client**](Client.md) | client model | + **body** | [**Client**](Client.md) | client model | ### Return type @@ -34,8 +37,8 @@ No authorization required ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: application/json +- **Content-Type**: application/json +- **Accept**: application/json [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) diff --git a/samples/client/petstore/bash/docs/ArrayTest.md b/samples/client/petstore/bash/docs/ArrayTest.md index 6c86d88f309..ee047cb7370 100644 --- a/samples/client/petstore/bash/docs/ArrayTest.md +++ b/samples/client/petstore/bash/docs/ArrayTest.md @@ -3,9 +3,9 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**array_of_string** | **array[string]** | | [optional] [default to null] -**array_array_of_integer** | **array[array[integer]]** | | [optional] [default to null] -**array_array_of_model** | **array[array[ReadOnlyFirst]]** | | [optional] [default to null] +**arrayUnderscoreofUnderscorestring** | **array[string]** | | [optional] [default to null] +**arrayUnderscorearrayUnderscoreofUnderscoreinteger** | **array[array[integer]]** | | [optional] [default to null] +**arrayUnderscorearrayUnderscoreofUnderscoremodel** | **array[array[ReadOnlyFirst]]** | | [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/bash/docs/Capitalization.md b/samples/client/petstore/bash/docs/Capitalization.md index 362258aa0d4..3a6e754d44d 100644 --- a/samples/client/petstore/bash/docs/Capitalization.md +++ b/samples/client/petstore/bash/docs/Capitalization.md @@ -5,10 +5,10 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **smallCamel** | **string** | | [optional] [default to null] **CapitalCamel** | **string** | | [optional] [default to null] -**small_Snake** | **string** | | [optional] [default to null] -**Capital_Snake** | **string** | | [optional] [default to null] -**SCA_ETH_Flow_Points** | **string** | | [optional] [default to null] -**ATT_NAME** | **string** | | [optional] [default to null] +**smallUnderscoreSnake** | **string** | | [optional] [default to null] +**CapitalUnderscoreSnake** | **string** | | [optional] [default to null] +**SCAUnderscoreETHUnderscoreFlowUnderscorePoints** | **string** | | [optional] [default to null] +**ATTUnderscoreNAME** | **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/bash/docs/CatAllOf.md b/samples/client/petstore/bash/docs/CatAllOf.md new file mode 100644 index 00000000000..99ba1bec860 --- /dev/null +++ b/samples/client/petstore/bash/docs/CatAllOf.md @@ -0,0 +1,10 @@ +# Cat_allOf + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**declawed** | **boolean** | | [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/bash/docs/Category.md b/samples/client/petstore/bash/docs/Category.md index 5af29e81851..25078d7ad51 100644 --- a/samples/client/petstore/bash/docs/Category.md +++ b/samples/client/petstore/bash/docs/Category.md @@ -4,7 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **id** | **integer** | | [optional] [default to null] -**name** | **string** | | [optional] [default to null] +**name** | **string** | | [default to default-name] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/samples/client/petstore/bash/docs/ClassModel.md b/samples/client/petstore/bash/docs/ClassModel.md index 7979502a642..2e1cda38387 100644 --- a/samples/client/petstore/bash/docs/ClassModel.md +++ b/samples/client/petstore/bash/docs/ClassModel.md @@ -3,7 +3,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**_class** | **string** | | [optional] [default to null] +**Underscoreclass** | **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/bash/docs/DefaultApi.md b/samples/client/petstore/bash/docs/DefaultApi.md new file mode 100644 index 00000000000..5ef9511145b --- /dev/null +++ b/samples/client/petstore/bash/docs/DefaultApi.md @@ -0,0 +1,39 @@ +# DefaultApi + +All URIs are relative to */v2* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**fooGet**](DefaultApi.md#fooGet) | **GET** /foo | + + + +## fooGet + + + +### Example + +```bash + fooGet +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**InlineResponseDefault**](InlineResponseDefault.md) + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not Applicable +- **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/bash/docs/DogAllOf.md b/samples/client/petstore/bash/docs/DogAllOf.md new file mode 100644 index 00000000000..2bf2fdd3478 --- /dev/null +++ b/samples/client/petstore/bash/docs/DogAllOf.md @@ -0,0 +1,10 @@ +# Dog_allOf + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**breed** | **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/bash/docs/EnumArrays.md b/samples/client/petstore/bash/docs/EnumArrays.md index 70798f4be67..965ac8323cc 100644 --- a/samples/client/petstore/bash/docs/EnumArrays.md +++ b/samples/client/petstore/bash/docs/EnumArrays.md @@ -3,8 +3,8 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**just_symbol** | **string** | | [optional] [default to null] -**array_enum** | **array[string]** | | [optional] [default to null] +**justUnderscoresymbol** | **string** | | [optional] [default to null] +**arrayUnderscoreenum** | **array[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/bash/docs/EnumTest.md b/samples/client/petstore/bash/docs/EnumTest.md new file mode 100644 index 00000000000..30b30efa730 --- /dev/null +++ b/samples/client/petstore/bash/docs/EnumTest.md @@ -0,0 +1,14 @@ +# Enum_Test + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**enumUnderscorestring** | **string** | | [optional] [default to null] +**enumUnderscorestringUnderscorerequired** | **string** | | [default to null] +**enumUnderscoreinteger** | **integer** | | [optional] [default to null] +**enumUnderscorenumber** | **float** | | [optional] [default to null] +**outerEnum** | [**OuterEnum**](OuterEnum.md) | | [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/bash/docs/FakeApi.md b/samples/client/petstore/bash/docs/FakeApi.md index 458397e6727..0f9bf109d34 100644 --- a/samples/client/petstore/bash/docs/FakeApi.md +++ b/samples/client/petstore/bash/docs/FakeApi.md @@ -4,10 +4,12 @@ All URIs are relative to */v2* Method | HTTP request | Description ------------- | ------------- | ------------- +[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** /fake/create_xml_item | creates an XmlItem [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | [**fakeOuterStringSerialize**](FakeApi.md#fakeOuterStringSerialize) | **POST** /fake/outer/string | +[**testBodyWithFileSchema**](FakeApi.md#testBodyWithFileSchema) | **PUT** /fake/body-with-file-schema | [**testBodyWithQueryParams**](FakeApi.md#testBodyWithQueryParams) | **PUT** /fake/body-with-query-params | [**testClientModel**](FakeApi.md#testClientModel) | **PATCH** /fake | To test \"client\" model [**testEndpointParameters**](FakeApi.md#testEndpointParameters) | **POST** /fake | Fake endpoint for testing various parameters @@ -15,23 +17,62 @@ Method | HTTP request | Description 偽のエンドポイント 가짜 엔드 포인트 [**testEnumParameters**](FakeApi.md#testEnumParameters) | **GET** /fake | To test enum parameters +[**testGroupParameters**](FakeApi.md#testGroupParameters) | **DELETE** /fake | Fake endpoint to test group parameters (optional) [**testInlineAdditionalProperties**](FakeApi.md#testInlineAdditionalProperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data -## **fakeOuterBooleanSerialize** + +## createXmlItem + +creates an XmlItem + +this route creates an XmlItem + +### Example + +```bash +petstore-cli createXmlItem +``` + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **xmlItem** | [**XmlItem**](XmlItem.md) | XmlItem Body | + +### Return type + +(empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16 +- **Accept**: Not Applicable + +[[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) + + +## fakeOuterBooleanSerialize Test serialization of outer boolean types ### Example + ```bash petstore-cli fakeOuterBooleanSerialize ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **body** | **boolean** | Input boolean as post body | [optional] @@ -46,27 +87,30 @@ No authorization required ### HTTP request headers - - **Content-Type**: Not Applicable - - **Accept**: */* +- **Content-Type**: Not Applicable +- **Accept**: */* [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -## **fakeOuterCompositeSerialize** + +## fakeOuterCompositeSerialize Test serialization of object with outer number type ### Example + ```bash petstore-cli fakeOuterCompositeSerialize ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **outerComposite** | [**OuterComposite**](OuterComposite.md) | Input composite as post body | [optional] + **body** | [**OuterComposite**](OuterComposite.md) | Input composite as post body | [optional] ### Return type @@ -78,24 +122,27 @@ No authorization required ### HTTP request headers - - **Content-Type**: Not Applicable - - **Accept**: */* +- **Content-Type**: Not Applicable +- **Accept**: */* [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -## **fakeOuterNumberSerialize** + +## fakeOuterNumberSerialize Test serialization of outer number types ### Example + ```bash petstore-cli fakeOuterNumberSerialize ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **body** | **integer** | Input number as post body | [optional] @@ -110,24 +157,27 @@ No authorization required ### HTTP request headers - - **Content-Type**: Not Applicable - - **Accept**: */* +- **Content-Type**: Not Applicable +- **Accept**: */* [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -## **fakeOuterStringSerialize** + +## fakeOuterStringSerialize Test serialization of outer string types ### Example + ```bash petstore-cli fakeOuterStringSerialize ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **body** | **string** | Input string as post body | [optional] @@ -142,26 +192,30 @@ No authorization required ### HTTP request headers - - **Content-Type**: Not Applicable - - **Accept**: */* +- **Content-Type**: Not Applicable +- **Accept**: */* [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -## **testBodyWithQueryParams** + +## testBodyWithFileSchema +For this test, the body for this request much reference a schema named 'File'. + ### Example + ```bash -petstore-cli testBodyWithQueryParams query=value +petstore-cli testBodyWithFileSchema ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **query** | **string** | | - **user** | [**User**](User.md) | | + **body** | [**FileSchemaTestClass**](FileSchemaTestClass.md) | | ### Return type @@ -173,27 +227,64 @@ No authorization required ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: Not Applicable +- **Content-Type**: application/json +- **Accept**: Not Applicable [[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** + +## testBodyWithQueryParams + + + +### Example + +```bash +petstore-cli testBodyWithQueryParams query=value +``` + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **query** | **string** | | [default to null] + **body** | [**User**](User.md) | | + +### Return type + +(empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: Not Applicable + +[[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 To test \"client\" model To test \"client\" model ### Example + ```bash petstore-cli testClientModel ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **client** | [**Client**](Client.md) | client model | + **body** | [**Client**](Client.md) | client model | ### Return type @@ -205,12 +296,13 @@ No authorization required ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: application/json +- **Content-Type**: application/json +- **Accept**: application/json [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -## **testEndpointParameters** + +## testEndpointParameters Fake endpoint for testing various parameters 假端點 @@ -223,12 +315,14 @@ Fake endpoint for testing various parameters 가짜 엔드 포인트 ### Example + ```bash petstore-cli testEndpointParameters ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **number** | **integer** | None | [default to null] @@ -256,33 +350,36 @@ Name | Type | Description | Notes ### HTTP request headers - - **Content-Type**: application/x-www-form-urlencoded - - **Accept**: Not Applicable +- **Content-Type**: application/x-www-form-urlencoded +- **Accept**: Not Applicable [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -## **testEnumParameters** + +## testEnumParameters To test enum parameters To test enum parameters ### Example + ```bash petstore-cli testEnumParameters enum_header_string_array:value enum_header_string:value Specify as: enum_query_string_array="value1,value2,..." enum_query_string=value enum_query_integer=value enum_query_double=value ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **enumHeaderStringArray** | [**array[string]**](string.md) | Header parameter enum test (string array) | [optional] + **enumHeaderStringArray** | [**array[string]**](string.md) | Header parameter enum test (string array) | [optional] [default to null] **enumHeaderString** | **string** | Header parameter enum test (string) | [optional] [default to -efg] - **enumQueryStringArray** | [**array[string]**](string.md) | Query parameter enum test (string array) | [optional] + **enumQueryStringArray** | [**array[string]**](string.md) | Query parameter enum test (string array) | [optional] [default to null] **enumQueryString** | **string** | Query parameter enum test (string) | [optional] [default to -efg] - **enumQueryInteger** | **integer** | Query parameter enum test (double) | [optional] - **enumQueryDouble** | **float** | Query parameter enum test (double) | [optional] - **enumFormStringArray** | **array[string]** | Form parameter enum test (string array) | [optional] [default to $] + **enumQueryInteger** | **integer** | Query parameter enum test (double) | [optional] [default to null] + **enumQueryDouble** | **float** | Query parameter enum test (double) | [optional] [default to null] + **enumFormStringArray** | [**array[string]**](string.md) | Form parameter enum test (string array) | [optional] [default to $] **enumFormString** | **string** | Form parameter enum test (string) | [optional] [default to -efg] ### Return type @@ -295,25 +392,35 @@ No authorization required ### HTTP request headers - - **Content-Type**: application/x-www-form-urlencoded - - **Accept**: Not Applicable +- **Content-Type**: application/x-www-form-urlencoded +- **Accept**: Not Applicable [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -## **testInlineAdditionalProperties** -test inline additionalProperties +## testGroupParameters + +Fake endpoint to test group parameters (optional) + +Fake endpoint to test group parameters (optional) ### Example + ```bash -petstore-cli testInlineAdditionalProperties +petstore-cli testGroupParameters required_string_group=value required_boolean_group:value required_int64_group=value string_group=value boolean_group:value int64_group=value ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **requestBody** | [**map[String, string]**](string.md) | request body | + **requiredStringGroup** | **integer** | Required String in group parameters | [default to null] + **requiredBooleanGroup** | **boolean** | Required Boolean in group parameters | [default to null] + **requiredInt64Group** | **integer** | Required Integer in group parameters | [default to null] + **stringGroup** | **integer** | String in group parameters | [optional] [default to null] + **booleanGroup** | **boolean** | Boolean in group parameters | [optional] [default to null] + **int64Group** | **integer** | Integer in group parameters | [optional] [default to null] ### Return type @@ -325,22 +432,58 @@ No authorization required ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: Not Applicable +- **Content-Type**: Not Applicable +- **Accept**: Not Applicable [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -## **testJsonFormData** + +## testInlineAdditionalProperties + +test inline additionalProperties + +### Example + +```bash +petstore-cli testInlineAdditionalProperties +``` + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **param** | [**map[String, string]**](string.md) | request body | + +### Return type + +(empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: Not Applicable + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +## testJsonFormData test json serialization of form data ### Example + ```bash petstore-cli testJsonFormData ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **param** | **string** | field1 | [default to null] @@ -356,8 +499,8 @@ No authorization required ### HTTP request headers - - **Content-Type**: application/x-www-form-urlencoded - - **Accept**: Not Applicable +- **Content-Type**: application/x-www-form-urlencoded +- **Accept**: Not Applicable [[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/bash/docs/FakeClassnameTags123Api.md b/samples/client/petstore/bash/docs/FakeClassnameTags123Api.md index 6499a704868..19b3d386d38 100644 --- a/samples/client/petstore/bash/docs/FakeClassnameTags123Api.md +++ b/samples/client/petstore/bash/docs/FakeClassnameTags123Api.md @@ -7,22 +7,25 @@ Method | HTTP request | Description [**testClassname**](FakeClassnameTags123Api.md#testClassname) | **PATCH** /fake_classname_test | To test class name in snake case -## **testClassname** + +## testClassname To test class name in snake case To test class name in snake case ### Example + ```bash petstore-cli testClassname ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **client** | [**Client**](Client.md) | client model | + **body** | [**Client**](Client.md) | client model | ### Return type @@ -34,8 +37,8 @@ Name | Type | Description | Notes ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: application/json +- **Content-Type**: application/json +- **Accept**: application/json [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) diff --git a/samples/client/petstore/bash/docs/FileSchemaTestClass.md b/samples/client/petstore/bash/docs/FileSchemaTestClass.md new file mode 100644 index 00000000000..47de5903a44 --- /dev/null +++ b/samples/client/petstore/bash/docs/FileSchemaTestClass.md @@ -0,0 +1,11 @@ +# FileSchemaTestClass + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**file** | [**File**](File.md) | | [optional] [default to null] +**files** | [**array[File]**](File.md) | | [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/bash/docs/Foo.md b/samples/client/petstore/bash/docs/Foo.md new file mode 100644 index 00000000000..69ef867a797 --- /dev/null +++ b/samples/client/petstore/bash/docs/Foo.md @@ -0,0 +1,10 @@ +# Foo + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**bar** | **string** | | [optional] [default to bar] + +[[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/bash/docs/FormatTest.md b/samples/client/petstore/bash/docs/FormatTest.md new file mode 100644 index 00000000000..8f73bb59bbc --- /dev/null +++ b/samples/client/petstore/bash/docs/FormatTest.md @@ -0,0 +1,22 @@ +# format_test + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**integer** | **integer** | | [optional] [default to null] +**int32** | **integer** | | [optional] [default to null] +**int64** | **integer** | | [optional] [default to null] +**number** | **integer** | | [default to null] +**float** | **float** | | [optional] [default to null] +**double** | **float** | | [optional] [default to null] +**string** | **string** | | [optional] [default to null] +**byte** | **string** | | [default to null] +**binary** | **binary** | | [optional] [default to null] +**date** | **string** | | [default to null] +**dateTime** | **string** | | [optional] [default to null] +**uuid** | **string** | | [optional] [default to null] +**password** | **string** | | [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/bash/docs/HealthCheckResult.md b/samples/client/petstore/bash/docs/HealthCheckResult.md new file mode 100644 index 00000000000..fcfa835d21e --- /dev/null +++ b/samples/client/petstore/bash/docs/HealthCheckResult.md @@ -0,0 +1,10 @@ +# HealthCheckResult + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**NullableMessage** | **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/bash/docs/InlineObject.md b/samples/client/petstore/bash/docs/InlineObject.md new file mode 100644 index 00000000000..4606c548920 --- /dev/null +++ b/samples/client/petstore/bash/docs/InlineObject.md @@ -0,0 +1,11 @@ +# inline_object + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **string** | | [optional] [default to null] +**status** | **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/bash/docs/InlineObject1.md b/samples/client/petstore/bash/docs/InlineObject1.md new file mode 100644 index 00000000000..13ab3ed546d --- /dev/null +++ b/samples/client/petstore/bash/docs/InlineObject1.md @@ -0,0 +1,11 @@ +# inline_object_1 + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**additionalMetadata** | **string** | | [optional] [default to null] +**file** | **binary** | | [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/bash/docs/InlineObject2.md b/samples/client/petstore/bash/docs/InlineObject2.md new file mode 100644 index 00000000000..3ad0a1d2e0c --- /dev/null +++ b/samples/client/petstore/bash/docs/InlineObject2.md @@ -0,0 +1,11 @@ +# inline_object_2 + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**enumUnderscoreformUnderscorestringUnderscorearray** | **array[string]** | | [optional] [default to null] +**enumUnderscoreformUnderscorestring** | **string** | | [optional] [default to -efg] + +[[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/bash/docs/InlineObject3.md b/samples/client/petstore/bash/docs/InlineObject3.md new file mode 100644 index 00000000000..080c4051cc4 --- /dev/null +++ b/samples/client/petstore/bash/docs/InlineObject3.md @@ -0,0 +1,23 @@ +# inline_object_3 + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**integer** | **integer** | | [optional] [default to null] +**int32** | **integer** | | [optional] [default to null] +**int64** | **integer** | | [optional] [default to null] +**number** | **integer** | | [default to null] +**float** | **float** | | [optional] [default to null] +**double** | **float** | | [default to null] +**string** | **string** | | [optional] [default to null] +**patternUnderscorewithoutUnderscoredelimiter** | **string** | | [default to null] +**byte** | **string** | | [default to null] +**binary** | **binary** | | [optional] [default to null] +**date** | **string** | | [optional] [default to null] +**dateTime** | **string** | | [optional] [default to null] +**password** | **string** | | [optional] [default to null] +**callback** | **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/bash/docs/InlineObject4.md b/samples/client/petstore/bash/docs/InlineObject4.md new file mode 100644 index 00000000000..a75f87f5fef --- /dev/null +++ b/samples/client/petstore/bash/docs/InlineObject4.md @@ -0,0 +1,11 @@ +# inline_object_4 + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**param** | **string** | | [default to null] +**param2** | **string** | | [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/bash/docs/InlineObject5.md b/samples/client/petstore/bash/docs/InlineObject5.md new file mode 100644 index 00000000000..89121b040e2 --- /dev/null +++ b/samples/client/petstore/bash/docs/InlineObject5.md @@ -0,0 +1,11 @@ +# inline_object_5 + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**additionalMetadata** | **string** | | [optional] [default to null] +**requiredFile** | **binary** | | [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/bash/docs/InlineResponseDefault.md b/samples/client/petstore/bash/docs/InlineResponseDefault.md new file mode 100644 index 00000000000..ef6d219bac4 --- /dev/null +++ b/samples/client/petstore/bash/docs/InlineResponseDefault.md @@ -0,0 +1,10 @@ +# inline_response_default + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**string** | [**Foo**](Foo.md) | | [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/bash/docs/MapTest.md b/samples/client/petstore/bash/docs/MapTest.md index 31ca86b91c1..e4ed4a23382 100644 --- a/samples/client/petstore/bash/docs/MapTest.md +++ b/samples/client/petstore/bash/docs/MapTest.md @@ -3,8 +3,10 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**map_map_of_string** | **map[String, map[String, string]]** | | [optional] [default to null] -**map_of_enum_string** | **map[String, string]** | | [optional] [default to null] +**mapUnderscoremapUnderscoreofUnderscorestring** | **map[String, map[String, string]]** | | [optional] [default to null] +**mapUnderscoreofUnderscoreenumUnderscorestring** | **map[String, string]** | | [optional] [default to null] +**directUnderscoremap** | **map[String, boolean]** | | [optional] [default to null] +**indirectUnderscoremap** | **map[String, boolean]** | | [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/bash/docs/Name.md b/samples/client/petstore/bash/docs/Name.md index 8f59de26d01..5c3afc21594 100644 --- a/samples/client/petstore/bash/docs/Name.md +++ b/samples/client/petstore/bash/docs/Name.md @@ -4,7 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **name** | **integer** | | [default to null] -**snake_case** | **integer** | | [optional] [default to null] +**snakeUnderscorecase** | **integer** | | [optional] [default to null] **property** | **string** | | [optional] [default to null] **123Number** | **integer** | | [optional] [default to null] diff --git a/samples/client/petstore/bash/docs/NullableClass.md b/samples/client/petstore/bash/docs/NullableClass.md new file mode 100644 index 00000000000..8b85103f58f --- /dev/null +++ b/samples/client/petstore/bash/docs/NullableClass.md @@ -0,0 +1,21 @@ +# NullableClass + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**integerUnderscoreprop** | **integer** | | [optional] [default to null] +**numberUnderscoreprop** | **integer** | | [optional] [default to null] +**booleanUnderscoreprop** | **boolean** | | [optional] [default to null] +**stringUnderscoreprop** | **string** | | [optional] [default to null] +**dateUnderscoreprop** | **string** | | [optional] [default to null] +**datetimeUnderscoreprop** | **string** | | [optional] [default to null] +**arrayUnderscorenullableUnderscoreprop** | **array[map]** | | [optional] [default to null] +**arrayUnderscoreandUnderscoreitemsUnderscorenullableUnderscoreprop** | **array[map]** | | [optional] [default to null] +**arrayUnderscoreitemsUnderscorenullable** | **array[map]** | | [optional] [default to null] +**objectUnderscorenullableUnderscoreprop** | **map[String, map]** | | [optional] [default to null] +**objectUnderscoreandUnderscoreitemsUnderscorenullableUnderscoreprop** | **map[String, map]** | | [optional] [default to null] +**objectUnderscoreitemsUnderscorenullable** | **map[String, map]** | | [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/bash/docs/OuterComposite.md b/samples/client/petstore/bash/docs/OuterComposite.md index 2a4eb8388e8..afe7b21b8d7 100644 --- a/samples/client/petstore/bash/docs/OuterComposite.md +++ b/samples/client/petstore/bash/docs/OuterComposite.md @@ -3,9 +3,9 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**my_number** | **integer** | | [optional] [default to null] -**my_string** | **string** | | [optional] [default to null] -**my_boolean** | **boolean** | | [optional] [default to null] +**myUnderscorenumber** | **integer** | | [optional] [default to null] +**myUnderscorestring** | **string** | | [optional] [default to null] +**myUnderscoreboolean** | **boolean** | | [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/bash/docs/OuterEnumDefaultValue.md b/samples/client/petstore/bash/docs/OuterEnumDefaultValue.md new file mode 100644 index 00000000000..1487a710393 --- /dev/null +++ b/samples/client/petstore/bash/docs/OuterEnumDefaultValue.md @@ -0,0 +1,9 @@ +# OuterEnumDefaultValue + +## 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/bash/docs/OuterEnumInteger.md b/samples/client/petstore/bash/docs/OuterEnumInteger.md new file mode 100644 index 00000000000..8be15eee6a2 --- /dev/null +++ b/samples/client/petstore/bash/docs/OuterEnumInteger.md @@ -0,0 +1,9 @@ +# OuterEnumInteger + +## 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/bash/docs/OuterEnumIntegerDefaultValue.md b/samples/client/petstore/bash/docs/OuterEnumIntegerDefaultValue.md new file mode 100644 index 00000000000..27d962f106e --- /dev/null +++ b/samples/client/petstore/bash/docs/OuterEnumIntegerDefaultValue.md @@ -0,0 +1,9 @@ +# OuterEnumIntegerDefaultValue + +## 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/bash/docs/PetApi.md b/samples/client/petstore/bash/docs/PetApi.md index d9728a14ac7..32086308206 100644 --- a/samples/client/petstore/bash/docs/PetApi.md +++ b/samples/client/petstore/bash/docs/PetApi.md @@ -12,22 +12,26 @@ Method | HTTP request | Description [**updatePet**](PetApi.md#updatePet) | **PUT** /pet | Update an existing pet [**updatePetWithForm**](PetApi.md#updatePetWithForm) | **POST** /pet/{petId} | Updates a pet in the store with form data [**uploadFile**](PetApi.md#uploadFile) | **POST** /pet/{petId}/uploadImage | uploads an image +[**uploadFileWithRequiredFile**](PetApi.md#uploadFileWithRequiredFile) | **POST** /fake/{petId}/uploadImageWithRequiredFile | uploads an image (required) -## **addPet** + +## addPet Add a new pet to the store ### Example + ```bash petstore-cli addPet ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **pet** | [**Pet**](Pet.md) | Pet object that needs to be added to the store | + **body** | [**Pet**](Pet.md) | Pet object that needs to be added to the store | ### Return type @@ -39,26 +43,29 @@ Name | Type | Description | Notes ### HTTP request headers - - **Content-Type**: application/json, application/xml - - **Accept**: Not Applicable +- **Content-Type**: application/json, application/xml +- **Accept**: Not Applicable [[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 Deletes a pet ### Example + ```bash petstore-cli deletePet petId=value api_key:value ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **petId** | **integer** | Pet id to delete | - **apiKey** | **string** | | [optional] + **petId** | **integer** | Pet id to delete | [default to null] + **apiKey** | **string** | | [optional] [default to null] ### Return type @@ -70,27 +77,30 @@ Name | Type | Description | Notes ### HTTP request headers - - **Content-Type**: Not Applicable - - **Accept**: Not Applicable +- **Content-Type**: Not Applicable +- **Accept**: Not Applicable [[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** + +## findPetsByStatus Finds Pets by status Multiple status values can be provided with comma separated strings ### Example + ```bash petstore-cli findPetsByStatus Specify as: status="value1,value2,..." ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **status** | [**array[string]**](string.md) | Status values that need to be considered for filter | + **status** | [**array[string]**](string.md) | Status values that need to be considered for filter | [default to null] ### Return type @@ -102,27 +112,30 @@ Name | Type | Description | Notes ### HTTP request headers - - **Content-Type**: Not Applicable - - **Accept**: application/xml, application/json +- **Content-Type**: Not Applicable +- **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** + +## findPetsByTags Finds Pets by tags Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. ### Example + ```bash petstore-cli findPetsByTags Specify as: tags="value1,value2,..." ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **tags** | [**array[string]**](string.md) | Tags to filter by | + **tags** | [**array[string]**](string.md) | Tags to filter by | [default to null] ### Return type @@ -134,27 +147,30 @@ Name | Type | Description | Notes ### HTTP request headers - - **Content-Type**: Not Applicable - - **Accept**: application/xml, application/json +- **Content-Type**: Not Applicable +- **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** + +## getPetById Find pet by ID Returns a single pet ### Example + ```bash petstore-cli getPetById petId=value ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **petId** | **integer** | ID of pet to return | + **petId** | **integer** | ID of pet to return | [default to null] ### Return type @@ -166,25 +182,28 @@ Name | Type | Description | Notes ### HTTP request headers - - **Content-Type**: Not Applicable - - **Accept**: application/xml, application/json +- **Content-Type**: Not Applicable +- **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 Update an existing pet ### Example + ```bash petstore-cli updatePet ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **pet** | [**Pet**](Pet.md) | Pet object that needs to be added to the store | + **body** | [**Pet**](Pet.md) | Pet object that needs to be added to the store | ### Return type @@ -196,25 +215,28 @@ Name | Type | Description | Notes ### HTTP request headers - - **Content-Type**: application/json, application/xml - - **Accept**: Not Applicable +- **Content-Type**: application/json, application/xml +- **Accept**: Not Applicable [[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 Updates a pet in the store with form data ### Example + ```bash petstore-cli updatePetWithForm petId=value ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **petId** | **integer** | ID of pet that needs to be updated | + **petId** | **integer** | ID of pet that needs to be updated | [default to null] **name** | **string** | Updated name of the pet | [optional] [default to null] **status** | **string** | Updated status of the pet | [optional] [default to null] @@ -228,25 +250,28 @@ Name | Type | Description | Notes ### HTTP request headers - - **Content-Type**: application/x-www-form-urlencoded - - **Accept**: Not Applicable +- **Content-Type**: application/x-www-form-urlencoded +- **Accept**: Not Applicable [[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** + +## uploadFile uploads an image ### Example + ```bash petstore-cli uploadFile petId=value ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **petId** | **integer** | ID of pet to update | + **petId** | **integer** | ID of pet to update | [default to null] **additionalMetadata** | **string** | Additional data to pass to server | [optional] [default to null] **file** | **binary** | file to upload | [optional] [default to null] @@ -260,8 +285,43 @@ Name | Type | Description | Notes ### HTTP request headers - - **Content-Type**: multipart/form-data - - **Accept**: application/json +- **Content-Type**: multipart/form-data +- **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + + +## uploadFileWithRequiredFile + +uploads an image (required) + +### Example + +```bash +petstore-cli uploadFileWithRequiredFile petId=value +``` + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **petId** | **integer** | ID of pet to update | [default to null] + **requiredFile** | **binary** | file to upload | [default to null] + **additionalMetadata** | **string** | Additional data to pass to server | [optional] [default to null] + +### 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/bash/docs/SpecialModelName.md b/samples/client/petstore/bash/docs/SpecialModelName.md new file mode 100644 index 00000000000..0ba2b4da02d --- /dev/null +++ b/samples/client/petstore/bash/docs/SpecialModelName.md @@ -0,0 +1,10 @@ +# _special_model.name_ + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**DollarspecialLeft_Square_BracketpropertyPeriodnameRight_Square_Bracket** | **integer** | | [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/bash/docs/StoreApi.md b/samples/client/petstore/bash/docs/StoreApi.md index f7f5c324b05..56b2934562b 100644 --- a/samples/client/petstore/bash/docs/StoreApi.md +++ b/samples/client/petstore/bash/docs/StoreApi.md @@ -10,22 +10,25 @@ Method | HTTP request | Description [**placeOrder**](StoreApi.md#placeOrder) | **POST** /store/order | Place an order for a pet -## **deleteOrder** + +## deleteOrder Delete purchase order by ID For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors ### Example + ```bash petstore-cli deleteOrder order_id=value ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **orderId** | **string** | ID of the order that needs to be deleted | + **orderId** | **string** | ID of the order that needs to be deleted | [default to null] ### Return type @@ -37,23 +40,26 @@ No authorization required ### HTTP request headers - - **Content-Type**: Not Applicable - - **Accept**: Not Applicable +- **Content-Type**: Not Applicable +- **Accept**: Not Applicable [[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** + +## getInventory Returns pet inventories by status Returns a map of status codes to quantities ### Example + ```bash petstore-cli getInventory ``` ### Parameters + This endpoint does not need any parameter. ### Return type @@ -66,27 +72,30 @@ This endpoint does not need any parameter. ### HTTP request headers - - **Content-Type**: Not Applicable - - **Accept**: application/json +- **Content-Type**: Not Applicable +- **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** + +## getOrderById Find purchase order by ID For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions ### Example + ```bash petstore-cli getOrderById order_id=value ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **orderId** | **integer** | ID of pet that needs to be fetched | + **orderId** | **integer** | ID of pet that needs to be fetched | [default to null] ### Return type @@ -98,25 +107,28 @@ No authorization required ### HTTP request headers - - **Content-Type**: Not Applicable - - **Accept**: application/xml, application/json +- **Content-Type**: Not Applicable +- **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** + +## placeOrder Place an order for a pet ### Example + ```bash petstore-cli placeOrder ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **order** | [**Order**](Order.md) | order placed for purchasing the pet | + **body** | [**Order**](Order.md) | order placed for purchasing the pet | ### Return type @@ -128,8 +140,8 @@ No authorization required ### HTTP request headers - - **Content-Type**: Not Applicable - - **Accept**: application/xml, application/json +- **Content-Type**: Not Applicable +- **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/bash/docs/TypeHolderDefault.md b/samples/client/petstore/bash/docs/TypeHolderDefault.md new file mode 100644 index 00000000000..91c3f8fe015 --- /dev/null +++ b/samples/client/petstore/bash/docs/TypeHolderDefault.md @@ -0,0 +1,14 @@ +# TypeHolderDefault + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**stringUnderscoreitem** | **string** | | [default to what] +**numberUnderscoreitem** | **integer** | | [default to null] +**integerUnderscoreitem** | **integer** | | [default to null] +**boolUnderscoreitem** | **boolean** | | [default to true] +**arrayUnderscoreitem** | **array[integer]** | | [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/bash/docs/TypeHolderExample.md b/samples/client/petstore/bash/docs/TypeHolderExample.md new file mode 100644 index 00000000000..411eda40870 --- /dev/null +++ b/samples/client/petstore/bash/docs/TypeHolderExample.md @@ -0,0 +1,14 @@ +# TypeHolderExample + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**stringUnderscoreitem** | **string** | | [default to null] +**numberUnderscoreitem** | **integer** | | [default to null] +**integerUnderscoreitem** | **integer** | | [default to null] +**boolUnderscoreitem** | **boolean** | | [default to null] +**arrayUnderscoreitem** | **array[integer]** | | [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/bash/docs/UserApi.md b/samples/client/petstore/bash/docs/UserApi.md index 54a393a46be..9663a425b73 100644 --- a/samples/client/petstore/bash/docs/UserApi.md +++ b/samples/client/petstore/bash/docs/UserApi.md @@ -14,22 +14,25 @@ Method | HTTP request | Description [**updateUser**](UserApi.md#updateUser) | **PUT** /user/{username} | Updated user -## **createUser** + +## createUser Create user This can only be done by the logged in user. ### Example + ```bash petstore-cli createUser ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **user** | [**User**](User.md) | Created user object | + **body** | [**User**](User.md) | Created user object | ### Return type @@ -41,25 +44,28 @@ No authorization required ### HTTP request headers - - **Content-Type**: Not Applicable - - **Accept**: Not Applicable +- **Content-Type**: Not Applicable +- **Accept**: Not Applicable [[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 Creates list of users with given input array ### Example + ```bash petstore-cli createUsersWithArrayInput ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **user** | [**array[User]**](array.md) | List of user object | + **body** | [**array[User]**](User.md) | List of user object | ### Return type @@ -71,25 +77,28 @@ No authorization required ### HTTP request headers - - **Content-Type**: Not Applicable - - **Accept**: Not Applicable +- **Content-Type**: Not Applicable +- **Accept**: Not Applicable [[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 Creates list of users with given input array ### Example + ```bash petstore-cli createUsersWithListInput ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **user** | [**array[User]**](array.md) | List of user object | + **body** | [**array[User]**](User.md) | List of user object | ### Return type @@ -101,27 +110,30 @@ No authorization required ### HTTP request headers - - **Content-Type**: Not Applicable - - **Accept**: Not Applicable +- **Content-Type**: Not Applicable +- **Accept**: Not Applicable [[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 Delete user This can only be done by the logged in user. ### Example + ```bash petstore-cli deleteUser username=value ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **username** | **string** | The name that needs to be deleted | + **username** | **string** | The name that needs to be deleted | [default to null] ### Return type @@ -133,25 +145,28 @@ No authorization required ### HTTP request headers - - **Content-Type**: Not Applicable - - **Accept**: Not Applicable +- **Content-Type**: Not Applicable +- **Accept**: Not Applicable [[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** + +## getUserByName Get user by user name ### Example + ```bash petstore-cli getUserByName username=value ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **username** | **string** | The name that needs to be fetched. Use user1 for testing. | + **username** | **string** | The name that needs to be fetched. Use user1 for testing. | [default to null] ### Return type @@ -163,26 +178,29 @@ No authorization required ### HTTP request headers - - **Content-Type**: Not Applicable - - **Accept**: application/xml, application/json +- **Content-Type**: Not Applicable +- **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** + +## loginUser Logs user into the system ### Example + ```bash petstore-cli loginUser username=value password=value ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **username** | **string** | The user name for login | - **password** | **string** | The password for login in clear text | + **username** | **string** | The user name for login | [default to null] + **password** | **string** | The password for login in clear text | [default to null] ### Return type @@ -194,21 +212,24 @@ No authorization required ### HTTP request headers - - **Content-Type**: Not Applicable - - **Accept**: application/xml, application/json +- **Content-Type**: Not Applicable +- **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 + ```bash petstore-cli logoutUser ``` ### Parameters + This endpoint does not need any parameter. ### Return type @@ -221,28 +242,31 @@ No authorization required ### HTTP request headers - - **Content-Type**: Not Applicable - - **Accept**: Not Applicable +- **Content-Type**: Not Applicable +- **Accept**: Not Applicable [[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 Updated user This can only be done by the logged in user. ### Example + ```bash petstore-cli updateUser username=value ``` ### Parameters + Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **username** | **string** | name that need to be deleted | - **user** | [**User**](User.md) | Updated user object | + **username** | **string** | name that need to be deleted | [default to null] + **body** | [**User**](User.md) | Updated user object | ### Return type @@ -254,8 +278,8 @@ No authorization required ### HTTP request headers - - **Content-Type**: Not Applicable - - **Accept**: Not Applicable +- **Content-Type**: Not Applicable +- **Accept**: Not Applicable [[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/bash/docs/XmlItem.md b/samples/client/petstore/bash/docs/XmlItem.md new file mode 100644 index 00000000000..7f60d6cd52e --- /dev/null +++ b/samples/client/petstore/bash/docs/XmlItem.md @@ -0,0 +1,38 @@ +# XmlItem + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**attributeUnderscorestring** | **string** | | [optional] [default to null] +**attributeUnderscorenumber** | **integer** | | [optional] [default to null] +**attributeUnderscoreinteger** | **integer** | | [optional] [default to null] +**attributeUnderscoreboolean** | **boolean** | | [optional] [default to null] +**wrappedUnderscorearray** | **array[integer]** | | [optional] [default to null] +**nameUnderscorestring** | **string** | | [optional] [default to null] +**nameUnderscorenumber** | **integer** | | [optional] [default to null] +**nameUnderscoreinteger** | **integer** | | [optional] [default to null] +**nameUnderscoreboolean** | **boolean** | | [optional] [default to null] +**nameUnderscorearray** | **array[integer]** | | [optional] [default to null] +**nameUnderscorewrappedUnderscorearray** | **array[integer]** | | [optional] [default to null] +**prefixUnderscorestring** | **string** | | [optional] [default to null] +**prefixUnderscorenumber** | **integer** | | [optional] [default to null] +**prefixUnderscoreinteger** | **integer** | | [optional] [default to null] +**prefixUnderscoreboolean** | **boolean** | | [optional] [default to null] +**prefixUnderscorearray** | **array[integer]** | | [optional] [default to null] +**prefixUnderscorewrappedUnderscorearray** | **array[integer]** | | [optional] [default to null] +**namespaceUnderscorestring** | **string** | | [optional] [default to null] +**namespaceUnderscorenumber** | **integer** | | [optional] [default to null] +**namespaceUnderscoreinteger** | **integer** | | [optional] [default to null] +**namespaceUnderscoreboolean** | **boolean** | | [optional] [default to null] +**namespaceUnderscorearray** | **array[integer]** | | [optional] [default to null] +**namespaceUnderscorewrappedUnderscorearray** | **array[integer]** | | [optional] [default to null] +**prefixUnderscorensUnderscorestring** | **string** | | [optional] [default to null] +**prefixUnderscorensUnderscorenumber** | **integer** | | [optional] [default to null] +**prefixUnderscorensUnderscoreinteger** | **integer** | | [optional] [default to null] +**prefixUnderscorensUnderscoreboolean** | **boolean** | | [optional] [default to null] +**prefixUnderscorensUnderscorearray** | **array[integer]** | | [optional] [default to null] +**prefixUnderscorensUnderscorewrappedUnderscorearray** | **array[integer]** | | [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/bash/petstore-cli b/samples/client/petstore/bash/petstore-cli index b74ebf8b204..dabf7c50485 100755 --- a/samples/client/petstore/bash/petstore-cli +++ b/samples/client/petstore/bash/petstore-cli @@ -95,14 +95,16 @@ declare -a result_color_table=( "$WHITE" "$WHITE" "$GREEN" "$YELLOW" "$WHITE" "$ # 0 - optional # 1 - required declare -A operation_parameters_minimum_occurrences -operation_parameters_minimum_occurrences["testSpecialTags:::Client"]=1 +operation_parameters_minimum_occurrences["123Test@$%SpecialTags:::body"]=1 +operation_parameters_minimum_occurrences["createXmlItem:::XmlItem"]=1 operation_parameters_minimum_occurrences["fakeOuterBooleanSerialize:::body"]=0 -operation_parameters_minimum_occurrences["fakeOuterCompositeSerialize:::OuterComposite"]=0 +operation_parameters_minimum_occurrences["fakeOuterCompositeSerialize:::body"]=0 operation_parameters_minimum_occurrences["fakeOuterNumberSerialize:::body"]=0 operation_parameters_minimum_occurrences["fakeOuterStringSerialize:::body"]=0 +operation_parameters_minimum_occurrences["testBodyWithFileSchema:::body"]=1 operation_parameters_minimum_occurrences["testBodyWithQueryParams:::query"]=1 -operation_parameters_minimum_occurrences["testBodyWithQueryParams:::User"]=1 -operation_parameters_minimum_occurrences["testClientModel:::Client"]=1 +operation_parameters_minimum_occurrences["testBodyWithQueryParams:::body"]=1 +operation_parameters_minimum_occurrences["testClientModel:::body"]=1 operation_parameters_minimum_occurrences["testEndpointParameters:::number"]=1 operation_parameters_minimum_occurrences["testEndpointParameters:::double"]=1 operation_parameters_minimum_occurrences["testEndpointParameters:::pattern_without_delimiter"]=1 @@ -125,35 +127,44 @@ operation_parameters_minimum_occurrences["testEnumParameters:::enum_query_intege operation_parameters_minimum_occurrences["testEnumParameters:::enum_query_double"]=0 operation_parameters_minimum_occurrences["testEnumParameters:::enum_form_string_array"]=0 operation_parameters_minimum_occurrences["testEnumParameters:::enum_form_string"]=0 -operation_parameters_minimum_occurrences["testInlineAdditionalProperties:::request_body"]=1 +operation_parameters_minimum_occurrences["testGroupParameters:::required_string_group"]=1 +operation_parameters_minimum_occurrences["testGroupParameters:::required_boolean_group"]=1 +operation_parameters_minimum_occurrences["testGroupParameters:::required_int64_group"]=1 +operation_parameters_minimum_occurrences["testGroupParameters:::string_group"]=0 +operation_parameters_minimum_occurrences["testGroupParameters:::boolean_group"]=0 +operation_parameters_minimum_occurrences["testGroupParameters:::int64_group"]=0 +operation_parameters_minimum_occurrences["testInlineAdditionalProperties:::param"]=1 operation_parameters_minimum_occurrences["testJsonFormData:::param"]=1 operation_parameters_minimum_occurrences["testJsonFormData:::param2"]=1 -operation_parameters_minimum_occurrences["testClassname:::Client"]=1 -operation_parameters_minimum_occurrences["addPet:::Pet"]=1 +operation_parameters_minimum_occurrences["testClassname:::body"]=1 +operation_parameters_minimum_occurrences["addPet:::body"]=1 operation_parameters_minimum_occurrences["deletePet:::petId"]=1 operation_parameters_minimum_occurrences["deletePet:::api_key"]=0 operation_parameters_minimum_occurrences["findPetsByStatus:::status"]=1 operation_parameters_minimum_occurrences["findPetsByTags:::tags"]=1 operation_parameters_minimum_occurrences["getPetById:::petId"]=1 -operation_parameters_minimum_occurrences["updatePet:::Pet"]=1 +operation_parameters_minimum_occurrences["updatePet:::body"]=1 operation_parameters_minimum_occurrences["updatePetWithForm:::petId"]=1 operation_parameters_minimum_occurrences["updatePetWithForm:::name"]=0 operation_parameters_minimum_occurrences["updatePetWithForm:::status"]=0 operation_parameters_minimum_occurrences["uploadFile:::petId"]=1 operation_parameters_minimum_occurrences["uploadFile:::additionalMetadata"]=0 operation_parameters_minimum_occurrences["uploadFile:::file"]=0 +operation_parameters_minimum_occurrences["uploadFileWithRequiredFile:::petId"]=1 +operation_parameters_minimum_occurrences["uploadFileWithRequiredFile:::requiredFile"]=1 +operation_parameters_minimum_occurrences["uploadFileWithRequiredFile:::additionalMetadata"]=0 operation_parameters_minimum_occurrences["deleteOrder:::order_id"]=1 operation_parameters_minimum_occurrences["getOrderById:::order_id"]=1 -operation_parameters_minimum_occurrences["placeOrder:::Order"]=1 -operation_parameters_minimum_occurrences["createUser:::User"]=1 -operation_parameters_minimum_occurrences["createUsersWithArrayInput:::User"]=1 -operation_parameters_minimum_occurrences["createUsersWithListInput:::User"]=1 +operation_parameters_minimum_occurrences["placeOrder:::body"]=1 +operation_parameters_minimum_occurrences["createUser:::body"]=1 +operation_parameters_minimum_occurrences["createUsersWithArrayInput:::body"]=1 +operation_parameters_minimum_occurrences["createUsersWithListInput:::body"]=1 operation_parameters_minimum_occurrences["deleteUser:::username"]=1 operation_parameters_minimum_occurrences["getUserByName:::username"]=1 operation_parameters_minimum_occurrences["loginUser:::username"]=1 operation_parameters_minimum_occurrences["loginUser:::password"]=1 operation_parameters_minimum_occurrences["updateUser:::username"]=1 -operation_parameters_minimum_occurrences["updateUser:::User"]=1 +operation_parameters_minimum_occurrences["updateUser:::body"]=1 ## # This array stores the maximum number of allowed occurrences for parameter @@ -162,14 +173,16 @@ operation_parameters_minimum_occurrences["updateUser:::User"]=1 # N - N values # 0 - unlimited declare -A operation_parameters_maximum_occurrences -operation_parameters_maximum_occurrences["testSpecialTags:::Client"]=0 +operation_parameters_maximum_occurrences["123Test@$%SpecialTags:::body"]=0 +operation_parameters_maximum_occurrences["createXmlItem:::XmlItem"]=0 operation_parameters_maximum_occurrences["fakeOuterBooleanSerialize:::body"]=0 -operation_parameters_maximum_occurrences["fakeOuterCompositeSerialize:::OuterComposite"]=0 +operation_parameters_maximum_occurrences["fakeOuterCompositeSerialize:::body"]=0 operation_parameters_maximum_occurrences["fakeOuterNumberSerialize:::body"]=0 operation_parameters_maximum_occurrences["fakeOuterStringSerialize:::body"]=0 +operation_parameters_maximum_occurrences["testBodyWithFileSchema:::body"]=0 operation_parameters_maximum_occurrences["testBodyWithQueryParams:::query"]=0 -operation_parameters_maximum_occurrences["testBodyWithQueryParams:::User"]=0 -operation_parameters_maximum_occurrences["testClientModel:::Client"]=0 +operation_parameters_maximum_occurrences["testBodyWithQueryParams:::body"]=0 +operation_parameters_maximum_occurrences["testClientModel:::body"]=0 operation_parameters_maximum_occurrences["testEndpointParameters:::number"]=0 operation_parameters_maximum_occurrences["testEndpointParameters:::double"]=0 operation_parameters_maximum_occurrences["testEndpointParameters:::pattern_without_delimiter"]=0 @@ -192,48 +205,59 @@ operation_parameters_maximum_occurrences["testEnumParameters:::enum_query_intege operation_parameters_maximum_occurrences["testEnumParameters:::enum_query_double"]=0 operation_parameters_maximum_occurrences["testEnumParameters:::enum_form_string_array"]=0 operation_parameters_maximum_occurrences["testEnumParameters:::enum_form_string"]=0 -operation_parameters_maximum_occurrences["testInlineAdditionalProperties:::request_body"]=0 +operation_parameters_maximum_occurrences["testGroupParameters:::required_string_group"]=0 +operation_parameters_maximum_occurrences["testGroupParameters:::required_boolean_group"]=0 +operation_parameters_maximum_occurrences["testGroupParameters:::required_int64_group"]=0 +operation_parameters_maximum_occurrences["testGroupParameters:::string_group"]=0 +operation_parameters_maximum_occurrences["testGroupParameters:::boolean_group"]=0 +operation_parameters_maximum_occurrences["testGroupParameters:::int64_group"]=0 +operation_parameters_maximum_occurrences["testInlineAdditionalProperties:::param"]=0 operation_parameters_maximum_occurrences["testJsonFormData:::param"]=0 operation_parameters_maximum_occurrences["testJsonFormData:::param2"]=0 -operation_parameters_maximum_occurrences["testClassname:::Client"]=0 -operation_parameters_maximum_occurrences["addPet:::Pet"]=0 +operation_parameters_maximum_occurrences["testClassname:::body"]=0 +operation_parameters_maximum_occurrences["addPet:::body"]=0 operation_parameters_maximum_occurrences["deletePet:::petId"]=0 operation_parameters_maximum_occurrences["deletePet:::api_key"]=0 operation_parameters_maximum_occurrences["findPetsByStatus:::status"]=0 operation_parameters_maximum_occurrences["findPetsByTags:::tags"]=0 operation_parameters_maximum_occurrences["getPetById:::petId"]=0 -operation_parameters_maximum_occurrences["updatePet:::Pet"]=0 +operation_parameters_maximum_occurrences["updatePet:::body"]=0 operation_parameters_maximum_occurrences["updatePetWithForm:::petId"]=0 operation_parameters_maximum_occurrences["updatePetWithForm:::name"]=0 operation_parameters_maximum_occurrences["updatePetWithForm:::status"]=0 operation_parameters_maximum_occurrences["uploadFile:::petId"]=0 operation_parameters_maximum_occurrences["uploadFile:::additionalMetadata"]=0 operation_parameters_maximum_occurrences["uploadFile:::file"]=0 +operation_parameters_maximum_occurrences["uploadFileWithRequiredFile:::petId"]=0 +operation_parameters_maximum_occurrences["uploadFileWithRequiredFile:::requiredFile"]=0 +operation_parameters_maximum_occurrences["uploadFileWithRequiredFile:::additionalMetadata"]=0 operation_parameters_maximum_occurrences["deleteOrder:::order_id"]=0 operation_parameters_maximum_occurrences["getOrderById:::order_id"]=0 -operation_parameters_maximum_occurrences["placeOrder:::Order"]=0 -operation_parameters_maximum_occurrences["createUser:::User"]=0 -operation_parameters_maximum_occurrences["createUsersWithArrayInput:::User"]=0 -operation_parameters_maximum_occurrences["createUsersWithListInput:::User"]=0 +operation_parameters_maximum_occurrences["placeOrder:::body"]=0 +operation_parameters_maximum_occurrences["createUser:::body"]=0 +operation_parameters_maximum_occurrences["createUsersWithArrayInput:::body"]=0 +operation_parameters_maximum_occurrences["createUsersWithListInput:::body"]=0 operation_parameters_maximum_occurrences["deleteUser:::username"]=0 operation_parameters_maximum_occurrences["getUserByName:::username"]=0 operation_parameters_maximum_occurrences["loginUser:::username"]=0 operation_parameters_maximum_occurrences["loginUser:::password"]=0 operation_parameters_maximum_occurrences["updateUser:::username"]=0 -operation_parameters_maximum_occurrences["updateUser:::User"]=0 +operation_parameters_maximum_occurrences["updateUser:::body"]=0 ## # The type of collection for specifying multiple values for parameter: # - multi, csv, ssv, tsv declare -A operation_parameters_collection_type -operation_parameters_collection_type["testSpecialTags:::Client"]="" +operation_parameters_collection_type["123Test@$%SpecialTags:::body"]="" +operation_parameters_collection_type["createXmlItem:::XmlItem"]="" operation_parameters_collection_type["fakeOuterBooleanSerialize:::body"]="" -operation_parameters_collection_type["fakeOuterCompositeSerialize:::OuterComposite"]="" +operation_parameters_collection_type["fakeOuterCompositeSerialize:::body"]="" operation_parameters_collection_type["fakeOuterNumberSerialize:::body"]="" operation_parameters_collection_type["fakeOuterStringSerialize:::body"]="" +operation_parameters_collection_type["testBodyWithFileSchema:::body"]="" operation_parameters_collection_type["testBodyWithQueryParams:::query"]="" -operation_parameters_collection_type["testBodyWithQueryParams:::User"]="" -operation_parameters_collection_type["testClientModel:::Client"]="" +operation_parameters_collection_type["testBodyWithQueryParams:::body"]="" +operation_parameters_collection_type["testClientModel:::body"]="" operation_parameters_collection_type["testEndpointParameters:::number"]="" operation_parameters_collection_type["testEndpointParameters:::double"]="" operation_parameters_collection_type["testEndpointParameters:::pattern_without_delimiter"]="" @@ -256,35 +280,44 @@ operation_parameters_collection_type["testEnumParameters:::enum_query_integer"]= operation_parameters_collection_type["testEnumParameters:::enum_query_double"]="" operation_parameters_collection_type["testEnumParameters:::enum_form_string_array"]= operation_parameters_collection_type["testEnumParameters:::enum_form_string"]="" -operation_parameters_collection_type["testInlineAdditionalProperties:::request_body"]= +operation_parameters_collection_type["testGroupParameters:::required_string_group"]="" +operation_parameters_collection_type["testGroupParameters:::required_boolean_group"]="" +operation_parameters_collection_type["testGroupParameters:::required_int64_group"]="" +operation_parameters_collection_type["testGroupParameters:::string_group"]="" +operation_parameters_collection_type["testGroupParameters:::boolean_group"]="" +operation_parameters_collection_type["testGroupParameters:::int64_group"]="" +operation_parameters_collection_type["testInlineAdditionalProperties:::param"]= operation_parameters_collection_type["testJsonFormData:::param"]="" operation_parameters_collection_type["testJsonFormData:::param2"]="" -operation_parameters_collection_type["testClassname:::Client"]="" -operation_parameters_collection_type["addPet:::Pet"]="" +operation_parameters_collection_type["testClassname:::body"]="" +operation_parameters_collection_type["addPet:::body"]="" operation_parameters_collection_type["deletePet:::petId"]="" operation_parameters_collection_type["deletePet:::api_key"]="" operation_parameters_collection_type["findPetsByStatus:::status"]="csv" operation_parameters_collection_type["findPetsByTags:::tags"]="csv" operation_parameters_collection_type["getPetById:::petId"]="" -operation_parameters_collection_type["updatePet:::Pet"]="" +operation_parameters_collection_type["updatePet:::body"]="" operation_parameters_collection_type["updatePetWithForm:::petId"]="" operation_parameters_collection_type["updatePetWithForm:::name"]="" operation_parameters_collection_type["updatePetWithForm:::status"]="" operation_parameters_collection_type["uploadFile:::petId"]="" operation_parameters_collection_type["uploadFile:::additionalMetadata"]="" operation_parameters_collection_type["uploadFile:::file"]="" +operation_parameters_collection_type["uploadFileWithRequiredFile:::petId"]="" +operation_parameters_collection_type["uploadFileWithRequiredFile:::requiredFile"]="" +operation_parameters_collection_type["uploadFileWithRequiredFile:::additionalMetadata"]="" operation_parameters_collection_type["deleteOrder:::order_id"]="" operation_parameters_collection_type["getOrderById:::order_id"]="" -operation_parameters_collection_type["placeOrder:::Order"]="" -operation_parameters_collection_type["createUser:::User"]="" -operation_parameters_collection_type["createUsersWithArrayInput:::User"]= -operation_parameters_collection_type["createUsersWithListInput:::User"]= +operation_parameters_collection_type["placeOrder:::body"]="" +operation_parameters_collection_type["createUser:::body"]="" +operation_parameters_collection_type["createUsersWithArrayInput:::body"]= +operation_parameters_collection_type["createUsersWithListInput:::body"]= operation_parameters_collection_type["deleteUser:::username"]="" operation_parameters_collection_type["getUserByName:::username"]="" operation_parameters_collection_type["loginUser:::username"]="" operation_parameters_collection_type["loginUser:::password"]="" operation_parameters_collection_type["updateUser:::username"]="" -operation_parameters_collection_type["updateUser:::User"]="" +operation_parameters_collection_type["updateUser:::body"]="" ## @@ -527,18 +560,16 @@ build_request_path() { local query_request_part="" - local count=0 for qparam in "${query_params[@]}"; do + if [[ "${operation_parameters[$qparam]}" == "" ]]; then + continue + fi + # Get the array of parameter values local parameter_value="" local parameter_values mapfile -t parameter_values < <(sed -e 's/'":::"'/\n/g' <<<"${operation_parameters[$qparam]}") - if [[ -n "${parameter_values[*]}" ]]; then - if [[ $((count++)) -gt 0 ]]; then - query_request_part+="&" - fi - fi if [[ ${qparam} == "api_key_query" ]]; then if [[ -n "${parameter_values[*]}" ]]; then @@ -617,6 +648,9 @@ build_request_path() { fi if [[ -n "${parameter_value}" ]]; then + if [[ -n "${query_request_part}" ]]; then + query_request_part+="&" + fi query_request_part+="${parameter_value}" fi @@ -687,16 +721,18 @@ EOF echo "" echo -e "${BOLD}${WHITE}[anotherFake]${OFF}" read -r -d '' ops < 10. Other values will generated exceptions" | paste -sd' ' | fold -sw 80 echo -e "" echo -e "${BOLD}${WHITE}Parameters${OFF}" - echo -e " * ${GREEN}order_id${OFF} ${BLUE}[integer]${OFF} ${RED}(required)${OFF}${OFF} - ID of pet that needs to be fetched ${YELLOW}Specify as: order_id=value${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e " * ${GREEN}order_id${OFF} ${BLUE}[integer]${OFF} ${RED}(required)${OFF} ${CYAN}(default: null)${OFF} - ID of pet that needs to be fetched ${YELLOW}Specify as: order_id=value${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' echo "" echo -e "${BOLD}${WHITE}Responses${OFF}" code=200 @@ -1331,7 +1456,7 @@ print_deleteUser_help() { echo -e "This can only be done by the logged in user." | paste -sd' ' | fold -sw 80 echo -e "" echo -e "${BOLD}${WHITE}Parameters${OFF}" - echo -e " * ${GREEN}username${OFF} ${BLUE}[string]${OFF} ${RED}(required)${OFF}${OFF} - The name that needs to be deleted ${YELLOW}Specify as: username=value${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e " * ${GREEN}username${OFF} ${BLUE}[string]${OFF} ${RED}(required)${OFF} ${CYAN}(default: null)${OFF} - The name that needs to be deleted ${YELLOW}Specify as: username=value${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' echo "" echo -e "${BOLD}${WHITE}Responses${OFF}" code=400 @@ -1349,7 +1474,7 @@ print_getUserByName_help() { echo -e "${BOLD}${WHITE}getUserByName - Get user by user name${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' echo -e "" echo -e "${BOLD}${WHITE}Parameters${OFF}" - echo -e " * ${GREEN}username${OFF} ${BLUE}[string]${OFF} ${RED}(required)${OFF}${OFF} - The name that needs to be fetched. Use user1 for testing. ${YELLOW}Specify as: username=value${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e " * ${GREEN}username${OFF} ${BLUE}[string]${OFF} ${RED}(required)${OFF} ${CYAN}(default: null)${OFF} - The name that needs to be fetched. Use user1 for testing. ${YELLOW}Specify as: username=value${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' echo "" echo -e "${BOLD}${WHITE}Responses${OFF}" code=200 @@ -1369,9 +1494,9 @@ print_loginUser_help() { echo -e "${BOLD}${WHITE}loginUser - Logs user into the system${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' echo -e "" echo -e "${BOLD}${WHITE}Parameters${OFF}" - echo -e " * ${GREEN}username${OFF} ${BLUE}[string]${OFF} ${RED}(required)${OFF}${OFF} - The user name for login${YELLOW} Specify as: username=value${OFF}" \ + echo -e " * ${GREEN}username${OFF} ${BLUE}[string]${OFF} ${RED}(required)${OFF} ${CYAN}(default: null)${OFF} - The user name for login${YELLOW} Specify as: username=value${OFF}" \ | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' - echo -e " * ${GREEN}password${OFF} ${BLUE}[string]${OFF} ${RED}(required)${OFF}${OFF} - The password for login in clear text${YELLOW} Specify as: password=value${OFF}" \ + echo -e " * ${GREEN}password${OFF} ${BLUE}[string]${OFF} ${RED}(required)${OFF} ${CYAN}(default: null)${OFF} - The password for login in clear text${YELLOW} Specify as: password=value${OFF}" \ | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' echo "" echo -e "${BOLD}${WHITE}Responses${OFF}" @@ -1409,7 +1534,7 @@ print_updateUser_help() { echo -e "This can only be done by the logged in user." | paste -sd' ' | fold -sw 80 echo -e "" echo -e "${BOLD}${WHITE}Parameters${OFF}" - echo -e " * ${GREEN}username${OFF} ${BLUE}[string]${OFF} ${RED}(required)${OFF}${OFF} - name that need to be deleted ${YELLOW}Specify as: username=value${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' + echo -e " * ${GREEN}username${OFF} ${BLUE}[string]${OFF} ${RED}(required)${OFF} ${CYAN}(default: null)${OFF} - name that need to be deleted ${YELLOW}Specify as: username=value${OFF}" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' echo -e " * ${GREEN}body${OFF} ${BLUE}[]${OFF} ${RED}(required)${OFF}${OFF} - Updated user object" | paste -sd' ' | fold -sw 80 | sed '2,$s/^/ /' echo -e "" echo "" @@ -1423,10 +1548,10 @@ print_updateUser_help() { ############################################################################## # -# Call testSpecialTags operation +# Call 123Test@$%SpecialTags operation # ############################################################################## -call_testSpecialTags() { +call_123Test@$%SpecialTags() { # ignore error about 'path_parameter_names' being unused; passed by reference # shellcheck disable=SC2034 local path_parameter_names=() @@ -1499,6 +1624,86 @@ call_testSpecialTags() { fi } +############################################################################## +# +# Call createXmlItem operation +# +############################################################################## +call_createXmlItem() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/fake/create_xml_item" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="POST" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + local body_json_curl="" + + # + # Check if the user provided 'Content-type' headers in the + # command line. If not try to set them based on the OpenAPI specification + # if values produces and consumes are defined unambigously + # + + + if [[ -z $header_content_type && "$force" = false ]]; then + : + echo "ERROR: Request's content-type not specified!!!" + echo "This operation expects content-type in one of the following formats:" + echo -e "\\t- application/xml" + echo -e "\\t- application/xml; charset=utf-8" + echo -e "\\t- application/xml; charset=utf-16" + echo -e "\\t- text/xml" + echo -e "\\t- text/xml; charset=utf-8" + echo -e "\\t- text/xml; charset=utf-16" + echo "" + echo "Use '--content-type' to set proper content type" + exit 1 + else + headers_curl="${headers_curl} -H 'Content-type: ${header_content_type}'" + fi + + + # + # If we have received some body content over pipe, pass it from the + # temporary file to cURL + # + if [[ -n $body_content_temp_file ]]; then + if [[ "$print_curl" = true ]]; then + echo "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + else + eval "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + fi + rm "${body_content_temp_file}" + # + # If not, try to build the content body from arguments KEY==VALUE and KEY:=VALUE + # + else + body_json_curl=$(body_parameters_to_json) + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + fi + fi +} + ############################################################################## # # Call fakeOuterBooleanSerialize operation @@ -1775,6 +1980,84 @@ call_fakeOuterStringSerialize() { fi } +############################################################################## +# +# Call testBodyWithFileSchema operation +# +############################################################################## +call_testBodyWithFileSchema() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=() + local path + + if ! path=$(build_request_path "/v2/fake/body-with-file-schema" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="PUT" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + local body_json_curl="" + + # + # Check if the user provided 'Content-type' headers in the + # command line. If not try to set them based on the OpenAPI specification + # if values produces and consumes are defined unambigously + # + if [[ -z $header_content_type ]]; then + header_content_type="application/json" + fi + + + if [[ -z $header_content_type && "$force" = false ]]; then + : + echo "ERROR: Request's content-type not specified!!!" + echo "This operation expects content-type in one of the following formats:" + echo -e "\\t- application/json" + echo "" + echo "Use '--content-type' to set proper content type" + exit 1 + else + headers_curl="${headers_curl} -H 'Content-type: ${header_content_type}'" + fi + + + # + # If we have received some body content over pipe, pass it from the + # temporary file to cURL + # + if [[ -n $body_content_temp_file ]]; then + if [[ "$print_curl" = true ]]; then + echo "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + else + eval "cat ${body_content_temp_file} | curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\" -d @-" + fi + rm "${body_content_temp_file}" + # + # If not, try to build the content body from arguments KEY==VALUE and KEY:=VALUE + # + else + body_json_curl=$(body_parameters_to_json) + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} ${body_json_curl} \"${host}${path}\"" + fi + fi +} + ############################################################################## # # Call testBodyWithQueryParams operation @@ -2003,6 +2286,42 @@ call_testEnumParameters() { fi } +############################################################################## +# +# Call testGroupParameters operation +# +############################################################################## +call_testGroupParameters() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=() + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=(required_string_group required_int64_group string_group int64_group) + local path + + if ! path=$(build_request_path "/v2/fake" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="DELETE" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + ############################################################################## # # Call testInlineAdditionalProperties operation @@ -2563,6 +2882,42 @@ call_uploadFile() { fi } +############################################################################## +# +# Call uploadFileWithRequiredFile operation +# +############################################################################## +call_uploadFileWithRequiredFile() { + # ignore error about 'path_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local path_parameter_names=(petId) + # ignore error about 'query_parameter_names' being unused; passed by reference + # shellcheck disable=SC2034 + local query_parameter_names=( ) + local path + + if ! path=$(build_request_path "/v2/fake/{petId}/uploadImageWithRequiredFile" path_parameter_names query_parameter_names); then + ERROR_MSG=$path + exit 1 + fi + local method="POST" + local headers_curl + headers_curl=$(header_arguments_to_curl) + if [[ -n $header_accept ]]; then + headers_curl="${headers_curl} -H 'Accept: ${header_accept}'" + fi + + local basic_auth_option="" + if [[ -n $basic_auth_credential ]]; then + basic_auth_option="-u ${basic_auth_credential}" + fi + if [[ "$print_curl" = true ]]; then + echo "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + else + eval "curl ${basic_auth_option} ${curl_arguments} ${headers_curl} -X ${method} \"${host}${path}\"" + fi +} + ############################################################################## # # Call deleteOrder operation @@ -3257,8 +3612,11 @@ case $key in OFF="" result_color_table=( "" "" "" "" "" "" "" ) ;; - testSpecialTags) - operation="testSpecialTags" + 123Test@$%SpecialTags) + operation="123Test@$%SpecialTags" + ;; + createXmlItem) + operation="createXmlItem" ;; fakeOuterBooleanSerialize) operation="fakeOuterBooleanSerialize" @@ -3272,6 +3630,9 @@ case $key in fakeOuterStringSerialize) operation="fakeOuterStringSerialize" ;; + testBodyWithFileSchema) + operation="testBodyWithFileSchema" + ;; testBodyWithQueryParams) operation="testBodyWithQueryParams" ;; @@ -3284,6 +3645,9 @@ case $key in testEnumParameters) operation="testEnumParameters" ;; + testGroupParameters) + operation="testGroupParameters" + ;; testInlineAdditionalProperties) operation="testInlineAdditionalProperties" ;; @@ -3317,6 +3681,9 @@ case $key in uploadFile) operation="uploadFile" ;; + uploadFileWithRequiredFile) + operation="uploadFileWithRequiredFile" + ;; deleteOrder) operation="deleteOrder" ;; @@ -3437,8 +3804,11 @@ fi # Run cURL command based on the operation ID case $operation in - testSpecialTags) - call_testSpecialTags + 123Test@$%SpecialTags) + call_123Test@$%SpecialTags + ;; + createXmlItem) + call_createXmlItem ;; fakeOuterBooleanSerialize) call_fakeOuterBooleanSerialize @@ -3452,6 +3822,9 @@ case $operation in fakeOuterStringSerialize) call_fakeOuterStringSerialize ;; + testBodyWithFileSchema) + call_testBodyWithFileSchema + ;; testBodyWithQueryParams) call_testBodyWithQueryParams ;; @@ -3464,6 +3837,9 @@ case $operation in testEnumParameters) call_testEnumParameters ;; + testGroupParameters) + call_testGroupParameters + ;; testInlineAdditionalProperties) call_testInlineAdditionalProperties ;; @@ -3497,6 +3873,9 @@ case $operation in uploadFile) call_uploadFile ;; + uploadFileWithRequiredFile) + call_uploadFileWithRequiredFile + ;; deleteOrder) call_deleteOrder ;; diff --git a/samples/client/petstore/bash/petstore-cli.bash-completion b/samples/client/petstore/bash/petstore-cli.bash-completion index 872c13b683c..d65b8a8efff 100644 --- a/samples/client/petstore/bash/petstore-cli.bash-completion +++ b/samples/client/petstore/bash/petstore-cli.bash-completion @@ -68,15 +68,18 @@ _petstore-cli() # The list of available operation in the REST service # It's modelled as an associative array for efficient key lookup declare -A operations - operations["testSpecialTags"]=1 + operations["123Test@$%SpecialTags"]=1 + operations["createXmlItem"]=1 operations["fakeOuterBooleanSerialize"]=1 operations["fakeOuterCompositeSerialize"]=1 operations["fakeOuterNumberSerialize"]=1 operations["fakeOuterStringSerialize"]=1 + operations["testBodyWithFileSchema"]=1 operations["testBodyWithQueryParams"]=1 operations["testClientModel"]=1 operations["testEndpointParameters"]=1 operations["testEnumParameters"]=1 + operations["testGroupParameters"]=1 operations["testInlineAdditionalProperties"]=1 operations["testJsonFormData"]=1 operations["testClassname"]=1 @@ -88,6 +91,7 @@ _petstore-cli() operations["updatePet"]=1 operations["updatePetWithForm"]=1 operations["uploadFile"]=1 + operations["uploadFileWithRequiredFile"]=1 operations["deleteOrder"]=1 operations["getInventory"]=1 operations["getOrderById"]=1 @@ -104,15 +108,18 @@ _petstore-cli() # An associative array of operations to their parameters # Only include path, query and header parameters declare -A operation_parameters - operation_parameters["testSpecialTags"]="" + operation_parameters["123Test@$%SpecialTags"]="" + operation_parameters["createXmlItem"]="" operation_parameters["fakeOuterBooleanSerialize"]="" operation_parameters["fakeOuterCompositeSerialize"]="" operation_parameters["fakeOuterNumberSerialize"]="" operation_parameters["fakeOuterStringSerialize"]="" + operation_parameters["testBodyWithFileSchema"]="" operation_parameters["testBodyWithQueryParams"]="query= " operation_parameters["testClientModel"]="" operation_parameters["testEndpointParameters"]="" operation_parameters["testEnumParameters"]="enum_query_string_array= enum_query_string= enum_query_integer= enum_query_double= enum_header_string_array: enum_header_string: " + operation_parameters["testGroupParameters"]="required_string_group= required_int64_group= string_group= int64_group= required_boolean_group: boolean_group: " operation_parameters["testInlineAdditionalProperties"]="" operation_parameters["testJsonFormData"]="" operation_parameters["testClassname"]="" @@ -124,6 +131,7 @@ _petstore-cli() operation_parameters["updatePet"]="" operation_parameters["updatePetWithForm"]="petId= " operation_parameters["uploadFile"]="petId= " + operation_parameters["uploadFileWithRequiredFile"]="petId= " operation_parameters["deleteOrder"]="order_id= " operation_parameters["getInventory"]="" operation_parameters["getOrderById"]="order_id= " @@ -139,6 +147,18 @@ _petstore-cli() # An associative array of possible values for enum parameters declare -A operation_parameters_enum_values + operation_parameters_enum_values["testGroupParameters::required_boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::required_boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::required_boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::required_boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::required_boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::required_boolean_group"]="true false" + operation_parameters_enum_values["testGroupParameters::boolean_group"]="true false" # # Check if this is OSX and use special __osx_init_completion function