Hi @rogersonra ,
Many thanks for taking time to reply. The Denodo software (middleware) created the swagger json file. I then created the custom connector from it. Here it is:
swagger: '2.0'
info: {description: 'This web service provides operations on these Virtual DataPort
views:
* "ccpb_main"."dv_google_employee_details"
*Additional information about Denodo Web Services can be found in [the documentation](https://community.denodo.com/docs/html/browse/7.0/vdp/administration/restful_architecture/restful_web_service/restful_web_service)*',
version: 1.0.0, title: restapi_google_employee_details}
host: 192.168.135.60:9090
basePath: /server/ccpb_reporting/restapi_google_employee_details
schemes: [http]
consumes: []
produces: []
paths:
/views/dv_google_employee_details/$xsd:
get:
tags: [dv_google_employee_details]
description: Returns the XSD describing the output of view dv_google_employee_details.
It contains the published fields and types of the view. The names of the fields
are as they appear in the web service, not in the view (they may have been
renamed in the web service's configuration)
operationId: xsd_dv_google_employee_details
produces: [application/xml; charset=UTF-8; subtype=denodo-7.0]
parameters:
- {$ref: '#/parameters/user_agent_header_parameter'}
responses:
'200':
description: Success
schema: {$ref: '#/definitions/dv_google_employee_details_xsd_def'}
'400': {description: Bad request}
'401': {description: Authentication failed}
'403': {description: Insufficient permissions to perform this request}
'500': {description: Runtime error}
/views/dv_google_employee_details/$count:
get:
tags: [dv_google_employee_details]
description: Returns the number of rows returned by a query to view dv_google_employee_details
operationId: count_dv_google_employee_details
produces: [text/html; charset=UTF-8; subtype=denodo-7.0, text/plain]
parameters:
- {$ref: '#/parameters/count_parameter'}
- {$ref: '#/parameters/display_restful_references_parameter'}
- {$ref: '#/parameters/expand_parameter'}
- {$ref: '#/parameters/filter_parameter'}
- {$ref: '#/parameters/format_parameter'}
- {$ref: '#/parameters/group_by_parameter'}
- {$ref: '#/parameters/having_parameter'}
- {$ref: '#/parameters/jsoncallback_parameter'}
- {$ref: '#/parameters/noescape_html_parameter'}
- {$ref: '#/parameters/order_by_parameter'}
- {$ref: '#/parameters/select_parameter'}
- {$ref: '#/parameters/start_index_parameter'}
- {$ref: '#/parameters/user_agent_header_parameter'}
responses:
'200':
description: Success
schema: {type: integer, format: int64}
'204': {description: No results were returned}
'400': {description: Bad request}
'401': {description: Authentication failed}
'403': {description: Insufficient permissions to perform this request}
'500': {description: Runtime error}
/views/dv_google_employee_details:
get:
tags: [dv_google_employee_details]
description: Returns values of view dv_google_employee_details
operationId: queryView_dv_google_employee_details
produces: [application/json; charset=UTF-8; subtype=denodo-7.0, text/html; charset=UTF-8;
subtype=denodo-7.0, application/xml; charset=UTF-8; subtype=denodo-7.0]
parameters:
- {$ref: '#/parameters/count_parameter'}
- {$ref: '#/parameters/display_restful_references_parameter'}
- {$ref: '#/parameters/expand_parameter'}
- {$ref: '#/parameters/filter_parameter'}
- {$ref: '#/parameters/format_parameter'}
- {$ref: '#/parameters/group_by_parameter'}
- {$ref: '#/parameters/having_parameter'}
- {$ref: '#/parameters/jsoncallback_parameter'}
- {$ref: '#/parameters/noescape_html_parameter'}
- {$ref: '#/parameters/order_by_parameter'}
- {$ref: '#/parameters/select_parameter'}
- {$ref: '#/parameters/start_index_parameter'}
- {$ref: '#/parameters/user_agent_header_parameter'}
responses:
'200':
description: Success
schema: {$ref: '#/definitions/dv_google_employee_details_response_def'}
'204': {description: No results were returned}
'400': {description: Bad request}
'401': {description: Authentication failed}
'403': {description: Insufficient permissions to perform this request}
'500': {description: Runtime error}
post:
tags: [dv_google_employee_details]
description: Inserts a new row on view dv_google_employee_details
operationId: insertResource_dv_google_employee_details
consumes: [application/json, application/xml]
produces: [application/json, application/xml]
parameters:
- {$ref: '#/parameters/user_agent_header_parameter'}
- in: body
name: New element
required: false
schema: {$ref: '#/definitions/dv_google_employee_details_element_post_def'}
responses:
'201': {description: Success}
'400': {description: Bad request}
'401': {description: Authentication failed}
'403': {description: Insufficient permissions to perform this request}
'500': {description: Runtime error}
/views/dv_google_employee_details/$metadata:
get:
tags: [dv_google_employee_details]
description: Returns the metadata of view dv_google_employee_details. This includes
the description of the view and the URLs to retrieve its schema and its associations.
operationId: metadata_dv_google_employee_details
produces: [application/json; charset=UTF-8; subtype=denodo-7.0, application/xml;
charset=UTF-8; subtype=denodo-7.0]
parameters:
- {$ref: '#/parameters/reduced_format_parameter'}
- {$ref: '#/parameters/user_agent_header_parameter'}
responses:
'200':
description: Success
schema: {$ref: '#/definitions/dv_google_employee_details_metadata_def'}
'400': {description: Bad request}
'401': {description: Authentication failed}
'403': {description: Insufficient permissions to perform this request}
'500': {description: Runtime error}
/views/dv_google_employee_details/$schema:
get:
tags: [dv_google_employee_details]
description: Returns the schema of view dv_google_employee_details. This a list
of the published fields and types of the view. The names of the fields are
as they appear in the web service, not in the view (they may have been renamed
in the web service's configuration)
operationId: schema_dv_google_employee_details
produces: [application/json; charset=UTF-8; subtype=denodo-7.0, application/xml;
charset=UTF-8; subtype=denodo-7.0]
parameters:
- {$ref: '#/parameters/user_agent_header_parameter'}
responses:
'200':
description: Success
schema: {$ref: '#/definitions/dv_google_employee_details_schema_def'}
'400': {description: Bad request}
'401': {description: Authentication failed}
'403': {description: Insufficient permissions to perform this request}
'500': {description: Runtime error}
/views/dv_google_employee_details/$associations:
get:
tags: [dv_google_employee_details]
description: Returns the metadata of the associations related to view dv_google_employee_details
that are published with the service
operationId: associations_dv_google_employee_detailsdv_google_employee_details
produces: [application/json; charset=UTF-8; subtype=denodo-7.0, application/xml;
charset=UTF-8; subtype=denodo-7.0]
parameters:
- {$ref: '#/parameters/reduced_format_parameter'}
- {$ref: '#/parameters/user_agent_header_parameter'}
responses:
'200':
description: Success
schema: {$ref: '#/definitions/associations_def'}
'400': {description: Bad request}
'401': {description: Authentication failed}
'403': {description: Insufficient permissions to perform this request}
'500': {description: Runtime error}
definitions:
links_def:
required: [href, rel]
properties:
rel:
type: string
xml: {attribute: true}
href:
type: string
xml: {attribute: true}
title:
type: string
xml: {attribute: true}
type:
type: string
xml: {attribute: true}
description: MIME type of a blob
xml: {name: link, namespace: 'http://www.w3.org/2005/Atom'}
associations_def:
properties:
view-name:
type: string
xml: {attribute: true}
description: Virtual DataPort view name
association-metadata:
type: string
items:
type: object
properties:
endpoints:
type: string
items:
type: object
xml: {name: endpoint}
properties:
multiplicity:
type: string
xml: {attribute: true}
description: Multiplicity at this end point
enum: ['0,1', '1', '0,*', +]
principal:
type: boolean
xml: {attribute: true}
description: Whether this end point is principal or dependent
role-description:
type: string
xml: {attribute: true}
description: Role description
role-name:
type: string
xml: {attribute: true}
description: Role name at this endpoint
view-name:
type: string
xml: {attribute: true}
description: Virtual DataPort view name at this end point
link: {$ref: '#/definitions/links_def'}
name:
type: string
xml: {attribute: true}
description: Association name
referential-constraint:
type: boolean
xml: {attribute: true}
description: Whether this association defines a referential constraint
or not
link: {$ref: '#/definitions/links_def'}
xml: {name: view-associations, namespace: 'http://www.denodo.com/restful'}
dv_google_employee_details_element_def:
properties:
employee_number: {type: integer, format: int32, description: 'Virtual DataPort
type: int'}
surname: {type: string, description: 'Virtual DataPort type: text'}
first_name: {type: string, description: 'Virtual DataPort type: text'}
centre_code: {type: string, description: 'Virtual DataPort type: text'}
centre_name: {type: string, description: 'Virtual DataPort type: text'}
department_code: {type: string, description: 'Virtual DataPort type: text'}
department_name: {type: string, description: 'Virtual DataPort type: text'}
personnelareatext_0: {type: string, description: 'Virtual DataPort type: text'}
plant_code: {type: string, description: 'Virtual DataPort type: text'}
plant: {type: string, description: 'Virtual DataPort type: text'}
links:
type: array
items: {$ref: '#/definitions/links_def'}
description: Extended schema of view dv_google_employee_details
xml: {name: dv_google_employee_details, namespace: 'http://www.denodo.com/restful/ccpb_main/views/dv_google_employee_details'}
dv_google_employee_details_element_post_def:
properties:
employee_number: {type: integer, format: int32, description: 'Virtual DataPort
type: int'}
surname: {type: string, description: 'Virtual DataPort type: text'}
first_name: {type: string, description: 'Virtual DataPort type: text'}
centre_code: {type: string, description: 'Virtual DataPort type: text'}
centre_name: {type: string, description: 'Virtual DataPort type: text'}
department_code: {type: string, description: 'Virtual DataPort type: text'}
department_name: {type: string, description: 'Virtual DataPort type: text'}
personnelareatext_0: {type: string, description: 'Virtual DataPort type: text'}
plant_code: {type: string, description: 'Virtual DataPort type: text'}
plant: {type: string, description: 'Virtual DataPort type: text'}
description: Schema of view dv_google_employee_details as required by POST requests
xml: {name: dv_google_employee_details, namespace: 'http://www.denodo.com/restful/ccpb_main/views/dv_google_employee_details'}
dv_google_employee_details_element_put_def:
properties:
employee_number: {type: integer, format: int32, description: 'Virtual DataPort
type: int'}
surname: {type: string, description: 'Virtual DataPort type: text'}
first_name: {type: string, description: 'Virtual DataPort type: text'}
centre_code: {type: string, description: 'Virtual DataPort type: text'}
centre_name: {type: string, description: 'Virtual DataPort type: text'}
department_code: {type: string, description: 'Virtual DataPort type: text'}
department_name: {type: string, description: 'Virtual DataPort type: text'}
personnelareatext_0: {type: string, description: 'Virtual DataPort type: text'}
plant_code: {type: string, description: 'Virtual DataPort type: text'}
plant: {type: string, description: 'Virtual DataPort type: text'}
description: Schema of view dv_google_employee_details as required by PUT requests
xml: {name: dv_google_employee_details, namespace: 'http://www.denodo.com/restful/ccpb_main/views/dv_google_employee_details'}
dv_google_employee_details_element_simplified_def:
properties:
employee_number:
type: object
properties:
type: {type: string, description: The type of the field}
surname:
type: object
properties:
type: {type: string, description: The type of the field}
first_name:
type: object
properties:
type: {type: string, description: The type of the field}
centre_code:
type: object
properties:
type: {type: string, description: The type of the field}
centre_name:
type: object
properties:
type: {type: string, description: The type of the field}
department_code:
type: object
properties:
type: {type: string, description: The type of the field}
department_name:
type: object
properties:
type: {type: string, description: The type of the field}
personnelareatext_0:
type: object
properties:
type: {type: string, description: The type of the field}
plant_code:
type: object
properties:
type: {type: string, description: The type of the field}
plant:
type: object
properties:
type: {type: string, description: The type of the field}
description: Schema of view dv_google_employee_details
xml: {name: dv_google_employee_details, namespace: 'http://www.denodo.com/restful/ccpb_main/views/dv_google_employee_details'}
dv_google_employee_details_xsd_def:
properties:
targetNamespace:
type: string
xml: {attribute: true}
description: 'Namespace defined by this XSD: http://www.denodo.com/restful/ccpb_main/views/dv_google_employee_details'
element:
type: object
properties:
complexType:
type: object
properties:
sequence:
type: object
properties:
centre_code:
type: object
xml: {name: element}
properties:
name:
type: string
xml: {attribute: true}
type:
type: string
xml: {attribute: true}
description: 'Virtual DataPort type: text'
nillable:
type: boolean
xml: {attribute: true}
centre_name:
type: object
xml: {name: element}
properties:
name:
type: string
xml: {attribute: true}
type:
type: string
xml: {attribute: true}
description: 'Virtual DataPort type: text'
nillable:
type: boolean
xml: {attribute: true}
department_code:
type: object
xml: {name: element}
properties:
name:
type: string
xml: {attribute: true}
type:
type: string
xml: {attribute: true}
description: 'Virtual DataPort type: text'
nillable:
type: boolean
xml: {attribute: true}
department_name:
type: object
xml: {name: element}
properties:
name:
type: string
xml: {attribute: true}
type:
type: string
xml: {attribute: true}
description: 'Virtual DataPort type: text'
nillable:
type: boolean
xml: {attribute: true}
employee_number:
type: object
xml: {name: element}
properties:
name:
type: string
xml: {attribute: true}
type:
type: string
xml: {attribute: true}
description: 'Virtual DataPort type: int'
nillable:
type: boolean
xml: {attribute: true}
first_name:
type: object
xml: {name: element}
properties:
name:
type: string
xml: {attribute: true}
type:
type: string
xml: {attribute: true}
description: 'Virtual DataPort type: text'
nillable:
type: boolean
xml: {attribute: true}
personnelareatext_0:
type: object
xml: {name: element}
properties:
name:
type: string
xml: {attribute: true}
type:
type: string
xml: {attribute: true}
description: 'Virtual DataPort type: text'
nillable:
type: boolean
xml: {attribute: true}
plant:
type: object
xml: {name: element}
properties:
name:
type: string
xml: {attribute: true}
type:
type: string
xml: {attribute: true}
description: 'Virtual DataPort type: text'
nillable:
type: boolean
xml: {attribute: true}
plant_code:
type: object
xml: {name: element}
properties:
name:
type: string
xml: {attribute: true}
type:
type: string
xml: {attribute: true}
description: 'Virtual DataPort type: text'
nillable:
type: boolean
xml: {attribute: true}
surname:
type: object
xml: {name: element}
properties:
name:
type: string
xml: {attribute: true}
type:
type: string
xml: {attribute: true}
description: 'Virtual DataPort type: text'
nillable:
type: boolean
xml: {attribute: true}
name:
type: string
xml: {attribute: true}
description: 'Names of the view: dv_google_employee_details'
description: Schema of view dv_google_employee_details in XSD format
xml: {name: schema, namespace: 'http://www.w3.org/2001/XMLSchema'}
dv_google_employee_details_response_def:
properties:
name:
type: string
xml: {attribute: true}
description: Virtual DataPort view name
description:
type: string
xml: {attribute: true}
description: Virtual DataPort view description
elements:
type: string
description: Results returned by the query
items: {$ref: '#/definitions/dv_google_employee_details_element_def'}
links:
type: string
description: Links available for the current element (e.g. pagination links)
items: {$ref: '#/definitions/links_def'}
xml: {name: view, namespace: 'http://www.denodo.com/restful'}
dv_google_employee_details_schema_def:
properties:
name: {type: string, description: Virtual DataPort view name}
properties: {$ref: '#/definitions/dv_google_employee_details_element_simplified_def'}
dv_google_employee_details_metadata_def:
properties:
name:
type: string
xml: {attribute: true}
description: Virtual DataPort database name
description:
type: string
xml: {attribute: true}
description: Virtual DataPort database description
views-metadata:
type: object
xml: {name: view-metadata}
properties:
links:
type: string
items: {$ref: '#/definitions/links_def'}
name:
type: string
xml: {attribute: true}
description: Virtual DataPort view name
required: [links, name]
xml: {name: db, namespace: 'http://www.denodo.com/restful'}
parameters:
count_parameter: {name: $count, in: query, description: Used for pagination in view
resources, required: false, type: integer}
select_parameter:
name: $select
in: query
description: Comma-separated list of fields to be returned in the result
required: false
type: string
items: {type: string}
collectionFormat: csv
start_index_parameter: {name: $start_index, in: query, description: Used for pagination
in view resources, required: false, type: integer}
noescape_html_parameter:
name: $noescapehtml
in: query
description: List of comma-separated fields whose values will not be HTML escaped.
required: false
type: string
items: {type: string}
collectionFormat: csv
user_agent_header_parameter: {name: user-agent, in: header, description: 'By including
this header, communication between the web service and the Virtual DataPort
will be configured with this value.', required: false, type: string}
filter_parameter: {name: $filter, in: query, description: Filters the rows of a
view using any condition. Any expression that can appear in the WHERE clause
of a VQL query can be used., required: false, type: string}
jsoncallback_parameter: {name: $jsoncallback, in: query, description: 'The JSON
representation can return the data of a view prefixed with the name of a function.
This is called JSON with padding or JSONP. That way, when a browser receives
the response, it receives a script rather than data.', required: false, type: string}
reduced_format_parameter:
name: $format
in: query
description: Defines the output format of the query
required: false
type: string
default: XML
enum: [JSON, XML]
having_parameter:
name: $having
in: query
description: Comma-separated list of fields to add to the HAVING clause of the
query
required: false
type: string
items: {type: string}
collectionFormat: csv
display_restful_references_parameter: {name: $displayRESTfulReferences, in: query,
description: 'By default, the result of requesting a view contains, in each row,
a link to the row itself and, for each association of the view, a link to traverse
the association. By using this parameter, you can configure this behavior.',
required: false, type: boolean}
expand_parameter:
name: $expand
in: query
description: Roles to expand in the query
required: false
type: string
items: {type: string}
collectionFormat: csv
order_by_parameter:
name: $orderby
in: query
description: Sorts the results by one or more fields. It is a comma-separated
list of fields, each one followed by the modifier ASC (for ascending order)
and DESC (for descending order).
required: false
type: string
items: {type: string}
collectionFormat: csv
format_parameter:
name: $format
in: query
description: Defines the output format of the query
required: false
type: string
default: JSON
enum: [JSON, HTML, XML]
group_by_parameter:
name: $groupby
in: query
description: Comma-separated list of fields to group by with
required: false
type: string
items: {type: string}
collectionFormat: csv
responses: {}
securityDefinitions:
basic_auth: {type: basic}
security:
- basic_auth: []
tags:
- {name: dv_google_employee_details, description: Operations available for view dv_google_employee_details}