openapi: 3.0.1 info: title: Employee wage sum description: 'Wage sum - demo application with GO language' contact: email: lsmhun@github license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html version: 0.4.0 #servers: #- url: https://wagesum.org/v1 tags: - name: emp description: Everything about employee - name: sal description: Everything about salary - name: monitoring description: Monitoring interface paths: /api/v1/emp: put: tags: - emp summary: Update an existing emp description: Update an existing emp by Id operationId: updateEmp requestBody: description: Update an existent emp in the store content: application/json: schema: $ref: '#/components/schemas/Emp' examples: exampleEmployee: $ref: '#/components/examples/exampleEmployee' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/Emp' examples: exampleEmployee: $ref: '#/components/examples/exampleEmployee' '400': description: Invalid ID supplied '404': description: emp not found '405': description: Validation exception post: tags: - emp summary: Add a new emp to the store description: Add a new emp to the store operationId: addEmp requestBody: description: Create a new emp in the store content: application/json: schema: $ref: '#/components/schemas/Emp' examples: exampleEmployee: $ref: '#/components/examples/exampleEmployee' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/Emp' examples: exampleEmployee: $ref: '#/components/examples/exampleEmployee' '405': description: Invalid input /api/v1/emp/findByType: get: tags: - emp summary: Finds emps by type description: Multiple status values can be provided with comma separated strings operationId: findEmpsByType parameters: - name: type in: query description: Status values that need to be considered for filter required: false explode: true schema: type: string default: MANAGER example: EMPLOYEE enum: - MANAGER - EMPLOYEE responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/Emp' example: exampleEmployee: $ref: '#/components/examples/exampleEmployee' '400': description: Invalid status value /api/v1/emp/findByMgrId: get: tags: - emp summary: Finds emps by mgrId description: Multiple status values can be provided with comma separated strings operationId: findEmpsByMgrId parameters: - name: mgrId in: query description: Manager id required: true schema: type: integer format: int64 example: 1 responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/Emp' example: exampleEmployee: $ref: '#/components/examples/exampleEmployee' '400': description: Invalid status value /api/v1/emp/{empId}: get: tags: - emp summary: Find emp by ID description: Returns a single emp operationId: getEmpById parameters: - name: empId in: path description: ID of emp to return required: true schema: type: integer format: int64 example: 10 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/Emp' examples: exampleEmployee: $ref: '#/components/examples/exampleEmployee' '400': description: Invalid ID supplied '404': description: emp not found delete: tags: - emp summary: Deletes an emp description: delete an emp operationId: deleteEmp parameters: - name: api_key in: header description: '' required: false schema: type: string - name: empId in: path description: emp id to delete required: true schema: type: integer format: int64 example: 10 responses: '400': description: Invalid emp value /api/v1/sal/{empId}: get: tags: - sal summary: Find sal by ID description: Returns a single emp operationId: getSalByEmpId parameters: - name: empId in: path description: ID of emp required: true schema: type: integer format: int64 example: 10 responses: '200': description: successful operation content: application/json: schema: type: string example: "100000" '400': description: Invalid ID supplied '404': description: sal not found post: tags: - sal summary: Updates a sal in the store with form data description: '' operationId: updateSalWithForm parameters: - name: empId in: path description: ID of emp that needs to be updated required: true schema: type: integer format: int64 example: "100000" - name: value in: query description: Name of sal that needs to be updated schema: type: string example: "100000" responses: '405': description: Invalid input delete: tags: - sal summary: Deletes a sal description: delete a sal operationId: deleteSal parameters: - name: empId in: path description: emp id to delete salary required: true schema: type: integer format: int64 example: "100000" responses: '400': description: Invalid sal value /api/v1/sal/wagesum/{empId}: get: tags: - sal summary: Find sum sal by manager ID description: Returns a summary of salaries under mgrId operationId: getWageSumByMgrId parameters: - name: empId in: path description: ID of manager required: true schema: type: integer format: int64 responses: '200': description: successful operation content: application/json: schema: type: string example: "100000" '400': description: Invalid ID supplied '404': description: sal not found /api/health: get: tags: - monitoring summary: Health endpoint description: Returns a health status operationId: health responses: '200': description: successful operation content: application/json: schema: type: object additionalProperties: true components: schemas: Emp: type: object properties: id: type: integer format: int64 empId: type: integer format: int64 userName: type: string firstName: type: string lastName: type: string mgrId: type: integer format: int64 type: type: string description: Employee Type enum: - MANAGER - EMPLOYEE status: type: string description: Employee Status enum: - ACTIVE - INACTIVE - DELETED xml: name: Emp examples: exampleEmployee: summary: example employee - not manager value: id: 100 empId: 10 userName: "johndoe" firstName: "John" lastName: "Doe" mgrId: 1 type: "EMPLOYEE" status: "ACTIVE"