diff --git a/samples/client/petstore/bash/_client.sh b/samples/client/petstore/bash/_client.sh deleted file mode 100644 index 8be68229c3db..000000000000 --- a/samples/client/petstore/bash/_client.sh +++ /dev/null @@ -1,594 +0,0 @@ -#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/client.sh b/samples/client/petstore/bash/client.sh deleted file mode 100644 index 218bee799637..000000000000 --- a/samples/client/petstore/bash/client.sh +++ /dev/null @@ -1,4003 +0,0 @@ -#!/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: -# https://www.apache.org/licenses/LICENSE-2.0.html -# -# CONTACT: -# -# -# MORE INFORMATION: -# -# - -# For improved pattern matching in case statements -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 autodetection 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 'multi' 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 autodetected" - 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 generate 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 unambiguously - # - 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 unambiguously - # - 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 unambiguously - # - 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 unambiguously - # - 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 unambiguously - # - 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 unambiguously - # - 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 unambiguously - # - 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 unambiguously - # - 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 unambiguously - # - 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 unambiguously - # - 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 unambiguously - # - - - 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 unambiguously - # - - - 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 unambiguously - # - 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 unambiguously - # - 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 unambiguously - # - 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 unambiguously - # - 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 unambiguously - # - 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 quotes - 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 deleted file mode 100644 index f099fa5897a6..000000000000 --- a/samples/client/petstore/bash/client.sh.bash-completion +++ /dev/null @@ -1,326 +0,0 @@ -# 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