openapi: 3.0.1
info:
  title: SLater REST API
  description: |
    # The SLater API provides the following features

    - Ease of learning and use of the SLater API using examples and live execution capability

    - A collection of request-response endpoints, grouped by the type of business resources the endpoint operates upon, such as __accounts__ , __applications__, __contacts__, etc.

    - Each endpoint is defined as an HTTP method operating on a resource, generalized by

      - **OPTIONS** | **GET** | **POST** | **PATCH** | **PUT** | **DELETE** /_resource_
        where _resource_ is a business resource, such as __accounts__, __contacts__, __applications__, etc.

    - We refer to these methods collectively as create (POST), read (GET), update (PATCH), replace (PUT), and delete (DELETE) or CRUD operations.

    - Each endpoint provides specific API request method, resource, headers, and an optional payload.

    - Each request corresponds to a specific set of responses, including response headers, optional playload, and status.

    - To call an endpoint, you must provide a valid Authorization token.  Otherwise, the call will not be permitted.

    - Select the api server you want to use to run CRUD against, such as [Production](https://api.pearsoncloudmanagement.com), [QA](https://api-qa.pearsoncloudmanagement.com) or [Development](https://api-dev.pearsoncloudmanagement.com).

    - Examples for calling the API, either via command line interface (CLI) or via HTTPS (e.g., postman), are provided for each endpoint in the interactive documentation that follows.

    - Pagination with GETs works much like AWS REST APIs, where you have a next_token momento and page limit values
      that maintain page state.  This state information can be used later on to return to any page.
      This allows you to page forward and backward arbitrarily. You must run an initial GET to start collecting page
      state.  Here's an example that GETs the first page, saves state (next page), GETs the next page, GETs the
      previous page (same page), and then GETs the first page (next_token=None).

        Paging forward:

              1. GET https://api-dev.pearsoncloudmanagement.com/slater/accounts?limit=5
                 Returns first five results with next_token referring to next page.
                 {
                     "results": [...],
                     "paginationcontrol": {
                         "next_token": 6,
                         "limit": 5,
                         "sort_key": "row_num"
                     }
                 }
                 Save next_token=6 and limit=5

              2. GET https://api-dev.pearsoncloudmanagement.com/slater/accounts?limit=5&next_token=6
                 Returns next 5 results with next_token=11 referring to the next 5.
                 {
                    "results": [...],
                    "paginationcontrol": {
                        "next_token": 11,
                        "limit": 5,
                        "sort_key": "row_num"
                   }
                 }
                 Save next_token=11 and limit=5 if you want to refer back to this page later on.

        Paging backward:

              3. GET https://api-dev.pearsoncloudmanagement.com/slater/accounts?limit=5&next_token=6
                 Returns last 5 results with next_token=6 and limit=5 referring back one page.
                 {
                   "results": [...],
                   "paginationcontrol": {
                       "next_token": 6,
                       "limit": 5,
                       "sort_key": "row_num"
                   }
                 }
              4. GET https://api-dev.pearsoncloudmanagement.com/slater/accounts?limit=5[&next_token=None]
                 Returns back to the first page. Note that next_token is None by default and is defined as first page.
                 {
                    "results": [...],
                    "paginationcontrol": {
                        "next_token": 6,
                        "limit": 5,
                        "sort_key": "row_num"
                    }
                 }

    - Refer to [this video](https://www.restapitutorial.com/lessons/whatisrest.html) for more information on how to use RESTful APIs.

    - Refer to [this video](https://neo.pearson.com/videos/85733) for an interactive session on how to use this API.

    ### To get slack support for this API, [click here](https://aidevops.slack.com/archives/CSMRNBJ9J|#io-slater-support)

    ### Release Notes

    v2.0.0
    - PCM-1052 and PCM-1057 PATCHes are now PUTs, and new PATCH logic introduced for each PUT

    v1.2.2
    - PCM-1039 Added client cognito API token creation. Reduces likelihood of API throlling when POST /authtoken
      is called frequently over short periods ot time.

    v1.2.1
    - PCM-994 Upgraded internal python3.7
    - Removed concurrency and provisioning for deploys as they waere ineffectual and costing unnecessary deployment delays
    - PCM-1046 Added database version selection via new header.

    v1.2.0
    - PCM-1042 Added a new export endpoint that accepts the export name as a query parameter
    - PCM-1043 Added a new finder for retrieving valid and active export names.

    v1.1.4
    - PCM-1032 Duplicate key exception handling for all updating
    - PCM-1033 Update of contact email in python-layer. No change required in API layer.

    v1.1.3
    - Simplified finder pagination by replacing upper_bound_token and lower_bound_token with next_token.  limit is unchanged.
    - All finders now return HTTP 200 ok status whether they have empty results or not.

    v1.1.2
    - Added GET /allcolumns google-like search for any column across all slack tables
    - Fixed GET /authtoken URL issue
  version: 2.0.0
  termsOfService: 'https://neo.pearson.com/docs/DOC-764463'
  contact:
    email: io-slater-support@pearson.com
  license:
    name: Pearson Proprietary
    url: 'https://neo.pearson.com/docs/DOC-764463'
servers:
  - url: 'https://api.pearsoncloudmanagement.com/slater'
    description: Production Slater Environment (Live)
  - url: 'https://api-qa.pearsoncloudmanagement.com/slater'
    description: QA/Test Slater Environment (Real Data Examples)
  - url: 'https://api-dev.pearsoncloudmanagement.com/slater'
    description: Development Slater Environment (Development)
tags:
  - name: accounts
    description: Information about accounts
    externalDocs:
      description: Accounts Documentation
      url: 'https://neo.pearson.com/docs/DOC-764463'
  - name: applications
    description: Information about applications
    externalDocs:
      description: Application Documentation
      url: 'https://neo.pearson.com/docs/DOC-764463'
  - name: contacts
    description: Information about contacts
    externalDocs:
      description: Contact Documentation
      url: 'https://neo.pearson.com/docs/DOC-764463'
  - name: lobs
    description: Information about lines of business
    externalDocs:
      description: Lobs documentation
      url: 'https://neo.pearson.com/docs/DOC-764463'
  - name: masterpayers
    description: Information about master payer
    externalDocs:
      description: Master payer documentation
      url: 'https://neo.pearson.com/docs/DOC-764463'
  - name: accounttypes
    description: Information about account types
    externalDocs:
      description: Account types documentation
      url: 'https://neo.pearson.com/docs/DOC-764463'
  - name: businessunits
    description: Information about business units
    externalDocs:
      description: Business units documentation
      url: 'https://neo.pearson.com/docs/DOC-764463'
  - name: towers
    description: Information about towers
    externalDocs:
      description: Towers documentation
      url: 'https://neo.pearson.com/docs/DOC-764463'
  - name: batch
    description: Information about batch loads
    externalDocs:
      description: Batch Documentation
      url: 'https://neo.pearson.com/docs/DOC-764463'
  - name: export
    description: Information about bulk export
    externalDocs:
      description: Bulk export documentation
      url: 'https://neo.pearson.com/docs/DOC-764463'
  - name: healthstatus
    description: Information for health and status of SLater
    externalDocs:
      description: Health & Status Documentation
      url: 'https://neo.pearson.com/docs/DOC-764463'
  - name: cdsallsnapshot
    description: Information for cds all snapshot
    externalDocs:
      description: Cds All Snapshot Documentation
      url: 'https://neo.pearson.com/docs/DOC-764463'
  - name: authorization
    description: Information for authorization
    externalDocs:
      description: Authorization Documentation
      url: 'https://neo.pearson.com/docs/DOC-764463'
x-amazon-apigateway-request-validators:
  all:
    validateRequestBody: true
    validateRequestParameters: true
  params-only:
    validateRequestBody: false
    validateRequestParameters: true
paths:
  /authtoken:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    post:
      tags:
        - authorization
      summary: Create Authorization Token
      description: Create authorization token based on user_group_name and user_group_token.
      operationId: createAuthToken
      requestBody:
        description: Information to create auth token
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                user_group_name:
                  description: safe url base64 encoded user group name text
                  type: string
                  nullable: false
                user_group_token:
                  description: safe url base64 encoded user group token text
                  type: string
                  nullable: false
      responses:
        '201':
          description: Created
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  api_access_token:
                    description: API authorization token for subsequent calls
                    type: string
                    nullable: false
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Server error.  Try again.
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:CreatorFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /healthstatus:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - healthstatus
      summary: Find health and status
      description: Find health and status
      operationId: findHealthStatus
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  api_version:
                    type: string
                    default: 2.0.0
                  db_version:
                    type: string
                    default: unknown
                  release_date:
                    type: string
                    default: '2020-12-01'
                  release_notes:
                    type: string
                    default: Post-MVP Release
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Server error.  Try again.
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:HealthStatusFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /lobs:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - lobs
      summary: Find lobs
      description: |
        Find lines of business given governance lob name, optionally querying by one or more resource columns or overridden pagination controls. See response model and example for the full set of queryable columns, not all of which are shown in query-string parameters.
      operationId: findLobs
      parameters:
        - name: next_token
          in: query
          description: |
            Used for pagination and is the inclusive primary key value after which data should be returned on a subsequent query. Must be a positive value.  Default: None (first page).
          schema:
            type: integer
            format: int64
            minimum: 1
            example: 20
        - name: limit
          in: query
          description: |
            The max number or rows to return.  Limit must be between 1 and positive value. If 20 >= limit > 0, then there is high confidence your query will respond in well under 1 second (SLO < 1 second). The greater limit is above 20, the less confidence your query will respond in under 1 second (no SLO).
          schema:
            type: integer
            format: int64
            default: 20
          examples:
            small:
              value: 5
            large:
              value: 20
            default:
              value: 10
        - name: use_like_comparator
          in: query
          description: |
            If True the where clause will be constructed using field LIKE %VALUE% instead of field = VALUE.  Default is false.
          schema:
            type: boolean
            default: false
          examples:
            exact:
              value: false
            fuzzy:
              value: true
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  paginationcontrol:
                    type: object
                    properties:
                      next_token:
                        type: integer
                        format: int32
                        example: 4
                      limit:
                        type: integer
                        format: int32
                        example: 2
                      sort_key:
                        type: string
                        example: row_num
                  results:
                    type: array
                    items:
                      allOf:
                        - allOf:
                            - allOf:
                                - type: object
                                  properties:
                                    governance_lob_name:
                                      type: string
                                      example: lob a
                                - type: object
                                  properties:
                                    lob_id:
                                      type: integer
                                      format: int64
                                      example: 1
                            - type: object
                              properties:
                                date_last_update:
                                  type: string
                                  format: date
                                  nullable: true
                                  example: 09-08-2020
                                slater_update_user:
                                  type: string
                                  example: anonymous
                                next_link:
                                  type: string
                                  example: 'https://<server>/slater/lobs?lob_id=123'
                        - type: object
                          properties:
                            row_num:
                              type: integer
                              format: int64
                              nullable: true
                              example: 1
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
            - slater-ro/read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:FinderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    post:
      tags:
        - lobs
      summary: Create new lob
      description: Create new line of business
      operationId: createLob
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: Information to create lob
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                governance_lob_name:
                  type: string
                  example: lob a
      responses:
        '201':
          description: Created
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          governance_lob_name:
                            type: string
                            example: lob a
                      - type: object
                        properties:
                          lob_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/lobs?lob_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:CreatorFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    put:
      tags:
        - lobs
      summary: Update existing lob
      description: Update existing lob for a given lob id
      operationId: updateLob
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: |
          Information to update lob. You must provide all fields you see in the model. Values may be null, but you may get a 400 error if you don't include a required value.
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    governance_lob_name:
                      type: string
                      example: lob a
                - type: object
                  properties:
                    lob_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Updated
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          governance_lob_name:
                            type: string
                            example: lob a
                      - type: object
                        properties:
                          lob_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/lobs?lob_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Lob not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:UpdaterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    patch:
      tags:
        - lobs
      summary: Patch existing lob
      description: Patch existing lob for a given lob id
      operationId: patchLob
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
      requestBody:
        description: Information to patch lob
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    governance_lob_name:
                      type: string
                      example: lob a
                - type: object
                  properties:
                    lob_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Patched
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          governance_lob_name:
                            type: string
                            example: lob a
                      - type: object
                        properties:
                          lob_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/lobs?lob_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Lob not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:PatcherFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  '/lobs/{lob_id}':
    delete:
      tags:
        - lobs
      summary: Delete lob
      description: Delete lob.  next_link will be null.
      operationId: deleteLob
      parameters:
        - name: lob_id
          in: path
          required: true
          description: Existing lob id
          schema:
            type: integer
            format: int64
            example: 3
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          governance_lob_name:
                            type: string
                            example: lob a
                      - type: object
                        properties:
                          lob_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/lobs?lob_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Lob not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:DeleterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /masterpayers:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - masterpayers
      summary: Find master payer
      description: |
        Find master payer given master payer name, optionally querying by one or more resource columns or overridden pagination controls. See response model and example for the full set of queryable columns, not all of which are shown in query-string parameters.
      operationId: findMasterPayer
      parameters:
        - name: next_token
          in: query
          description: |
            Used for pagination and is the inclusive primary key value after which data should be returned on a subsequent query. Must be a positive value.  Default: None (first page).
          schema:
            type: integer
            format: int64
            minimum: 1
            example: 20
        - name: limit
          in: query
          description: |
            The max number or rows to return.  Limit must be between 1 and positive value. If 20 >= limit > 0, then there is high confidence your query will respond in well under 1 second (SLO < 1 second). The greater limit is above 20, the less confidence your query will respond in under 1 second (no SLO).
          schema:
            type: integer
            format: int64
            default: 20
          examples:
            small:
              value: 5
            large:
              value: 20
            default:
              value: 10
        - name: use_like_comparator
          in: query
          description: |
            If True the where clause will be constructed using field LIKE %VALUE% instead of field = VALUE.  Default is false.
          schema:
            type: boolean
            default: false
          examples:
            exact:
              value: false
            fuzzy:
              value: true
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  paginationcontrol:
                    type: object
                    properties:
                      next_token:
                        type: integer
                        format: int32
                        example: 4
                      limit:
                        type: integer
                        format: int32
                        example: 2
                      sort_key:
                        type: string
                        example: row_num
                  results:
                    type: array
                    items:
                      allOf:
                        - allOf:
                            - allOf:
                                - type: object
                                  properties:
                                    master_payer_ident:
                                      type: string
                                      example: 111111111111
                                    master_payer_name:
                                      type: string
                                      example: SLT BU Master Payer 1
                                - type: object
                                  properties:
                                    master_payer_id:
                                      type: integer
                                      format: int64
                                      example: 1
                            - type: object
                              properties:
                                date_last_update:
                                  type: string
                                  format: date
                                  nullable: true
                                  example: 09-08-2020
                                slater_update_user:
                                  type: string
                                  example: anonymous
                                next_link:
                                  type: string
                                  example: 'https://<server>/slater/masterpayers?master_payer_name=\"SLT BU Master Payer 1\"'
                        - type: object
                          properties:
                            row_num:
                              type: integer
                              format: int64
                              nullable: true
                              example: 1
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
            - slater-ro/read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:FinderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    post:
      tags:
        - masterpayers
      summary: Create new master payer
      description: Create new master payer
      operationId: createMasterPayer
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: Information to create master payer
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                master_payer_ident:
                  type: string
                  example: 111111111111
                master_payer_name:
                  type: string
                  example: SLT BU Master Payer 1
      responses:
        '201':
          description: Created
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          master_payer_ident:
                            type: string
                            example: 111111111111
                          master_payer_name:
                            type: string
                            example: SLT BU Master Payer 1
                      - type: object
                        properties:
                          master_payer_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/masterpayers?master_payer_name=\"SLT BU Master Payer 1\"'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:CreatorFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    put:
      tags:
        - masterpayers
      summary: Update existing master payers
      description: Update existing master payer for a given master payer id
      operationId: updateMasterPayer
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: |
          Information to update master payer. You must provide all fields you see in the model. Values may be null, but you may get a 400 error if you don't include a required value.
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    master_payer_ident:
                      type: string
                      example: 111111111111
                    master_payer_name:
                      type: string
                      example: SLT BU Master Payer 1
                - type: object
                  properties:
                    master_payer_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Updated
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          master_payer_ident:
                            type: string
                            example: 111111111111
                          master_payer_name:
                            type: string
                            example: SLT BU Master Payer 1
                      - type: object
                        properties:
                          master_payer_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/masterpayers?master_payer_name=\"SLT BU Master Payer 1\"'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: MasterPayer not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:UpdaterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    patch:
      tags:
        - masterpayers
      summary: Patch existing master payers
      description: Patch existing master payer for a given master payer id
      operationId: patchMasterPayer
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
      requestBody:
        description: Information to patch master payer
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    master_payer_ident:
                      type: string
                      example: 111111111111
                    master_payer_name:
                      type: string
                      example: SLT BU Master Payer 1
                - type: object
                  properties:
                    master_payer_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Patched
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          master_payer_ident:
                            type: string
                            example: 111111111111
                          master_payer_name:
                            type: string
                            example: SLT BU Master Payer 1
                      - type: object
                        properties:
                          master_payer_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/masterpayers?master_payer_name=\"SLT BU Master Payer 1\"'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: MasterPayer not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:PatcherFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  '/masterpayers/{master_payer_id}':
    delete:
      tags:
        - masterpayers
      summary: Delete master payer
      description: Delete master payer.  next_link will be null.
      operationId: deleteMasterPayer
      parameters:
        - name: master_payer_id
          in: path
          required: true
          description: Existing master payer id
          schema:
            type: integer
            format: int64
            example: 3
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          master_payer_ident:
                            type: string
                            example: 111111111111
                          master_payer_name:
                            type: string
                            example: SLT BU Master Payer 1
                      - type: object
                        properties:
                          master_payer_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/masterpayers?master_payer_name=\"SLT BU Master Payer 1\"'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Master payer not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:DeleterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /accounttypes:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - accounttypes
      summary: Find account types
      description: |
        Find account type given account type name, optionally querying by one or more additional resource columns or overridden pagination controls. See response model and example for the full set of queryable columns, not all of which are shown in query-string parameters.
      operationId: findAccountType
      parameters:
        - name: next_token
          in: query
          description: |
            Used for pagination and is the inclusive primary key value after which data should be returned on a subsequent query. Must be a positive value.  Default: None (first page).
          schema:
            type: integer
            format: int64
            minimum: 1
            example: 20
        - name: limit
          in: query
          description: |
            The max number or rows to return.  Limit must be between 1 and positive value. If 20 >= limit > 0, then there is high confidence your query will respond in well under 1 second (SLO < 1 second). The greater limit is above 20, the less confidence your query will respond in under 1 second (no SLO).
          schema:
            type: integer
            format: int64
            default: 20
          examples:
            small:
              value: 5
            large:
              value: 20
            default:
              value: 10
        - name: use_like_comparator
          in: query
          description: |
            If True the where clause will be constructed using field LIKE %VALUE% instead of field = VALUE.  Default is false.
          schema:
            type: boolean
            default: false
          examples:
            exact:
              value: false
            fuzzy:
              value: true
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  paginationcontrol:
                    type: object
                    properties:
                      next_token:
                        type: integer
                        format: int32
                        example: 4
                      limit:
                        type: integer
                        format: int32
                        example: 2
                      sort_key:
                        type: string
                        example: row_num
                  results:
                    type: array
                    items:
                      allOf:
                        - allOf:
                            - allOf:
                                - type: object
                                  properties:
                                    account_type_name:
                                      type: string
                                      example: non-production
                                - type: object
                                  properties:
                                    account_type_id:
                                      type: integer
                                      format: int64
                                      example: 1
                            - type: object
                              properties:
                                date_last_update:
                                  type: string
                                  format: date
                                  nullable: true
                                  example: 09-08-2020
                                slater_update_user:
                                  type: string
                                  example: anonymous
                                next_link:
                                  type: string
                                  example: 'https://<server>/slater/accounttypes?account_type_name=non-production'
                        - type: object
                          properties:
                            row_num:
                              type: integer
                              format: int64
                              nullable: true
                              example: 1
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
            - slater-ro/read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:FinderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    post:
      tags:
        - accounttypes
      summary: Create new account types
      description: Create new account types
      operationId: createAccountType
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: Information to create account types
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                account_type_name:
                  type: string
                  example: non-production
      responses:
        '201':
          description: Created
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          account_type_name:
                            type: string
                            example: non-production
                      - type: object
                        properties:
                          account_type_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/accounttypes?account_type_name=non-production'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:CreatorFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    put:
      tags:
        - accounttypes
      summary: Update existing accounttype
      description: Update existing accounttypes for a given accounttype id
      operationId: updateAccountType
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: |
          Information to update account type. The following attributes cannot be null: * account_type_id * account_type_name
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    account_type_name:
                      type: string
                      example: non-production
                - type: object
                  properties:
                    account_type_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Updated
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          account_type_name:
                            type: string
                            example: non-production
                      - type: object
                        properties:
                          account_type_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/accounttypes?account_type_name=non-production'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: AccountType not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:UpdaterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    patch:
      tags:
        - accounttypes
      summary: Patch existing accounttype
      description: Patch existing accounttypes for a given accounttype id
      operationId: patchAccountType
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
      requestBody:
        description: |
          Information to update account type. The following attributes cannot be null: * account_type_id * account_type_name
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    account_type_name:
                      type: string
                      example: non-production
                - type: object
                  properties:
                    account_type_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Patched
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          account_type_name:
                            type: string
                            example: non-production
                      - type: object
                        properties:
                          account_type_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/accounttypes?account_type_name=non-production'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: AccountType not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:PatcherFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  '/accounttypes/{account_type_id}':
    delete:
      tags:
        - accounttypes
      summary: Delete account type
      description: Delete account type.  next_link will be null.
      operationId: deleteAccountType
      parameters:
        - name: account_type_id
          in: path
          required: true
          description: Existing account type id
          schema:
            type: integer
            format: int64
            example: 3
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          account_type_name:
                            type: string
                            example: non-production
                      - type: object
                        properties:
                          account_type_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/accounttypes?account_type_name=non-production'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Account type not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:DeleterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /businessunits:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - businessunits
      summary: Find business unit
      description: |
        Find business unit given business unit name, optionally querying by one or more resource columns or overridden pagination controls. See response model and example for the full set of queryable columns, not all of which are shown in query-string parameters.
      operationId: findBusinessUnit
      parameters:
        - name: next_token
          in: query
          description: |
            Used for pagination and is the inclusive primary key value after which data should be returned on a subsequent query. Must be a positive value.  Default: None (first page).
          schema:
            type: integer
            format: int64
            minimum: 1
            example: 20
        - name: limit
          in: query
          description: |
            The max number or rows to return.  Limit must be between 1 and positive value. If 20 >= limit > 0, then there is high confidence your query will respond in well under 1 second (SLO < 1 second). The greater limit is above 20, the less confidence your query will respond in under 1 second (no SLO).
          schema:
            type: integer
            format: int64
            default: 20
          examples:
            small:
              value: 5
            large:
              value: 20
            default:
              value: 10
        - name: use_like_comparator
          in: query
          description: |
            If True the where clause will be constructed using field LIKE %VALUE% instead of field = VALUE.  Default is false.
          schema:
            type: boolean
            default: false
          examples:
            exact:
              value: false
            fuzzy:
              value: true
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  paginationcontrol:
                    type: object
                    properties:
                      next_token:
                        type: integer
                        format: int32
                        example: 4
                      limit:
                        type: integer
                        format: int32
                        example: 2
                      sort_key:
                        type: string
                        example: row_num
                  results:
                    type: array
                    items:
                      allOf:
                        - allOf:
                            - allOf:
                                - type: object
                                  properties:
                                    business_unit_name:
                                      type: string
                                      example: Echo Chamber
                                - type: object
                                  properties:
                                    business_unit_id:
                                      type: integer
                                      format: int64
                                      example: 1
                            - type: object
                              properties:
                                date_last_update:
                                  type: string
                                  format: date
                                  nullable: true
                                  example: 09-08-2020
                                slater_update_user:
                                  type: string
                                  example: anonymous
                                next_link:
                                  type: string
                                  example: 'https://<server>/slater/businessunits?business_unit_name=\"Echo Chamber\"'
                        - type: object
                          properties:
                            row_num:
                              type: integer
                              format: int64
                              nullable: true
                              example: 1
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
            - slater-ro/read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:FinderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    post:
      tags:
        - businessunits
      summary: Create new business unit
      description: Create new business unit
      operationId: createBusinessUnit
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: Information to create business unit
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                business_unit_name:
                  type: string
                  example: Echo Chamber
      responses:
        '201':
          description: Created
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          business_unit_name:
                            type: string
                            example: Echo Chamber
                      - type: object
                        properties:
                          business_unit_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/businessunits?business_unit_name=\"Echo Chamber\"'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:CreatorFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    put:
      tags:
        - businessunits
      summary: Update existing business unit
      description: Update existing businessunit for a given business unit id
      operationId: updateBusinessUnit
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: |
          Information to update business unit. You must provide all fields you see in the model. Values may be null, but you may get a 400 error if you don't include a required value.
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    business_unit_name:
                      type: string
                      example: Echo Chamber
                - type: object
                  properties:
                    business_unit_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Updated
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          business_unit_name:
                            type: string
                            example: Echo Chamber
                      - type: object
                        properties:
                          business_unit_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/businessunits?business_unit_name=\"Echo Chamber\"'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: BusinessUnit not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:UpdaterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    patch:
      tags:
        - businessunits
      summary: Patch existing business unit
      description: Patch existing businessunit for a given business unit id
      operationId: patchBusinessUnit
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
      requestBody:
        description: Information to patch business unit
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    business_unit_name:
                      type: string
                      example: Echo Chamber
                - type: object
                  properties:
                    business_unit_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Patched
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          business_unit_name:
                            type: string
                            example: Echo Chamber
                      - type: object
                        properties:
                          business_unit_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/businessunits?business_unit_name=\"Echo Chamber\"'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: BusinessUnit not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:PatcherFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  '/businessunits/{business_unit_id}':
    delete:
      tags:
        - businessunits
      summary: Delete business unit
      description: Delete business unit.  next_link will be null.
      operationId: deleteBusinessUnit
      parameters:
        - name: business_unit_id
          in: path
          required: true
          description: Existing business unit id
          schema:
            type: integer
            format: int64
            example: 3
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          business_unit_name:
                            type: string
                            example: Echo Chamber
                      - type: object
                        properties:
                          business_unit_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/businessunits?business_unit_name=\"Echo Chamber\"'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Business unit not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:DeleterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /towers:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - towers
      summary: Find Towers
      description: |
        Find lines of business given tower name, optionally querying by one or more resource columns or overridden pagination controls. See response model and example for the full set of queryable columns, not all of which are shown in query-string parameters.
      operationId: findTowers
      parameters:
        - name: next_token
          in: query
          description: |
            Used for pagination and is the inclusive primary key value after which data should be returned on a subsequent query. Must be a positive value.  Default: None (first page).
          schema:
            type: integer
            format: int64
            minimum: 1
            example: 20
        - name: limit
          in: query
          description: |
            The max number or rows to return.  Limit must be between 1 and positive value. If 20 >= limit > 0, then there is high confidence your query will respond in well under 1 second (SLO < 1 second). The greater limit is above 20, the less confidence your query will respond in under 1 second (no SLO).
          schema:
            type: integer
            format: int64
            default: 20
          examples:
            small:
              value: 5
            large:
              value: 20
            default:
              value: 10
        - name: use_like_comparator
          in: query
          description: |
            If True the where clause will be constructed using field LIKE %VALUE% instead of field = VALUE.  Default is false.
          schema:
            type: boolean
            default: false
          examples:
            exact:
              value: false
            fuzzy:
              value: true
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  paginationcontrol:
                    type: object
                    properties:
                      next_token:
                        type: integer
                        format: int32
                        example: 4
                      limit:
                        type: integer
                        format: int32
                        example: 2
                      sort_key:
                        type: string
                        example: row_num
                  results:
                    type: array
                    items:
                      allOf:
                        - allOf:
                            - allOf:
                                - type: object
                                  properties:
                                    contact_id:
                                      type: integer
                                      format: int64
                                      nullable: true
                                      example: 1
                                    tower_name:
                                      type: string
                                      example: Eiffel Tower
                                - type: object
                                  properties:
                                    tower_id:
                                      type: integer
                                      format: int64
                                      example: 1
                            - type: object
                              properties:
                                date_last_update:
                                  type: string
                                  format: date
                                  nullable: true
                                  example: 09-08-2020
                                slater_update_user:
                                  type: string
                                  nullable: true
                                  example: anonymous
                                next_link:
                                  type: string
                                  example: 'https://<server>/slater/towers?tower_name=\"Eiffel Tower\"'
                        - type: object
                          properties:
                            contact_name:
                              type: string
                              nullable: true
                              example: speed racer
                            contact_email:
                              type: string
                              format: email
                              nullable: true
                              example: sonic@root.net
                            row_num:
                              type: integer
                              format: int64
                              nullable: true
                              example: 1
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
            - slater-ro/read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:FinderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    post:
      tags:
        - towers
      summary: Create new towers
      description: Create new towers
      operationId: createTower
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: Information to create towers
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                contact_id:
                  type: integer
                  format: int64
                  nullable: true
                  example: 1
                tower_name:
                  type: string
                  example: Eiffel Tower
      responses:
        '201':
          description: Created
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          contact_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          tower_name:
                            type: string
                            example: Eiffel Tower
                      - type: object
                        properties:
                          tower_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        nullable: true
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/towers?tower_name=\"Eiffel Tower\"'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:CreatorFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    put:
      tags:
        - towers
      summary: Update existing tower
      description: Update existing tower for a given tower id
      operationId: updateTower
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: |
          Information to update tower. You must provide all fields you see in the model. Values may be null, but you may get a 400 error if you don't include a required value.
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    contact_id:
                      type: integer
                      format: int64
                      nullable: true
                      example: 1
                    tower_name:
                      type: string
                      example: Eiffel Tower
                - type: object
                  properties:
                    tower_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Updated
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          contact_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          tower_name:
                            type: string
                            example: Eiffel Tower
                      - type: object
                        properties:
                          tower_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        nullable: true
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/towers?tower_name=\"Eiffel Tower\"'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Tower not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:UpdaterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    patch:
      tags:
        - towers
      summary: Patch existing tower
      description: Patch existing tower for a given tower id
      operationId: patchTower
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
      requestBody:
        description: Information to patch tower
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    contact_id:
                      type: integer
                      format: int64
                      nullable: true
                      example: 1
                    tower_name:
                      type: string
                      example: Eiffel Tower
                - type: object
                  properties:
                    tower_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Patched
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          contact_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          tower_name:
                            type: string
                            example: Eiffel Tower
                      - type: object
                        properties:
                          tower_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        nullable: true
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/towers?tower_name=\"Eiffel Tower\"'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Tower not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:PatcherFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  '/towers/{tower_id}':
    delete:
      tags:
        - towers
      summary: Delete tower
      description: Delete tower.  next_link will be null.
      operationId: deleteTower
      parameters:
        - name: tower_id
          in: path
          required: true
          description: Existing tower id
          schema:
            type: integer
            format: int64
            example: 3
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          contact_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          tower_name:
                            type: string
                            example: Eiffel Tower
                      - type: object
                        properties:
                          tower_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        nullable: true
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/towers?tower_name=\"Eiffel Tower\"'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Tower not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:DeleterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /accounts:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - accounts
      summary: Find accounts
      description: |
        Find accounts, optionally querying by one or more resource columns or overridden pagination controls. See response model and example for the full set of queryable columns, not all of which are shown in query-string parameters.
      operationId: findAccounts
      parameters:
        - name: cloud_account_root_email
          in: query
          description: Root Email Contact
          schema:
            type: string
            format: email
          examples:
            email1:
              value: sonic@root.net
            email2:
              value: atari@root.net
        - name: cloud_account_name
          in: query
          description: Account Name
          schema:
            type: string
          examples:
            name1:
              value: commodore
            name2:
              value: sega
        - name: cloud_account_id
          in: query
          description: Account id
          schema:
            type: integer
            format: int32
          examples:
            id1:
              value: 2
            id2:
              value: 3
        - name: next_token
          in: query
          description: |
            Used for pagination and is the inclusive primary key value after which data should be returned on a subsequent query. Must be a positive value.  Default: None (first page).
          schema:
            type: integer
            format: int64
            minimum: 1
            example: 20
        - name: limit
          in: query
          description: |
            The max number or rows to return.  Limit must be between 1 and positive value. If 20 >= limit > 0, then there is high confidence your query will respond in well under 1 second (SLO < 1 second). The greater limit is above 20, the less confidence your query will respond in under 1 second (no SLO).
          schema:
            type: integer
            format: int64
            default: 20
          examples:
            small:
              value: 5
            large:
              value: 20
            default:
              value: 10
        - name: use_like_comparator
          in: query
          description: |
            If True the where clause will be constructed using field LIKE %VALUE% instead of field = VALUE.  Default is false.
          schema:
            type: boolean
            default: false
          examples:
            exact:
              value: false
            fuzzy:
              value: true
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  paginationcontrol:
                    type: object
                    properties:
                      next_token:
                        type: integer
                        format: int32
                        example: 4
                      limit:
                        type: integer
                        format: int32
                        example: 2
                      sort_key:
                        type: string
                        example: row_num
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        cloud_account_id:
                          type: integer
                          format: int64
                          nullable: true
                          example: 1
                        cloud_account_number:
                          type: string
                          nullable: true
                          example: 0123456789
                        cloud_account_name:
                          type: string
                          nullable: true
                          example: sega
                        cloud_account_root_email:
                          type: string
                          format: email
                          nullable: true
                          example: sonic@root.net
                        account_type_id:
                          type: integer
                          format: int64
                          nullable: true
                          example: 1
                        account_type_name:
                          type: string
                          nullable: true
                          example: non-production
                        master_payer_ident:
                          type: string
                          nullable: true
                          example: 111111111111
                        master_payer_id:
                          type: integer
                          format: int64
                          nullable: true
                          example: 1
                        master_payer_name:
                          type: string
                          nullable: true
                          example: SLT BU Master Payer 1
                        budget_alert_monthly_threshold:
                          type: integer
                          format: int64
                          nullable: true
                          example: 500
                        budget_account_string:
                          type: string
                          nullable: true
                          example: budget$3
                        provisioner:
                          type: string
                          nullable: true
                          example: cinch
                        decommissioned:
                          type: integer
                          format: int64
                          nullable: true
                        lob_id:
                          type: integer
                          format: int64
                          nullable: true
                          example: 1
                        governance_lob_name:
                          type: string
                          nullable: true
                          example: lob a
                        project_number:
                          type: string
                          nullable: true
                          example: apiProjNum
                        snow_approval_group:
                          type: string
                          nullable: true
                          example: API Test SNOW approval group
                        primary_funding_application_id:
                          type: integer
                          format: int64
                          nullable: true
                          example: 1
                        primary_funding_t_appid:
                          type: string
                          nullable: true
                          example: SVCD002
                        primary_funding_applcation_name:
                          type: string
                          nullable: true
                          example: Zork
                        intake_number:
                          type: string
                          nullable: true
                          example: APIIntake54321
                        tower_id:
                          type: integer
                          format: int64
                          nullable: true
                          example: 1
                        tower_name:
                          type: string
                          nullable: true
                          example: Eiffel Tower
                        create_date:
                          type: string
                          format: date
                          nullable: true
                          example: 09-08-2020
                        date_last_update:
                          type: string
                          format: date
                          nullable: true
                          example: 09-08-2020
                        slater_update_user:
                          type: string
                          nullable: true
                          example: anonymous
                        row_num:
                          type: integer
                          format: int64
                          nullable: true
                          example: 1
                        next_link:
                          type: string
                          example: 'https://<server>/slater/accounts?cloud_account_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
            - slater-ro/read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:FinderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    post:
      tags:
        - accounts
      summary: Create an account
      description: Create an account without provisioning resources
      operationId: createAccount
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: Information to create account
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                master_payer_id:
                  type: integer
                  format: int64
                  example: 1
                cloud_account_name:
                  type: string
                  example: sega
                cloud_account_number:
                  type: string
                  example: 0123456789
                intake_number:
                  type: string
                  nullable: true
                  example: APIIntake54321
                account_type_id:
                  type: integer
                  format: int64
                  example: 1
                cloud_account_root_email:
                  type: string
                  format: email
                  nullable: true
                  example: sonic@root.net
                lob_id:
                  type: integer
                  format: int64
                  nullable: true
                  example: 1
                create_date:
                  type: string
                  format: date
                  nullable: true
                  example: 09-08-2020
                budget_account_string:
                  type: string
                  nullable: true
                  example: budget$3
                decommissioned:
                  type: integer
                  format: int64
                  nullable: true
                provisioner:
                  type: string
                  nullable: true
                  example: cinch
                project_number:
                  type: string
                  nullable: true
                  example: apiProjNum
                snow_approval_group:
                  type: string
                  nullable: true
                  example: API Test SNOW approval group
                budget_alert_monthly_threshold:
                  type: integer
                  format: int64
                  nullable: true
                  example: 500
                tower_id:
                  type: integer
                  format: int64
                  nullable: true
                  example: 1
                application_id:
                  type: integer
                  format: int64
                  nullable: true
                  example: 1
      responses:
        '201':
          description: Created
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          master_payer_id:
                            type: integer
                            format: int64
                            example: 1
                          cloud_account_name:
                            type: string
                            example: sega
                          cloud_account_number:
                            type: string
                            example: 0123456789
                          intake_number:
                            type: string
                            nullable: true
                            example: APIIntake54321
                          account_type_id:
                            type: integer
                            format: int64
                            example: 1
                          cloud_account_root_email:
                            type: string
                            format: email
                            nullable: true
                            example: sonic@root.net
                          lob_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          create_date:
                            type: string
                            format: date
                            nullable: true
                            example: 09-08-2020
                          budget_account_string:
                            type: string
                            nullable: true
                            example: budget$3
                          decommissioned:
                            type: integer
                            format: int64
                            nullable: true
                          provisioner:
                            type: string
                            nullable: true
                            example: cinch
                          project_number:
                            type: string
                            nullable: true
                            example: apiProjNum
                          snow_approval_group:
                            type: string
                            nullable: true
                            example: API Test SNOW approval group
                          budget_alert_monthly_threshold:
                            type: integer
                            format: int64
                            nullable: true
                            example: 500
                          tower_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          application_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                      - type: object
                        properties:
                          cloud_account_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/accounts?cloud_account_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:CreatorFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    put:
      tags:
        - accounts
      summary: Update existing account
      description: Update existing account for a given account id
      operationId: updateAccount
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: |
          Information to update account. The following attributes cannot be null: * cloud_account_id * master_payer_id * cloud_account_name * cloud_account_number * account_type_id
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    master_payer_id:
                      type: integer
                      format: int64
                      example: 1
                    cloud_account_name:
                      type: string
                      example: sega
                    cloud_account_number:
                      type: string
                      example: 0123456789
                    intake_number:
                      type: string
                      nullable: true
                      example: APIIntake54321
                    account_type_id:
                      type: integer
                      format: int64
                      example: 1
                    cloud_account_root_email:
                      type: string
                      format: email
                      nullable: true
                      example: sonic@root.net
                    lob_id:
                      type: integer
                      format: int64
                      nullable: true
                      example: 1
                    create_date:
                      type: string
                      format: date
                      nullable: true
                      example: 09-08-2020
                    budget_account_string:
                      type: string
                      nullable: true
                      example: budget$3
                    decommissioned:
                      type: integer
                      format: int64
                      nullable: true
                    provisioner:
                      type: string
                      nullable: true
                      example: cinch
                    project_number:
                      type: string
                      nullable: true
                      example: apiProjNum
                    snow_approval_group:
                      type: string
                      nullable: true
                      example: API Test SNOW approval group
                    budget_alert_monthly_threshold:
                      type: integer
                      format: int64
                      nullable: true
                      example: 500
                    tower_id:
                      type: integer
                      format: int64
                      nullable: true
                      example: 1
                    application_id:
                      type: integer
                      format: int64
                      nullable: true
                      example: 1
                - type: object
                  properties:
                    cloud_account_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Updated
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          master_payer_id:
                            type: integer
                            format: int64
                            example: 1
                          cloud_account_name:
                            type: string
                            example: sega
                          cloud_account_number:
                            type: string
                            example: 0123456789
                          intake_number:
                            type: string
                            nullable: true
                            example: APIIntake54321
                          account_type_id:
                            type: integer
                            format: int64
                            example: 1
                          cloud_account_root_email:
                            type: string
                            format: email
                            nullable: true
                            example: sonic@root.net
                          lob_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          create_date:
                            type: string
                            format: date
                            nullable: true
                            example: 09-08-2020
                          budget_account_string:
                            type: string
                            nullable: true
                            example: budget$3
                          decommissioned:
                            type: integer
                            format: int64
                            nullable: true
                          provisioner:
                            type: string
                            nullable: true
                            example: cinch
                          project_number:
                            type: string
                            nullable: true
                            example: apiProjNum
                          snow_approval_group:
                            type: string
                            nullable: true
                            example: API Test SNOW approval group
                          budget_alert_monthly_threshold:
                            type: integer
                            format: int64
                            nullable: true
                            example: 500
                          tower_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          application_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                      - type: object
                        properties:
                          cloud_account_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/accounts?cloud_account_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Account not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:UpdaterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    patch:
      tags:
        - accounts
      summary: Patch existing account
      description: Patch existing account for a given account id
      operationId: patchAccount
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
      requestBody:
        description: |
          Information to patch account. The following attributes cannot be null: * cloud_account_id * master_payer_id * cloud_account_name * cloud_account_number * account_type_id
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    master_payer_id:
                      type: integer
                      format: int64
                      example: 1
                    cloud_account_name:
                      type: string
                      example: sega
                    cloud_account_number:
                      type: string
                      example: 0123456789
                    intake_number:
                      type: string
                      nullable: true
                      example: APIIntake54321
                    account_type_id:
                      type: integer
                      format: int64
                      example: 1
                    cloud_account_root_email:
                      type: string
                      format: email
                      nullable: true
                      example: sonic@root.net
                    lob_id:
                      type: integer
                      format: int64
                      nullable: true
                      example: 1
                    create_date:
                      type: string
                      format: date
                      nullable: true
                      example: 09-08-2020
                    budget_account_string:
                      type: string
                      nullable: true
                      example: budget$3
                    decommissioned:
                      type: integer
                      format: int64
                      nullable: true
                    provisioner:
                      type: string
                      nullable: true
                      example: cinch
                    project_number:
                      type: string
                      nullable: true
                      example: apiProjNum
                    snow_approval_group:
                      type: string
                      nullable: true
                      example: API Test SNOW approval group
                    budget_alert_monthly_threshold:
                      type: integer
                      format: int64
                      nullable: true
                      example: 500
                    tower_id:
                      type: integer
                      format: int64
                      nullable: true
                      example: 1
                    application_id:
                      type: integer
                      format: int64
                      nullable: true
                      example: 1
                - type: object
                  properties:
                    cloud_account_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Patched
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          master_payer_id:
                            type: integer
                            format: int64
                            example: 1
                          cloud_account_name:
                            type: string
                            example: sega
                          cloud_account_number:
                            type: string
                            example: 0123456789
                          intake_number:
                            type: string
                            nullable: true
                            example: APIIntake54321
                          account_type_id:
                            type: integer
                            format: int64
                            example: 1
                          cloud_account_root_email:
                            type: string
                            format: email
                            nullable: true
                            example: sonic@root.net
                          lob_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          create_date:
                            type: string
                            format: date
                            nullable: true
                            example: 09-08-2020
                          budget_account_string:
                            type: string
                            nullable: true
                            example: budget$3
                          decommissioned:
                            type: integer
                            format: int64
                            nullable: true
                          provisioner:
                            type: string
                            nullable: true
                            example: cinch
                          project_number:
                            type: string
                            nullable: true
                            example: apiProjNum
                          snow_approval_group:
                            type: string
                            nullable: true
                            example: API Test SNOW approval group
                          budget_alert_monthly_threshold:
                            type: integer
                            format: int64
                            nullable: true
                            example: 500
                          tower_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          application_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                      - type: object
                        properties:
                          cloud_account_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/accounts?cloud_account_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Account not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:PatcherFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  '/accounts/{cloud_account_id}':
    delete:
      tags:
        - accounts
      summary: Delete account
      description: Delete account.  next_link will be null.
      operationId: DeleteAccount
      parameters:
        - name: cloud_account_id
          in: path
          required: true
          description: Existing cloud account id
          schema:
            type: integer
            format: int64
            example: 3
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          master_payer_id:
                            type: integer
                            format: int64
                            example: 1
                          cloud_account_name:
                            type: string
                            example: sega
                          cloud_account_number:
                            type: string
                            example: 0123456789
                          intake_number:
                            type: string
                            nullable: true
                            example: APIIntake54321
                          account_type_id:
                            type: integer
                            format: int64
                            example: 1
                          cloud_account_root_email:
                            type: string
                            format: email
                            nullable: true
                            example: sonic@root.net
                          lob_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          create_date:
                            type: string
                            format: date
                            nullable: true
                            example: 09-08-2020
                          budget_account_string:
                            type: string
                            nullable: true
                            example: budget$3
                          decommissioned:
                            type: integer
                            format: int64
                            nullable: true
                          provisioner:
                            type: string
                            nullable: true
                            example: cinch
                          project_number:
                            type: string
                            nullable: true
                            example: apiProjNum
                          snow_approval_group:
                            type: string
                            nullable: true
                            example: API Test SNOW approval group
                          budget_alert_monthly_threshold:
                            type: integer
                            format: int64
                            nullable: true
                            example: 500
                          tower_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          application_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                      - type: object
                        properties:
                          cloud_account_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/accounts?cloud_account_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Account not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:DeleterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /accountapplications:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - accounts
        - applications
      summary: Find account with applications
      description: |
        Find accounts with applications, optionally querying by one or more resource columns or overridden pagination controls. See response model and example for the full set of queryable columns, not all of which are shown in query-string parameters.
      operationId: findAccountApplications
      parameters:
        - name: cloud_account_name
          in: query
          description: Account Name
          schema:
            type: string
          examples:
            name1:
              value: commodore
            name2:
              value: sega
        - name: application_id
          in: query
          description: Application Id
          schema:
            type: integer
            format: int32
          examples:
            id1:
              value: 2
            id2:
              value: 1
        - name: t_appid
          in: query
          description: tAppID (Application Identifier)
          schema:
            type: string
            pattern: '/^SVCD[0-9]{3}$/'
          examples:
            id1:
              value: SVCD002
            id2:
              value: SVCD003
        - name: next_token
          in: query
          description: |
            Used for pagination and is the inclusive primary key value after which data should be returned on a subsequent query. Must be a positive value.  Default: None (first page).
          schema:
            type: integer
            format: int64
            minimum: 1
            example: 20
        - name: limit
          in: query
          description: |
            The max number or rows to return.  Limit must be between 1 and positive value. If 20 >= limit > 0, then there is high confidence your query will respond in well under 1 second (SLO < 1 second). The greater limit is above 20, the less confidence your query will respond in under 1 second (no SLO).
          schema:
            type: integer
            format: int64
            default: 20
          examples:
            small:
              value: 5
            large:
              value: 20
            default:
              value: 10
        - name: use_like_comparator
          in: query
          description: |
            If True the where clause will be constructed using field LIKE %VALUE% instead of field = VALUE.  Default is false.
          schema:
            type: boolean
            default: false
          examples:
            exact:
              value: false
            fuzzy:
              value: true
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  paginationcontrol:
                    type: object
                    properties:
                      next_token:
                        type: integer
                        format: int32
                        example: 4
                      limit:
                        type: integer
                        format: int32
                        example: 2
                      sort_key:
                        type: string
                        example: row_num
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        cloud_account_id:
                          type: integer
                          format: int64
                          nullable: true
                          example: 1
                        cloud_account_name:
                          type: string
                          nullable: true
                          example: sega
                        cloud_account_number:
                          type: string
                          nullable: true
                          example: 0123456789
                        account_decommissioned:
                          type: integer
                          format: int64
                          nullable: true
                        environment_type_id:
                          type: integer
                          format: int64
                          nullable: true
                          example: 1
                        environment_type_name:
                          type: string
                          nullable: true
                          example: non-production
                        cloud_account_lob_id:
                          type: integer
                          format: int64
                          nullable: true
                          example: 1
                        cloud_account_lob:
                          type: string
                          nullable: true
                          example: lobA
                        application_id:
                          type: integer
                          format: int64
                          nullable: true
                          example: 1
                        application_name:
                          type: string
                          nullable: true
                          example: Zork
                        t_appid:
                          type: string
                          nullable: true
                          example: SVCD002
                        application_active:
                          type: integer
                          format: int64
                          nullable: true
                        application_lob_id:
                          type: integer
                          format: int64
                          nullable: true
                          example: 1
                        application_lob:
                          type: string
                          nullable: true
                          example: lobB
                        cloud_organization_id:
                          type: integer
                          format: int64
                          nullable: true
                          example: 1
                        master_payer_ident:
                          type: string
                          nullable: true
                          example: 111111111111
                        cloud_organization_name:
                          type: string
                          nullable: true
                          example: Assessments
                        row_num:
                          type: integer
                          format: int64
                          nullable: true
                          example: 1
                        next_link:
                          type: string
                          example: 'https://<server>/slater/accountapplications?application_id=123&cloud_account_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
            - slater-ro/read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:FinderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /contacts:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - contacts
      summary: Find contacts
      description: |
        Find contacts, optionally querying by one or more resource columns or overridden pagination controls. See response model and example for the full set of queryable columns, not all of which are shown in query-string parameters.
      operationId: findContacts
      parameters:
        - name: contact_name
          in: query
          description: Contact name
          schema:
            type: string
          examples:
            name1:
              value: speed racer
            name2:
              value: mighty mouse
        - name: contact_email
          in: query
          description: Email Contact
          schema:
            type: string
            format: email
          examples:
            root_email_contact:
              value: sonic@root.net
            one_contact:
              value: under.dog@saturday.org
            another_contact:
              value: speed.racer@saturday.org
        - name: next_token
          in: query
          description: |
            Used for pagination and is the inclusive primary key value after which data should be returned on a subsequent query. Must be a positive value.  Default: None (first page).
          schema:
            type: integer
            format: int64
            minimum: 1
            example: 20
        - name: limit
          in: query
          description: |
            The max number or rows to return.  Limit must be between 1 and positive value. If 20 >= limit > 0, then there is high confidence your query will respond in well under 1 second (SLO < 1 second). The greater limit is above 20, the less confidence your query will respond in under 1 second (no SLO).
          schema:
            type: integer
            format: int64
            default: 20
          examples:
            small:
              value: 5
            large:
              value: 20
            default:
              value: 10
        - name: use_like_comparator
          in: query
          description: |
            If True the where clause will be constructed using field LIKE %VALUE% instead of field = VALUE.  Default is false.
          schema:
            type: boolean
            default: false
          examples:
            exact:
              value: false
            fuzzy:
              value: true
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  paginationcontrol:
                    type: object
                    properties:
                      next_token:
                        type: integer
                        format: int32
                        example: 4
                      limit:
                        type: integer
                        format: int32
                        example: 2
                      sort_key:
                        type: string
                        example: row_num
                  results:
                    type: array
                    items:
                      allOf:
                        - allOf:
                            - allOf:
                                - type: object
                                  properties:
                                    contact_email:
                                      type: string
                                      format: email
                                      example: sonic@root.net
                                    contact_name:
                                      type: string
                                      nullable: true
                                      example: speed racer
                                - type: object
                                  properties:
                                    contact_id:
                                      type: integer
                                      format: int64
                                      example: 1
                            - type: object
                              properties:
                                date_last_update:
                                  type: string
                                  format: date
                                  nullable: true
                                  example: 09-08-2020
                                slater_update_user:
                                  type: string
                                  example: anonymous
                                next_link:
                                  type: string
                                  example: 'https://<server>/slater/contacts?contact_id=123'
                        - type: object
                          properties:
                            row_num:
                              type: integer
                              format: int64
                              nullable: true
                              example: 1
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
            - slater-ro/read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:FinderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    post:
      tags:
        - contacts
      summary: Create a contact
      description: Create a new contact
      operationId: createContact
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: Information to create contact
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                contact_email:
                  type: string
                  format: email
                  example: sonic@root.net
                contact_name:
                  type: string
                  nullable: true
                  example: speed racer
      responses:
        '201':
          description: Created
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          contact_email:
                            type: string
                            format: email
                            example: sonic@root.net
                          contact_name:
                            type: string
                            nullable: true
                            example: speed racer
                      - type: object
                        properties:
                          contact_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/contacts?contact_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:CreatorFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    put:
      tags:
        - contacts
      summary: Update existing contact
      description: 'Update existing contact name for a given contact id, but not the email address'
      operationId: updateContact
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: |
          Information to update contact. You must provide all fields you see in the model. Values may be null, but you may get a 400 error if you don't include a required value.
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    contact_email:
                      type: string
                      format: email
                      example: sonic@root.net
                    contact_name:
                      type: string
                      nullable: true
                      example: speed racer
                - type: object
                  properties:
                    contact_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Updated
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          contact_email:
                            type: string
                            format: email
                            example: sonic@root.net
                          contact_name:
                            type: string
                            nullable: true
                            example: speed racer
                      - type: object
                        properties:
                          contact_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/contacts?contact_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Contact not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:UpdaterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    patch:
      tags:
        - contacts
      summary: Patch existing contact
      description: 'Patch existing contact name for a given contact id, but not the email address'
      operationId: patchContact
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
      requestBody:
        description: Information to patch contact
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    contact_email:
                      type: string
                      format: email
                      example: sonic@root.net
                    contact_name:
                      type: string
                      nullable: true
                      example: speed racer
                - type: object
                  properties:
                    contact_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Patched
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          contact_email:
                            type: string
                            format: email
                            example: sonic@root.net
                          contact_name:
                            type: string
                            nullable: true
                            example: speed racer
                      - type: object
                        properties:
                          contact_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/contacts?contact_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Contact not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:PatcherFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  '/contacts/{contact_id}':
    delete:
      tags:
        - contacts
      summary: Delete contact
      description: 'Delete a contact, ignoring references from accounts and applications.  next_link will be null.'
      operationId: DeleteContact
      parameters:
        - name: contact_id
          in: path
          required: true
          description: Existing contact id
          schema:
            type: integer
            format: int64
            example: 3
        - name: purge_contact
          in: query
          description: Purge contact if true
          schema:
            type: boolean
            default: false
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          contact_email:
                            type: string
                            format: email
                            example: sonic@root.net
                          contact_name:
                            type: string
                            nullable: true
                            example: speed racer
                      - type: object
                        properties:
                          contact_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/contacts?contact_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Contact not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:DeleterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /contacttypes:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - contacts
      summary: Find contact types
      description: |
        Find contact types, optionally querying by one or more resource columns or overridden pagination controls. See response model and example for the full set of queryable columns, not all of which are shown in query-string parameters.
      operationId: findContactTypes
      parameters:
        - name: contact_type
          in: query
          description: Contact type
          schema:
            type: string
          examples:
            type1:
              value: service owner
            type2:
              value: account technical
        - name: contact_type_id
          in: query
          description: Contact type id
          schema:
            type: integer
            format: int32
          examples:
            type1:
              value: 2
            typ2:
              value: 3
        - name: next_token
          in: query
          description: |
            Used for pagination and is the inclusive primary key value after which data should be returned on a subsequent query. Must be a positive value.  Default: None (first page).
          schema:
            type: integer
            format: int64
            minimum: 1
            example: 20
        - name: limit
          in: query
          description: |
            The max number or rows to return.  Limit must be between 1 and positive value. If 20 >= limit > 0, then there is high confidence your query will respond in well under 1 second (SLO < 1 second). The greater limit is above 20, the less confidence your query will respond in under 1 second (no SLO).
          schema:
            type: integer
            format: int64
            default: 20
          examples:
            small:
              value: 5
            large:
              value: 20
            default:
              value: 10
        - name: use_like_comparator
          in: query
          description: |
            If True the where clause will be constructed using field LIKE %VALUE% instead of field = VALUE.  Default is false.
          schema:
            type: boolean
            default: false
          examples:
            exact:
              value: false
            fuzzy:
              value: true
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  paginationcontrol:
                    type: object
                    properties:
                      next_token:
                        type: integer
                        format: int32
                        example: 4
                      limit:
                        type: integer
                        format: int32
                        example: 2
                      sort_key:
                        type: string
                        example: row_num
                  results:
                    type: array
                    items:
                      allOf:
                        - allOf:
                            - allOf:
                                - type: object
                                  properties:
                                    contact_type:
                                      type: string
                                      example: service vp
                                - type: object
                                  properties:
                                    contact_type_id:
                                      type: integer
                                      format: int64
                                      example: 1
                            - type: object
                              properties:
                                date_last_update:
                                  type: string
                                  format: date
                                  nullable: true
                                  example: 09-08-2020
                                slater_update_user:
                                  type: string
                                  example: anonymous
                                next_link:
                                  type: string
                                  example: 'https://<server>/slater/contacttypes?contact_type_id=123'
                        - type: object
                          properties:
                            row_num:
                              type: integer
                              format: int64
                              nullable: true
                              example: 1
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
            - slater-ro/read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:FinderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    post:
      tags:
        - contacts
      summary: Creates a contact type
      description: Creates a new contact type
      operationId: createContactType
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: Information to create contact type
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                contact_type:
                  type: string
                  example: service vp
      responses:
        '201':
          description: Created
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          contact_type:
                            type: string
                            example: service vp
                      - type: object
                        properties:
                          contact_type_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/contacttypes?contact_type_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:CreatorFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    put:
      tags:
        - contacts
      summary: Updates a contact type
      description: 'Updates existing contact type for a given contact type id, but not application or cloud account required.'
      operationId: updateContactType
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: |
          Information to update contact type. You must provide all fields you see in the model. Values may be null, but you may get a 400 error if you don't include a required value.
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    contact_type:
                      type: string
                      example: service vp
                - type: object
                  properties:
                    contact_type_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Updated
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          contact_type:
                            type: string
                            example: service vp
                      - type: object
                        properties:
                          contact_type_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/contacttypes?contact_type_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: No contact type found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:UpdaterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    patch:
      tags:
        - contacts
      summary: Patches a contact type
      description: 'Patches existing contact type for a given contact type id, but not application or cloud account required.'
      operationId: patchContactType
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
      requestBody:
        description: Information to patch contact type
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    contact_type:
                      type: string
                      example: service vp
                - type: object
                  properties:
                    contact_type_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Patched
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          contact_type:
                            type: string
                            example: service vp
                      - type: object
                        properties:
                          contact_type_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/contacttypes?contact_type_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: No contact type found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:PatcherFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  '/contacttypes/{contact_type_id}':
    delete:
      tags:
        - contacts
      summary: Delete contact type
      description: 'Delete a contact type, ignoring references from contacts. next_link will be null.'
      operationId: DeleteContactType
      parameters:
        - name: contact_type_id
          in: path
          required: true
          description: Existing contact type id
          schema:
            type: integer
            format: int32
          examples:
            type1:
              value: 2
            typ2:
              value: 3
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          contact_type:
                            type: string
                            example: service vp
                      - type: object
                        properties:
                          contact_type_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/contacttypes?contact_type_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: No contact type found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:DeleterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /accountcontacts:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - accounts
        - contacts
      summary: Get account with contact
      description: |
        Get accounts with contacts, optionally querying by one or more resource columns or overridden pagination controls. See response model and example for the full set of queryable columns, not all of which are shown in query-string parameters.
      operationId: findAccountContacts
      parameters:
        - name: cloud_account_id
          in: query
          description: Account id
          schema:
            type: integer
            format: int32
          examples:
            id1:
              value: 2
            id2:
              value: 3
        - name: account_contact_id
          in: query
          description: Account contact id
          schema:
            type: integer
            format: int32
          examples:
            id1:
              value: 2
            id2:
              value: 3
        - name: cloud_account_name
          in: query
          description: Account Name
          schema:
            type: string
          examples:
            name1:
              value: commodore
            name2:
              value: sega
        - name: contact_email
          in: query
          description: Email Contact
          schema:
            type: string
            format: email
          examples:
            root_email_contact:
              value: sonic@root.net
            one_contact:
              value: under.dog@saturday.org
            another_contact:
              value: speed.racer@saturday.org
        - name: next_token
          in: query
          description: |
            Used for pagination and is the inclusive primary key value after which data should be returned on a subsequent query. Must be a positive value.  Default: None (first page).
          schema:
            type: integer
            format: int64
            minimum: 1
            example: 20
        - name: limit
          in: query
          description: |
            The max number or rows to return.  Limit must be between 1 and positive value. If 20 >= limit > 0, then there is high confidence your query will respond in well under 1 second (SLO < 1 second). The greater limit is above 20, the less confidence your query will respond in under 1 second (no SLO).
          schema:
            type: integer
            format: int64
            default: 20
          examples:
            small:
              value: 5
            large:
              value: 20
            default:
              value: 10
        - name: use_like_comparator
          in: query
          description: |
            If True the where clause will be constructed using field LIKE %VALUE% instead of field = VALUE.  Default is false.
          schema:
            type: boolean
            default: false
          examples:
            exact:
              value: false
            fuzzy:
              value: true
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  paginationcontrol:
                    type: object
                    properties:
                      next_token:
                        type: integer
                        format: int32
                        example: 4
                      limit:
                        type: integer
                        format: int32
                        example: 2
                      sort_key:
                        type: string
                        example: row_num
                  results:
                    type: array
                    items:
                      allOf:
                        - allOf:
                            - allOf:
                                - type: object
                                  properties:
                                    contact_type_id:
                                      type: integer
                                      format: int64
                                      example: 1
                                    cloud_account_id:
                                      type: integer
                                      format: int64
                                      example: 1
                                    contact_id:
                                      type: integer
                                      format: int64
                                      example: 1
                                - type: object
                                  properties:
                                    account_contact_id:
                                      type: integer
                                      format: int64
                                      example: 1
                            - type: object
                              properties:
                                date_last_update:
                                  type: string
                                  format: date
                                  nullable: true
                                  example: 09-08-2020
                                slater_update_user:
                                  type: string
                                  example: anonymous
                                next_link:
                                  type: string
                                  example: 'https://<server>/slater/accountcontacts?account_contact_id=123'
                        - type: object
                          properties:
                            cloud_account_number:
                              type: string
                              nullable: true
                              example: 0123456789
                            cloud_account_name:
                              type: string
                              nullable: true
                              example: sega
                            cloud_account_root_email:
                              type: string
                              format: email
                              nullable: true
                              example: sonic@root.net
                            account_type_id:
                              type: integer
                              format: int64
                              nullable: true
                              example: 1
                            account_type_name:
                              type: string
                              nullable: true
                              example: non-production
                            master_payer_id:
                              type: integer
                              format: int64
                              nullable: true
                              example: 1
                            master_payer_ident:
                              type: string
                              nullable: true
                              example: 111111111111
                            master_payer_name:
                              type: string
                              nullable: true
                              example: SLT BU Master Payer 1
                            budget_alert_monthly_threshold:
                              type: integer
                              format: int64
                              nullable: true
                              example: 500
                            budget_account_string:
                              type: string
                              nullable: true
                              example: budget$3
                            provisioner:
                              type: string
                              nullable: true
                              example: cinch
                            decommissioned:
                              type: integer
                              format: int64
                              nullable: true
                            lob_id:
                              type: integer
                              format: int64
                              nullable: true
                              example: 1
                            project_number:
                              type: string
                              nullable: true
                              example: apiProjNum
                            snow_approval_group:
                              type: string
                              nullable: true
                              example: API Test SNOW approval group
                            governance_lob_name:
                              type: string
                              nullable: true
                              example: lob a
                            contact_name:
                              type: string
                              nullable: true
                              example: speed racer
                            contact_email:
                              type: string
                              format: email
                              nullable: true
                              example: sonic@root.net
                            contact_type:
                              type: string
                              nullable: true
                              example: service vp
                            row_num:
                              type: integer
                              format: int64
                              nullable: true
                              example: 1
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
            - slater-ro/read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:FinderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    post:
      tags:
        - accounts
        - contacts
      summary: Create new account contact
      description: Create new account contact
      operationId: createAccountContact
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: Information to create account contact
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                contact_type_id:
                  type: integer
                  format: int64
                  example: 1
                cloud_account_id:
                  type: integer
                  format: int64
                  example: 1
                contact_id:
                  type: integer
                  format: int64
                  example: 1
      responses:
        '201':
          description: Created
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          contact_type_id:
                            type: integer
                            format: int64
                            example: 1
                          cloud_account_id:
                            type: integer
                            format: int64
                            example: 1
                          contact_id:
                            type: integer
                            format: int64
                            example: 1
                      - type: object
                        properties:
                          account_contact_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/accountcontacts?account_contact_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:CreatorFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    put:
      tags:
        - contacts
        - accounts
      summary: Updates account contacts
      description: Updates existing account contact given account contact id
      operationId: updateAccountContact
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: |
          Information to update account contact type.
          The following attributes cannot be null:
          - account_contact_id
          - contact_type_id
          - cloud_account_id
          - contact_id
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    contact_type_id:
                      type: integer
                      format: int64
                      example: 1
                    cloud_account_id:
                      type: integer
                      format: int64
                      example: 1
                    contact_id:
                      type: integer
                      format: int64
                      example: 1
                - type: object
                  properties:
                    account_contact_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Updated
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          contact_type_id:
                            type: integer
                            format: int64
                            example: 1
                          cloud_account_id:
                            type: integer
                            format: int64
                            example: 1
                          contact_id:
                            type: integer
                            format: int64
                            example: 1
                      - type: object
                        properties:
                          account_contact_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/accountcontacts?account_contact_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: No account contact id found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:UpdaterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    patch:
      tags:
        - contacts
        - accounts
      summary: Patches account contacts
      description: Patches existing account contact given account contact id
      operationId: patchAccountContact
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
      requestBody:
        description: |
          Information to patch account contact type.
          The following attributes cannot be null:
          - account_contact_id
          - contact_type_id
          - cloud_account_id
          - contact_id
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    contact_type_id:
                      type: integer
                      format: int64
                      example: 1
                    cloud_account_id:
                      type: integer
                      format: int64
                      example: 1
                    contact_id:
                      type: integer
                      format: int64
                      example: 1
                - type: object
                  properties:
                    account_contact_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Patched
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          contact_type_id:
                            type: integer
                            format: int64
                            example: 1
                          cloud_account_id:
                            type: integer
                            format: int64
                            example: 1
                          contact_id:
                            type: integer
                            format: int64
                            example: 1
                      - type: object
                        properties:
                          account_contact_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/accountcontacts?account_contact_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: No account contact id found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:PatcherFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  '/accountcontacts/{account_contact_id}':
    delete:
      tags:
        - accounts
        - contacts
      summary: Delete account contact
      description: Delete an account contact. next_link will be null.
      operationId: DeleteAccountContact
      parameters:
        - name: account_contact_id
          in: path
          required: true
          description: Existing account contact id
          schema:
            type: integer
            format: int32
          examples:
            id1:
              value: 2
            id2:
              value: 3
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          contact_type_id:
                            type: integer
                            format: int64
                            example: 1
                          cloud_account_id:
                            type: integer
                            format: int64
                            example: 1
                          contact_id:
                            type: integer
                            format: int64
                            example: 1
                      - type: object
                        properties:
                          account_contact_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/accountcontacts?account_contact_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: No account contact found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:DeleterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /applicationcontacts:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - applications
        - contacts
      summary: Get application with contact
      description: |
        Get application with contacts, optionally querying by one or more resource columns or overridden pagination controls. See response model and example for the full set of queryable columns, not all of which are shown in query-string parameters.
      operationId: findApplicationContacts
      parameters:
        - name: application_name
          in: query
          description: Application Name
          schema:
            type: string
          examples:
            name1:
              value: Duck Hunt
            name2:
              value: Defender
              summary: another application name
        - name: contact_email
          in: query
          description: Email Contact
          schema:
            type: string
            format: email
          examples:
            root_email_contact:
              value: sonic@root.net
            one_contact:
              value: under.dog@saturday.org
            another_contact:
              value: speed.racer@saturday.org
        - name: next_token
          in: query
          description: |
            Used for pagination and is the inclusive primary key value after which data should be returned on a subsequent query. Must be a positive value.  Default: None (first page).
          schema:
            type: integer
            format: int64
            minimum: 1
            example: 20
        - name: limit
          in: query
          description: |
            The max number or rows to return.  Limit must be between 1 and positive value. If 20 >= limit > 0, then there is high confidence your query will respond in well under 1 second (SLO < 1 second). The greater limit is above 20, the less confidence your query will respond in under 1 second (no SLO).
          schema:
            type: integer
            format: int64
            default: 20
          examples:
            small:
              value: 5
            large:
              value: 20
            default:
              value: 10
        - name: use_like_comparator
          in: query
          description: |
            If True the where clause will be constructed using field LIKE %VALUE% instead of field = VALUE.  Default is false.
          schema:
            type: boolean
            default: false
          examples:
            exact:
              value: false
            fuzzy:
              value: true
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  paginationcontrol:
                    type: object
                    properties:
                      next_token:
                        type: integer
                        format: int32
                        example: 4
                      limit:
                        type: integer
                        format: int32
                        example: 2
                      sort_key:
                        type: string
                        example: row_num
                  results:
                    type: array
                    items:
                      allOf:
                        - allOf:
                            - allOf:
                                - type: object
                                  properties:
                                    contact_type_id:
                                      type: integer
                                      format: int64
                                      example: 1
                                    application_id:
                                      type: integer
                                      format: int64
                                      example: 1
                                    contact_id:
                                      type: integer
                                      format: int64
                                      example: 1
                                - type: object
                                  properties:
                                    application_contact_id:
                                      type: integer
                                      format: int64
                                      example: 1
                            - type: object
                              properties:
                                date_last_update:
                                  type: string
                                  format: date
                                  nullable: true
                                  example: 09-08-2020
                                slater_update_user:
                                  type: string
                                  example: anonymous
                                next_link:
                                  type: string
                                  example: 'https://<server>/slater/applicationcontacts?application_contact_id=123'
                        - type: object
                          properties:
                            application_name:
                              type: string
                              nullable: true
                              example: Zork
                            t_appid:
                              type: string
                              nullable: true
                              example: SVCD002
                            application_description:
                              type: string
                              nullable: true
                              example: 'text-based d&d game...the grue are in the dark, so keep the torch lit!'
                            create_date:
                              type: string
                              format: date
                              nullable: true
                              example: 09-08-2020
                            application_budget_account_string:
                              type: string
                              nullable: true
                              example: budget$3
                            active:
                              type: integer
                              format: int64
                              nullable: true
                              example: 1
                            lob_id:
                              type: integer
                              format: int64
                              nullable: true
                              example: 1
                            governance_lob_name:
                              type: string
                              nullable: true
                              example: lob a
                            contact_name:
                              type: string
                              nullable: true
                              example: speed racer
                            contact_email:
                              type: string
                              format: email
                              nullable: true
                              example: sonic@root.net
                            contact_type:
                              type: string
                              nullable: true
                              example: service vp
                            row_num:
                              type: integer
                              format: int64
                              nullable: true
                              example: 1
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
            - slater-ro/read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:FinderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    post:
      tags:
        - applications
        - contacts
      summary: Create new application contact
      description: Create new application contact
      operationId: createApplicationContact
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: Information to create application contact
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                contact_type_id:
                  type: integer
                  format: int64
                  example: 1
                application_id:
                  type: integer
                  format: int64
                  example: 1
                contact_id:
                  type: integer
                  format: int64
                  example: 1
      responses:
        '201':
          description: Created
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          contact_type_id:
                            type: integer
                            format: int64
                            example: 1
                          application_id:
                            type: integer
                            format: int64
                            example: 1
                          contact_id:
                            type: integer
                            format: int64
                            example: 1
                      - type: object
                        properties:
                          application_contact_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/applicationcontacts?application_contact_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:CreatorFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    put:
      tags:
        - applications
        - contacts
      summary: Updates application contacts
      description: Updates existing application contact given appliation contact id
      operationId: updateApplicationContact
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: |
          Information to update application contact. The following attributes cannot be null: * application_contact_id * contact_type_id * application_id * contact_id
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    contact_type_id:
                      type: integer
                      format: int64
                      example: 1
                    application_id:
                      type: integer
                      format: int64
                      example: 1
                    contact_id:
                      type: integer
                      format: int64
                      example: 1
                - type: object
                  properties:
                    application_contact_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Updated
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          contact_type_id:
                            type: integer
                            format: int64
                            example: 1
                          application_id:
                            type: integer
                            format: int64
                            example: 1
                          contact_id:
                            type: integer
                            format: int64
                            example: 1
                      - type: object
                        properties:
                          application_contact_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/applicationcontacts?application_contact_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: No application contact id found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:UpdaterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    patch:
      tags:
        - applications
        - contacts
      summary: Patches application contacts
      description: Patches existing application contact given appliation contact id
      operationId: patchApplicationContact
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
      requestBody:
        description: Information to patch application contact
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    contact_type_id:
                      type: integer
                      format: int64
                      example: 1
                    application_id:
                      type: integer
                      format: int64
                      example: 1
                    contact_id:
                      type: integer
                      format: int64
                      example: 1
                - type: object
                  properties:
                    application_contact_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Patched
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          contact_type_id:
                            type: integer
                            format: int64
                            example: 1
                          application_id:
                            type: integer
                            format: int64
                            example: 1
                          contact_id:
                            type: integer
                            format: int64
                            example: 1
                      - type: object
                        properties:
                          application_contact_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/applicationcontacts?application_contact_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: No application contact id found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:PatcherFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  '/applicationcontacts/{application_contact_id}':
    delete:
      tags:
        - applications
        - contacts
      summary: Delete applications contact
      description: Delete an applications contact. next_link will be null.
      operationId: DeleteApplicationContact
      parameters:
        - name: application_contact_id
          in: path
          required: true
          description: Application Contact Id
          schema:
            type: integer
            format: int32
          examples:
            id1:
              value: 2
            id2:
              value: 1
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          contact_type_id:
                            type: integer
                            format: int64
                            example: 1
                          application_id:
                            type: integer
                            format: int64
                            example: 1
                          contact_id:
                            type: integer
                            format: int64
                            example: 1
                      - type: object
                        properties:
                          application_contact_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/applicationcontacts?application_contact_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: No application contact found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:DeleterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /applications:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - applications
      summary: Finds applications
      description: |
        Find summary view of all applications, optionally querying by one or more resource columns or overridden pagination controls. See response model and example for the full set of queryable columns, not all of which are shown in query-string parameters.
      operationId: findApplications
      parameters:
        - name: application_name
          in: query
          description: Application Name
          schema:
            type: string
          examples:
            name1:
              value: Duck Hunt
            name2:
              value: Defender
              summary: another application name
        - name: application_id
          in: query
          description: Application Id
          schema:
            type: integer
            format: int32
          examples:
            id1:
              value: 2
            id2:
              value: 1
        - name: t_appid
          in: query
          description: tAppID (Application Identifier)
          schema:
            type: string
            pattern: '/^SVCD[0-9]{3}$/'
          examples:
            id1:
              value: SVCD002
            id2:
              value: SVCD003
        - name: next_token
          in: query
          description: |
            Used for pagination and is the inclusive primary key value after which data should be returned on a subsequent query. Must be a positive value.  Default: None (first page).
          schema:
            type: integer
            format: int64
            minimum: 1
            example: 20
        - name: limit
          in: query
          description: |
            The max number or rows to return.  Limit must be between 1 and positive value. If 20 >= limit > 0, then there is high confidence your query will respond in well under 1 second (SLO < 1 second). The greater limit is above 20, the less confidence your query will respond in under 1 second (no SLO).
          schema:
            type: integer
            format: int64
            default: 20
          examples:
            small:
              value: 5
            large:
              value: 20
            default:
              value: 10
        - name: use_like_comparator
          in: query
          description: |
            If True the where clause will be constructed using field LIKE %VALUE% instead of field = VALUE.  Default is false.
          schema:
            type: boolean
            default: false
          examples:
            exact:
              value: false
            fuzzy:
              value: true
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    paginationcontrol:
                      type: object
                      properties:
                        next_token:
                          type: integer
                          format: int32
                          example: 4
                        limit:
                          type: integer
                          format: int32
                          example: 2
                        sort_key:
                          type: string
                          example: row_num
                    results:
                      type: array
                      items:
                        allOf:
                          - allOf:
                              - allOf:
                                  - type: object
                                    properties:
                                      application_name:
                                        type: string
                                        example: Zork
                                      t_appid:
                                        type: string
                                        example: SVCD002
                                      application_description:
                                        type: string
                                        nullable: true
                                        example: 'text-based d&d game...the grue are in the dark, so keep the torch lit!'
                                      lob_id:
                                        type: integer
                                        format: int64
                                        nullable: true
                                        example: 1
                                      create_date:
                                        type: string
                                        format: date
                                        nullable: true
                                        example: 09-08-2020
                                      application_budget_account_string:
                                        type: string
                                        nullable: true
                                        example: budget$3
                                      active:
                                        type: integer
                                        format: int64
                                        nullable: true
                                        example: 1
                                      business_unit_id:
                                        type: integer
                                        format: int64
                                        nullable: true
                                        example: 1
                                      pagerduty_url:
                                        type: string
                                        nullable: true
                                        example: 'http://www.someurl.com/2'
                                      tower_id:
                                        type: integer
                                        format: int64
                                        nullable: true
                                        example: 1
                                  - type: object
                                    properties:
                                      application_id:
                                        type: integer
                                        format: int64
                                        example: 1
                              - type: object
                                properties:
                                  date_last_update:
                                    type: string
                                    format: date
                                    nullable: true
                                    example: 09-08-2020
                                  slater_update_user:
                                    type: string
                                    example: anonymous
                                  next_link:
                                    type: string
                                    example: 'https://<server>/slater/applications?application_id=123'
                          - type: object
                            properties:
                              governance_lob_name:
                                type: string
                                nullable: true
                                example: lob a
                              business_unit_name:
                                type: string
                                nullable: true
                                example: Echo Chamber
                              tower_name:
                                type: string
                                nullable: true
                                example: Eiffel Tower
                              tower_contact_id:
                                type: integer
                                format: int64
                                nullable: true
                                example: 1
                              tower_contact_name:
                                type: string
                                nullable: true
                                example: speed racer
                              tower_contact_email:
                                type: string
                                format: email
                                nullable: true
                                example: sonic@root.net
                              row_num:
                                type: integer
                                format: int64
                                nullable: true
                                example: 1
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Server error. Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
            - slater-ro/read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:FinderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    post:
      tags:
        - applications
      summary: Create an application
      description: Create an application with provisioning resources
      operationId: createApplications
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: Information to create application
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                application_name:
                  type: string
                  example: Zork
                t_appid:
                  type: string
                  example: SVCD002
                application_description:
                  type: string
                  nullable: true
                  example: 'text-based d&d game...the grue are in the dark, so keep the torch lit!'
                lob_id:
                  type: integer
                  format: int64
                  nullable: true
                  example: 1
                create_date:
                  type: string
                  format: date
                  nullable: true
                  example: 09-08-2020
                application_budget_account_string:
                  type: string
                  nullable: true
                  example: budget$3
                active:
                  type: integer
                  format: int64
                  nullable: true
                  example: 1
                business_unit_id:
                  type: integer
                  format: int64
                  nullable: true
                  example: 1
                pagerduty_url:
                  type: string
                  nullable: true
                  example: 'http://www.someurl.com/2'
                tower_id:
                  type: integer
                  format: int64
                  nullable: true
                  example: 1
      responses:
        '201':
          description: Created
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          application_name:
                            type: string
                            example: Zork
                          t_appid:
                            type: string
                            example: SVCD002
                          application_description:
                            type: string
                            nullable: true
                            example: 'text-based d&d game...the grue are in the dark, so keep the torch lit!'
                          lob_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          create_date:
                            type: string
                            format: date
                            nullable: true
                            example: 09-08-2020
                          application_budget_account_string:
                            type: string
                            nullable: true
                            example: budget$3
                          active:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          business_unit_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          pagerduty_url:
                            type: string
                            nullable: true
                            example: 'http://www.someurl.com/2'
                          tower_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                      - type: object
                        properties:
                          application_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/applications?application_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:CreatorFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    put:
      tags:
        - applications
      summary: Updates application
      description: Updates existing given application id
      operationId: updateApplication
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        description: |
          Information to update application. The following attributes cannot be null: * application_id * application_name * t_appid
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    application_name:
                      type: string
                      example: Zork
                    t_appid:
                      type: string
                      example: SVCD002
                    application_description:
                      type: string
                      nullable: true
                      example: 'text-based d&d game...the grue are in the dark, so keep the torch lit!'
                    lob_id:
                      type: integer
                      format: int64
                      nullable: true
                      example: 1
                    create_date:
                      type: string
                      format: date
                      nullable: true
                      example: 09-08-2020
                    application_budget_account_string:
                      type: string
                      nullable: true
                      example: budget$3
                    active:
                      type: integer
                      format: int64
                      nullable: true
                      example: 1
                    business_unit_id:
                      type: integer
                      format: int64
                      nullable: true
                      example: 1
                    pagerduty_url:
                      type: string
                      nullable: true
                      example: 'http://www.someurl.com/2'
                    tower_id:
                      type: integer
                      format: int64
                      nullable: true
                      example: 1
                - type: object
                  properties:
                    application_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Updated
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          application_name:
                            type: string
                            example: Zork
                          t_appid:
                            type: string
                            example: SVCD002
                          application_description:
                            type: string
                            nullable: true
                            example: 'text-based d&d game...the grue are in the dark, so keep the torch lit!'
                          lob_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          create_date:
                            type: string
                            format: date
                            nullable: true
                            example: 09-08-2020
                          application_budget_account_string:
                            type: string
                            nullable: true
                            example: budget$3
                          active:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          business_unit_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          pagerduty_url:
                            type: string
                            nullable: true
                            example: 'http://www.someurl.com/2'
                          tower_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                      - type: object
                        properties:
                          application_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/applications?application_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: No application found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:UpdaterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    patch:
      tags:
        - applications
      summary: Patches application
      description: Patches existing given application id
      operationId: patchApplication
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
      requestBody:
        description: Information to patch application
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    application_name:
                      type: string
                      example: Zork
                    t_appid:
                      type: string
                      example: SVCD002
                    application_description:
                      type: string
                      nullable: true
                      example: 'text-based d&d game...the grue are in the dark, so keep the torch lit!'
                    lob_id:
                      type: integer
                      format: int64
                      nullable: true
                      example: 1
                    create_date:
                      type: string
                      format: date
                      nullable: true
                      example: 09-08-2020
                    application_budget_account_string:
                      type: string
                      nullable: true
                      example: budget$3
                    active:
                      type: integer
                      format: int64
                      nullable: true
                      example: 1
                    business_unit_id:
                      type: integer
                      format: int64
                      nullable: true
                      example: 1
                    pagerduty_url:
                      type: string
                      nullable: true
                      example: 'http://www.someurl.com/2'
                    tower_id:
                      type: integer
                      format: int64
                      nullable: true
                      example: 1
                - type: object
                  properties:
                    application_id:
                      type: integer
                      format: int64
                      example: 1
      responses:
        '200':
          description: Patched
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          application_name:
                            type: string
                            example: Zork
                          t_appid:
                            type: string
                            example: SVCD002
                          application_description:
                            type: string
                            nullable: true
                            example: 'text-based d&d game...the grue are in the dark, so keep the torch lit!'
                          lob_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          create_date:
                            type: string
                            format: date
                            nullable: true
                            example: 09-08-2020
                          application_budget_account_string:
                            type: string
                            nullable: true
                            example: budget$3
                          active:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          business_unit_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          pagerduty_url:
                            type: string
                            nullable: true
                            example: 'http://www.someurl.com/2'
                          tower_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                      - type: object
                        properties:
                          application_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/applications?application_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: No application found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: all
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:PatcherFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  '/applications/{application_id}':
    delete:
      tags:
        - applications
      summary: Delete application
      description: Delete an application. next_link will be null.
      operationId: DeleteApplication
      parameters:
        - name: application_id
          in: path
          required: true
          description: Existing application id
          schema:
            type: integer
            format: int64
            example: 3
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          application_name:
                            type: string
                            example: Zork
                          t_appid:
                            type: string
                            example: SVCD002
                          application_description:
                            type: string
                            nullable: true
                            example: 'text-based d&d game...the grue are in the dark, so keep the torch lit!'
                          lob_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          create_date:
                            type: string
                            format: date
                            nullable: true
                            example: 09-08-2020
                          application_budget_account_string:
                            type: string
                            nullable: true
                            example: budget$3
                          active:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          business_unit_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                          pagerduty_url:
                            type: string
                            nullable: true
                            example: 'http://www.someurl.com/2'
                          tower_id:
                            type: integer
                            format: int64
                            nullable: true
                            example: 1
                      - type: object
                        properties:
                          application_id:
                            type: integer
                            format: int64
                            example: 1
                  - type: object
                    properties:
                      date_last_update:
                        type: string
                        format: date
                        nullable: true
                        example: 09-08-2020
                      slater_update_user:
                        type: string
                        example: anonymous
                      next_link:
                        type: string
                        example: 'https://<server>/slater/applications?application_id=123'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: No application found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:DeleterFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /cdsallsnapshot:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - cdsallsnapshot
      summary: Find cds all snapshot data
      description: Find cds all snapshot data. Use must set use_like_comparator=True in addition to using allcolumns=<column snippet value>.  Optionally override pagination controls.
      operationId: findCdsAllSnapshot
      parameters:
        - name: all_column
          in: query
          required: false
          description: All columns parameter provides google-like search capability
          schema:
            type: string
          examples:
            e1:
              value: acc
            e2:
              value: abb
        - name: next_token
          in: query
          description: |
            Used for pagination and is the inclusive primary key value after which data should be returned on a subsequent query. Must be a positive value.  Default: None (first page).
          schema:
            type: integer
            format: int64
            minimum: 1
            example: 20
        - name: limit
          in: query
          description: |
            The max number or rows to return.  Limit must be between 1 and positive value. If 20 >= limit > 0, then there is high confidence your query will respond in well under 1 second (SLO < 1 second). The greater limit is above 20, the less confidence your query will respond in under 1 second (no SLO).
          schema:
            type: integer
            format: int64
            default: 20
          examples:
            small:
              value: 5
            large:
              value: 20
            default:
              value: 10
        - name: use_like_comparator
          in: query
          description: |
            If True the where clause will be constructed using field LIKE %VALUE% instead of field = VALUE.  Default is false.
          schema:
            type: boolean
            default: false
          examples:
            exact:
              value: false
            fuzzy:
              value: true
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  t_appid:
                    type: string
                    nullable: true
                    example: SVCD002
                  account_number:
                    type: string
                    nullable: true
                  account_name:
                    type: string
                    nullable: true
                  account_type:
                    type: string
                    nullable: true
                  application:
                    type: string
                    nullable: true
                  account_owner:
                    type: string
                    nullable: true
                  account_owner_email:
                    type: string
                    nullable: true
                  technical_contact:
                    type: string
                    nullable: true
                  technical_contact_email:
                    type: string
                    nullable: true
                  product_owner:
                    type: string
                    nullable: true
                  product_owner_email:
                    type: string
                    nullable: true
                  funding_account_string:
                    type: string
                    nullable: true
                  budget_account_string:
                    type: string
                    nullable: true
                    example: budget$3
                  project_number:
                    type: string
                    nullable: true
                    example: apiProjNum
                  business_unit:
                    type: string
                    nullable: true
                    example: Echo Chamber
                  tower:
                    type: string
                    nullable: true
                  governance_lob:
                    type: string
                    nullable: true
                  master_payer:
                    type: string
                    nullable: true
                  tdm:
                    type: string
                    nullable: true
                  tdm_email:
                    type: string
                    nullable: true
                  pagerduty_url:
                    type: string
                    nullable: true
                    example: 'http://www.someurl.com/2'
                  application_description:
                    type: string
                    nullable: true
                    example: 'text-based d&d game...the grue are in the dark, so keep the torch lit!'
                  budget_lob:
                    type: string
                    nullable: true
                  budget_account_tower:
                    type: string
                    nullable: true
                  budget_vp:
                    type: string
                    nullable: true
                  application_hosting_account_string:
                    type: string
                    nullable: true
                  service_vp:
                    type: string
                    nullable: true
                  service_vp_email:
                    type: string
                    nullable: true
                  primary_business_contact:
                    type: string
                    nullable: true
                  primary_business_contact_email:
                    type: string
                    nullable: true
                  secondary_business_contact:
                    type: string
                    nullable: true
                  secondary_business_contact_email:
                    type: string
                    nullable: true
                  account_active:
                    type: string
                    nullable: true
                  create_date:
                    type: string
                    format: date
                    nullable: true
                    example: 09-08-2020
                  row_num:
                    type: integer
                    format: int64
                    nullable: true
                    example: 1
                  datetime_last_refresh:
                    type: string
                    nullable: true
                  all_column:
                    type: string
                    nullable: true
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: No cds all snapshot data
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
            - slater-ro/read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:FinderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /batchgroup:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - batch
      summary: Retrieve the status of a batch group load by batch group uuid
      description: |
        Retrieve the status of a batch group load by batch group uuid.
      operationId: findBatchGroup
      parameters:
        - name: group_batch_uuid
          in: query
          description: Group Batch UUID (UUID v4)
          schema:
            type: string
            format: uuid
          examples:
            id1:
              value: 4e29198f-8656-4eac-8bf5-ee16643627f9
            id2:
              value: 8627323f-6c97-4cd3-868a-2f3f46bc0ee8
        - name: group_batch_load_id
          in: query
          description: Group Batch Load ID
          schema:
            type: integer
            format: int64
          examples:
            id1:
              value: 123
            id2:
              value: 74
        - name: slater_user_query_param
          in: query
          description: Audit slater user. Must be supplied with all endpoint requests.
          schema:
            type: string
            example: Daffy Duck
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      allOf:
                        - type: object
                          properties:
                            group_batch_load_id:
                              type: integer
                              format: int64
                              example: 123
                            group_batch_uuid:
                              type: string
                              format: uuid
                              example: 893fb813-7a3d-4765-adad-222ddd89d1b1
                            status:
                              type: string
                              enum:
                                - Processing
                                - Complete
                              example: Complete
                            slater_update_user:
                              type: string
                              example: Daffy Duck
                            load_date:
                              type: string
                              format: date
                              example: '2020-04-30'
                            processed_date:
                              type: string
                              format: date
                              nullable: true
                              example: '2020-04-30'
                            num_errors:
                              type: integer
                              nullable: true
                              format: int64
                              example: 4
                            batch_loads:
                              type: array
                              items:
                                type: object
                                properties:
                                  batch_load_id:
                                    type: integer
                                    format: int64
                                    example: 123
                                  group_batch_load_id:
                                    type: integer
                                    format: int64
                                    example: 123
                                  s3_key:
                                    type: string
                                    example: inbound/74b77d6c-221e-4154-a84c-800acd9932da/application_contacts.csv
                                  status:
                                    type: string
                                    enum:
                                      - Processing
                                      - Complete
                                    example: Complete
                                  slater_update_user:
                                    type: string
                                    example: Daffy Duck
                                  load_date:
                                    type: string
                                    format: date
                                    example: '2020-04-30'
                                  processed_date:
                                    type: string
                                    format: date
                                    nullable: true
                                    example: '2020-04-30'
                                  num_errors:
                                    type: integer
                                    nullable: true
                                    format: int64
                                    example: 11
                                  next_link:
                                    type: string
                                    example: 'https://<server>/slater/batcherrors?batch_load_id=123'
                        - type: object
                          properties:
                            next_link:
                              type: string
                              example: 'https://<server>/slater/batchgroup?group_batch_uuid=893fb813-7a3d-4765-adad-222ddd89d1b1'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Server error. Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
            - slater-ro/read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:FinderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
    post:
      tags:
        - batch
      summary: 'Batch upload applications, accounts, and contacts as a group'
      description: 'Batch upload applications, accounts, and contacts as a group'
      operationId: batchGroupUpload
      parameters:
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                group_batch_uuid:
                  type: string
                  format: uuid
                group_batch_zip:
                  type: string
                  format: binary
              required:
                - group_batch_uuid
            encoding:
              group_batch_zip:
                contentType: application/zip
      responses:
        '202':
          description: 'Successful file upload, batch processing started'
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      group_batch_load_id:
                        type: integer
                        format: int64
                        example: 123
                      group_batch_uuid:
                        type: string
                        format: uuid
                        example: 893fb813-7a3d-4765-adad-222ddd89d1b1
                      status:
                        type: string
                        enum:
                          - Processing
                          - Complete
                        example: Complete
                      slater_update_user:
                        type: string
                        example: Daffy Duck
                      load_date:
                        type: string
                        format: date
                        example: '2020-04-30'
                      processed_date:
                        type: string
                        format: date
                        nullable: true
                        example: '2020-04-30'
                      num_errors:
                        type: integer
                        nullable: true
                        format: int64
                        example: 4
                      batch_loads:
                        type: array
                        items:
                          type: object
                          properties:
                            batch_load_id:
                              type: integer
                              format: int64
                              example: 123
                            group_batch_load_id:
                              type: integer
                              format: int64
                              example: 123
                            s3_key:
                              type: string
                              example: inbound/74b77d6c-221e-4154-a84c-800acd9932da/application_contacts.csv
                            status:
                              type: string
                              enum:
                                - Processing
                                - Complete
                              example: Complete
                            slater_update_user:
                              type: string
                              example: Daffy Duck
                            load_date:
                              type: string
                              format: date
                              example: '2020-04-30'
                            processed_date:
                              type: string
                              format: date
                              nullable: true
                              example: '2020-04-30'
                            num_errors:
                              type: integer
                              nullable: true
                              format: int64
                              example: 11
                            next_link:
                              type: string
                              example: 'https://<server>/slater/batcherrors?batch_load_id=123'
                  - type: object
                    properties:
                      next_link:
                        type: string
                        example: 'https://<server>/slater/batchgroup?group_batch_uuid=893fb813-7a3d-4765-adad-222ddd89d1b1'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Server error. Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:UploaderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /batcherrors:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - batch
      summary: Retrieve paginated batch errors by batch load id
      description: |
        Retrieve paginated batch errors by batch load id, optionally overridding pagination controls. See response model and example for the full set of queryable columns, not all of which are shown in query-string parameters.
      operationId: findBatchErrors
      parameters:
        - name: batch_load_id
          in: query
          required: true
          description: Batch load ID
          schema:
            type: integer
            format: int64
          examples:
            id1:
              value: 123
            id2:
              value: 99
        - name: next_token
          in: query
          description: |
            Used for pagination and is the inclusive primary key value after which data should be returned on a subsequent query. Must be a positive value.  Default: None (first page).
          schema:
            type: integer
            format: int64
            minimum: 1
            example: 20
        - name: limit
          in: query
          description: |
            The max number or rows to return.  Limit must be between 1 and positive value. If 20 >= limit > 0, then there is high confidence your query will respond in well under 1 second (SLO < 1 second). The greater limit is above 20, the less confidence your query will respond in under 1 second (no SLO).
          schema:
            type: integer
            format: int64
            default: 20
          examples:
            small:
              value: 5
            large:
              value: 20
            default:
              value: 10
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  paginationcontrol:
                    type: object
                    properties:
                      next_token:
                        type: integer
                        format: int32
                        example: 4
                      limit:
                        type: integer
                        format: int32
                        example: 2
                      sort_key:
                        type: string
                        example: row_num
                  results:
                    type: array
                    items:
                      oneOf:
                        - allOf:
                            - type: object
                              properties:
                                batch_load_id:
                                  type: integer
                                  format: int64
                                  example: 4
                                cannot_process:
                                  type: integer
                                  format: int64
                                  example: 1
                                errors:
                                  type: string
                                  example: |
                                    *t_appid not found in applications table *master_payer_name not found in master_payers table
                                row_num:
                                  type: integer
                                  format: int64
                                  example: 1
                            - type: object
                              properties:
                                entity_type:
                                  type: string
                                  enum:
                                    - tower_error
                                    - application_error
                                    - application_contact_error
                                    - account_error
                                    - account_contact_error
                                  example: account_error
                                cloud_account_number:
                                  type: string
                                  example: 0123456789
                                cloud_account_name:
                                  type: string
                                  example: sega
                                cloud_account_root_email:
                                  type: string
                                  format: email
                                  example: sonic@root.net
                                master_payer_name:
                                  type: string
                                  example: SLT BU Master Payer 4
                                intake_number:
                                  type: string
                                  example: APIIntake54321
                                account_type_name:
                                  type: string
                                  example: SLT BU Prod
                                governance_lob_name:
                                  type: string
                                  example: lob a
                                create_date:
                                  type: string
                                  format: date
                                  example: '2020-04-30'
                                budget_account_string:
                                  type: string
                                  example: budget$3
                                budget_alert_monthly_threshold:
                                  type: integer
                                  format: int64
                                  nullable: true
                                  example: 500
                                project_number:
                                  type: string
                                  example: apiProjNum
                                snow_approval_group:
                                  type: string
                                  example: API Test SNOW approval group
                                t_appid:
                                  type: string
                                  example: SVCD002
                                tower_name:
                                  type: string
                                  example: SLT Tower 2
                        - allOf:
                            - type: object
                              properties:
                                batch_load_id:
                                  type: integer
                                  format: int64
                                  example: 4
                                cannot_process:
                                  type: integer
                                  format: int64
                                  example: 1
                                errors:
                                  type: string
                                  example: |
                                    *t_appid not found in applications table *master_payer_name not found in master_payers table
                                row_num:
                                  type: integer
                                  format: int64
                                  example: 1
                            - type: object
                              properties:
                                entity_type:
                                  type: string
                                  enum:
                                    - tower_error
                                    - application_error
                                    - application_contact_error
                                    - account_error
                                    - account_contact_error
                                  example: account_contact_error
                                cloud_account_number:
                                  type: string
                                  example: 0123456789
                                contact_type:
                                  type: string
                                  example: account_technical
                                contact_name:
                                  type: string
                                  example: speed racer
                                contact_email:
                                  type: string
                                  format: email
                                  example: sonic@root.net
                        - allOf:
                            - type: object
                              properties:
                                batch_load_id:
                                  type: integer
                                  format: int64
                                  example: 4
                                cannot_process:
                                  type: integer
                                  format: int64
                                  example: 1
                                errors:
                                  type: string
                                  example: |
                                    *t_appid not found in applications table *master_payer_name not found in master_payers table
                                row_num:
                                  type: integer
                                  format: int64
                                  example: 1
                            - type: object
                              properties:
                                entity_type:
                                  type: string
                                  enum:
                                    - tower_error
                                    - application_error
                                    - application_contact_error
                                    - account_error
                                    - account_contact_error
                                  example: application_error
                                application_name:
                                  type: string
                                  example: Asteroids
                                t_appid:
                                  type: string
                                  example: SVCD002
                                governance_lob_name:
                                  type: string
                                  example: lob a
                                create_date:
                                  type: string
                                  format: date
                                  example: '2020-04-30'
                                application_budget_account_string:
                                  type: string
                                  example: budget$001
                                application_description:
                                  type: string
                                  example: 'text-based d&d game...the grue are in the dark, so keep the torch lit!'
                                business_unit_name:
                                  type: string
                                  example: No Box Business Unit
                                pagerduty_url:
                                  type: string
                                  example: 'http://www.someurl.com/2'
                                tower_name:
                                  type: string
                                  example: SLT Tower 2
                        - allOf:
                            - type: object
                              properties:
                                batch_load_id:
                                  type: integer
                                  format: int64
                                  example: 4
                                cannot_process:
                                  type: integer
                                  format: int64
                                  example: 1
                                errors:
                                  type: string
                                  example: |
                                    *t_appid not found in applications table *master_payer_name not found in master_payers table
                                row_num:
                                  type: integer
                                  format: int64
                                  example: 1
                            - type: object
                              properties:
                                entity_type:
                                  type: string
                                  enum:
                                    - tower_error
                                    - application_error
                                    - application_contact_error
                                    - account_error
                                    - account_contact_error
                                  example: application_contact_error
                                t_appid:
                                  type: string
                                  example: SVCD002
                                contact_type:
                                  type: string
                                  example: account_technical
                                contact_name:
                                  type: string
                                  example: speed racer
                                contact_email:
                                  type: string
                                  format: email
                                  example: sonic@root.net
                        - allOf:
                            - type: object
                              properties:
                                batch_load_id:
                                  type: integer
                                  format: int64
                                  example: 4
                                cannot_process:
                                  type: integer
                                  format: int64
                                  example: 1
                                errors:
                                  type: string
                                  example: |
                                    *t_appid not found in applications table *master_payer_name not found in master_payers table
                                row_num:
                                  type: integer
                                  format: int64
                                  example: 1
                            - type: object
                              properties:
                                entity_type:
                                  type: string
                                  enum:
                                    - tower_error
                                    - application_error
                                    - application_contact_error
                                    - account_error
                                    - account_contact_error
                                  example: tower_error
                                tower_name:
                                  type: string
                                  example: SLT Tower 2
                                tower_owner_name:
                                  type: string
                                  example: sltower load2
                                tower_owner_email:
                                  type: string
                                  format: email
                                  example: sonic@root.net
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Server error. Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
            - slater-ro/read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:FinderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /export:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - export
      summary: Export data
      description: 'Export data by export name, optionally overridding pagination controls.'
      operationId: export
      parameters:
        - name: export_name
          in: query
          required: true
          description: The name of the export to perform. The structure of the response depends on this.
          schema:
            type: string
          examples:
            e1:
              value: export%20all
            e2:
              value: export%20application%20contacts
            e3:
              value: export%20business%20mapping%26accounts
        - name: next_token
          in: query
          description: |
            Used for pagination and is the inclusive primary key value after which data should be returned on a subsequent query. Must be a positive value.  Default: None (first page).
          schema:
            type: integer
            format: int64
            minimum: 1
            example: 20
        - name: limit
          in: query
          description: |
            The max number or rows to return.  Limit must be between 1 and positive value. If 20 >= limit > 0, then there is high confidence your query will respond in well under 1 second (SLO < 1 second). The greater limit is above 20, the less confidence your query will respond in under 1 second (no SLO).
          schema:
            type: integer
            format: int64
            default: 20
          examples:
            small:
              value: 5
            large:
              value: 20
            default:
              value: 10
        - name: use_like_comparator
          in: query
          description: |
            If True the where clause will be constructed using field LIKE %VALUE% instead of field = VALUE.  Default is false.
          schema:
            type: boolean
            default: false
          examples:
            exact:
              value: false
            fuzzy:
              value: true
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: string
                example: Valid json. Structure depends on the export name.
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: No export found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
            - slater-ro/read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:FinderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /export/all:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - export
      summary: Export all
      description: |
        Export data using export all.
        This endpoint has been deprecated in favor of the /export endpoint.
        Example
          /export?export_name=export%20all
      operationId: exportAll
      deprecated: true
      parameters:
        - name: next_token
          in: query
          description: |
            Used for pagination and is the inclusive primary key value after which data should be returned on a subsequent query. Must be a positive value.  Default: None (first page).
          schema:
            type: integer
            format: int64
            minimum: 1
            example: 20
        - name: limit
          in: query
          description: |
            The max number or rows to return.  Limit must be between 1 and positive value. If 20 >= limit > 0, then there is high confidence your query will respond in well under 1 second (SLO < 1 second). The greater limit is above 20, the less confidence your query will respond in under 1 second (no SLO).
          schema:
            type: integer
            format: int64
            default: 20
          examples:
            small:
              value: 5
            large:
              value: 20
            default:
              value: 10
        - name: use_like_comparator
          in: query
          description: |
            If True the where clause will be constructed using field LIKE %VALUE% instead of field = VALUE.  Default is false.
          schema:
            type: boolean
            default: false
          examples:
            exact:
              value: false
            fuzzy:
              value: true
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  paginationcontrol:
                    type: object
                    properties:
                      next_token:
                        type: integer
                        format: int32
                        example: 4
                      limit:
                        type: integer
                        format: int32
                        example: 2
                      sort_key:
                        type: string
                        example: row_num
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        t_appid:
                          type: string
                          example: SVCD001
                        account_number:
                          type: string
                          nullable: true
                          example: 0123456789
                        account_name:
                          type: string
                          nullable: true
                          example: atari
                        account_type:
                          type: string
                          nullable: true
                          example: sandbox
                        application:
                          type: string
                          nullable: true
                          example: Duck Hunt
                        account_owner:
                          type: string
                          nullable: true
                          example: speed racer
                        account_owner_email:
                          type: string
                          format: email
                          example: sonic@root.net
                        technical_contact:
                          type: string
                          nullable: true
                          example: speed racer
                        technical_contact_email:
                          type: string
                          format: email
                          example: sonic@root.net
                        product_owner:
                          type: string
                          nullable: true
                          example: speed racer
                        product_owner_email:
                          type: string
                          format: email
                          example: sonic@root.net
                        funding_account_string:
                          type: string
                          nullable: true
                          example: Not implemented
                        budget_account_string:
                          type: string
                          nullable: true
                          example: budget$1
                        project_number:
                          type: string
                          nullable: true
                          example: PRJ20000000
                        business_unit:
                          type: string
                          nullable: true
                          example: Echo Chamber
                        tower:
                          type: string
                          nullable: true
                          example: Sears Tower
                        governance_lob:
                          type: string
                          nullable: true
                          example: lob a
                        master_payer:
                          type: string
                          nullable: true
                          example: SLT BU Master Payer 3
                        tdm:
                          type: string
                          nullable: true
                          example: speed racer
                        tdm_email:
                          type: string
                          format: email
                          example: sonic@root.net
                        pagerduty_url:
                          type: string
                          nullable: true
                          example: 'http://www.someurl.com/2'
                        application_description:
                          type: string
                          nullable: true
                          example: 'text-based d&d game...the grue are in the dark, so keep the torch lit!'
                        budget_lob:
                          type: string
                          nullable: true
                          example: lob b
                        budget_account_tower:
                          type: string
                          nullable: true
                          example: Sears Tower
                        budget_vp:
                          type: string
                          nullable: true
                          example: Not implemented
                        application_hosting_account_string:
                          type: string
                          nullable: true
                          example: Not implemented
                        service_vp:
                          type: string
                          nullable: true
                          example: george jetson
                        service_vp_email:
                          type: string
                          format: email
                          example: sonic@root.net
                        primary_business_contact:
                          type: string
                          nullable: true
                          example: speed racer
                        primary_business_contact_email:
                          type: string
                          format: email
                          example: sonic@root.net
                        secondary_business_contact:
                          type: string
                          nullable: true
                          example: speed racer
                        secondary_business_contact_email:
                          type: string
                          format: email
                          example: sonic@root.net
                        account_active:
                          type: string
                          nullable: true
                          example: 'Y'
                        create_date:
                          type: string
                          format: date
                          nullable: true
                          example: 09-08-2020
                        row_num:
                          type: integer
                          format: int64
                          nullable: true
                          example: 1
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: No export found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
            - slater-ro/read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:FinderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /export/applicationcontacts:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - export
      summary: Export application contacts
      description: |
        Export data using export application contacts.
        This endpoint has been deprecated in favor of the /export endpoint.
        Example
          /export?export_name=export%20application%20contacts
      operationId: exportApplicationContacts
      deprecated: true
      parameters:
        - name: next_token
          in: query
          description: |
            Used for pagination and is the inclusive primary key value after which data should be returned on a subsequent query. Must be a positive value.  Default: None (first page).
          schema:
            type: integer
            format: int64
            minimum: 1
            example: 20
        - name: limit
          in: query
          description: |
            The max number or rows to return.  Limit must be between 1 and positive value. If 20 >= limit > 0, then there is high confidence your query will respond in well under 1 second (SLO < 1 second). The greater limit is above 20, the less confidence your query will respond in under 1 second (no SLO).
          schema:
            type: integer
            format: int64
            default: 20
          examples:
            small:
              value: 5
            large:
              value: 20
            default:
              value: 10
        - name: use_like_comparator
          in: query
          description: |
            If True the where clause will be constructed using field LIKE %VALUE% instead of field = VALUE.  Default is false.
          schema:
            type: boolean
            default: false
          examples:
            exact:
              value: false
            fuzzy:
              value: true
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  paginationcontrol:
                    type: object
                    properties:
                      next_token:
                        type: integer
                        format: int32
                        example: 4
                      limit:
                        type: integer
                        format: int32
                        example: 2
                      sort_key:
                        type: string
                        example: row_num
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        t_appid:
                          type: string
                          example: SVCD001
                        application_name:
                          type: string
                          nullable: true
                          example: atari
                        application_description:
                          type: string
                          nullable: true
                          example: 'text-based d&d game...the grue are in the dark, so keep the torch lit!'
                        create_date:
                          type: string
                          format: date
                          nullable: true
                          example: 09-08-2020
                        governance_lob_name:
                          type: string
                          nullable: true
                          example: lob a
                        business_unit_name:
                          type: string
                          nullable: true
                          example: Echo Chamber
                        application_budget_account_string:
                          type: string
                          nullable: true
                          example: budget$1
                        tower_name:
                          type: string
                          nullable: true
                          example: Sears Tower
                        pagerduty_url:
                          type: string
                          nullable: true
                          example: 'http://www.someurl.com/2'
                        service_vp_contact_type:
                          type: string
                          nullable: true
                          example: service vp
                        service_vp_name:
                          type: string
                          nullable: true
                          example: george jetson
                        service_vp_email:
                          type: string
                          format: email
                          example: sonic@root.net
                        primary_business_contact_contact_type:
                          type: string
                          nullable: true
                          example: primary business contact
                        primary_business_contact_name:
                          type: string
                          nullable: true
                          example: george jetson
                        primary_business_contact_email:
                          type: string
                          format: email
                          example: sonic@root.net
                        secondary_business_contact_contact_type:
                          type: string
                          nullable: true
                          example: secondary business contact
                        secondary_business_contact_name:
                          type: string
                          nullable: true
                          example: george jetson
                        secondary_business_contact_email:
                          type: string
                          format: email
                          example: sonic@root.net
                        row_num:
                          type: integer
                          format: int64
                          nullable: true
                          example: 1
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: No export found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
            - slater-ro/read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:FinderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /export/businessmapping:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - export
      summary: Export business mappings
      description: |
        Export data using export business mapping&accounts.
        This endpoint has been deprecated in favor of the /export endpoint.
        Example
          /export?export_name=export%20business%20mapping%26accounts
      operationId: exportBusinessMapping
      deprecated: true
      parameters:
        - name: next_token
          in: query
          description: |
            Used for pagination and is the inclusive primary key value after which data should be returned on a subsequent query. Must be a positive value.  Default: None (first page).
          schema:
            type: integer
            format: int64
            minimum: 1
            example: 20
        - name: limit
          in: query
          description: |
            The max number or rows to return.  Limit must be between 1 and positive value. If 20 >= limit > 0, then there is high confidence your query will respond in well under 1 second (SLO < 1 second). The greater limit is above 20, the less confidence your query will respond in under 1 second (no SLO).
          schema:
            type: integer
            format: int64
            default: 20
          examples:
            small:
              value: 5
            large:
              value: 20
            default:
              value: 10
        - name: use_like_comparator
          in: query
          description: |
            If True the where clause will be constructed using field LIKE %VALUE% instead of field = VALUE.  Default is false.
          schema:
            type: boolean
            default: false
          examples:
            exact:
              value: false
            fuzzy:
              value: true
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  paginationcontrol:
                    type: object
                    properties:
                      next_token:
                        type: integer
                        format: int32
                        example: 4
                      limit:
                        type: integer
                        format: int32
                        example: 2
                      sort_key:
                        type: string
                        example: row_num
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        cloud_account_number:
                          type: string
                          nullable: true
                          example: 0123456789
                        cloud_account_name:
                          type: string
                          nullable: true
                          example: atari
                        budget_account_tower:
                          type: string
                          nullable: true
                          example: Sears Tower
                        account_type:
                          type: string
                          nullable: true
                          example: sandbox
                        master_payer:
                          type: string
                          nullable: true
                          example: SLT BU Master Payer 3
                        budget_lob:
                          type: string
                          nullable: true
                          example: lob b
                        governance_lob:
                          type: string
                          nullable: true
                          example: lob a
                        budget_account_string:
                          type: string
                          nullable: true
                          example: budget$1
                        funding_account_application:
                          type: string
                          nullable: true
                          example: Not implemented
                        project_number:
                          type: string
                          nullable: true
                          example: PRJ20000000
                        contact_type_productowner:
                          type: string
                          nullable: true
                          example: product owner
                        contact_name_productowner:
                          type: string
                          nullable: true
                          example: george jetson
                        contact_email_productowner:
                          type: string
                          format: email
                          example: sonic@root.net
                        contact_type_acctowner:
                          type: string
                          nullable: true
                          example: account owner
                        contact_name_acctowner:
                          type: string
                          nullable: true
                          example: george jetson
                        contact_email_acctowner:
                          type: string
                          format: email
                          example: sonic@root.net
                        contact_type_techowner:
                          type: string
                          nullable: true
                          example: tech owner
                        contact_name_techowner:
                          type: string
                          nullable: true
                          example: george jetson
                        contact_email_techowner:
                          type: string
                          format: email
                          example: sonic@root.net
                        contact_type_tdm:
                          type: string
                          nullable: true
                          example: tdm
                        contact_name_tdm:
                          type: string
                          nullable: true
                          example: george jetson
                        contact_email_tdm:
                          type: string
                          format: email
                          example: sonic@root.net
                        contact_type_budgetvp:
                          type: string
                          nullable: true
                          example: budget vp
                        contact_name_budgetvp:
                          type: string
                          nullable: true
                          example: george jetson
                        contact_email_budgetvp:
                          type: string
                          format: email
                          example: sonic@root.net
                        active_flag:
                          type: string
                          nullable: true
                          example: 'Y'
                        row_num:
                          type: integer
                          format: int64
                          nullable: true
                          example: 1
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: No export found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
            - slater-ro/read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:FinderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /validexports:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      tags:
        - export
      summary: Valid exports
      description: Retrieve valid export names
      operationId: getValidExports
      parameters:
        - name: next_token
          in: query
          description: |
            Used for pagination and is the inclusive primary key value after which data should be returned on a subsequent query. Must be a positive value.  Default: None (first page).
          schema:
            type: integer
            format: int64
            minimum: 1
            example: 20
        - name: limit
          in: query
          description: |
            The max number or rows to return.  Limit must be between 1 and positive value. If 20 >= limit > 0, then there is high confidence your query will respond in well under 1 second (SLO < 1 second). The greater limit is above 20, the less confidence your query will respond in under 1 second (no SLO).
          schema:
            type: integer
            format: int64
            default: 20
          examples:
            small:
              value: 5
            large:
              value: 20
            default:
              value: 10
        - name: use_like_comparator
          in: query
          description: |
            If True the where clause will be constructed using field LIKE %VALUE% instead of field = VALUE.  Default is false.
          schema:
            type: boolean
            default: false
          examples:
            exact:
              value: false
            fuzzy:
              value: true
        - name: slater_user
          in: header
          description: Audit slater user
          schema:
            type: string
            example: Daffy Duck
        - name: db_version
          in: header
          description: Database version to run against
          schema:
            type: string
            example: db_version
      responses:
        '200':
          description: successful operation
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  export_def_id:
                    type: integer
                    format: int64
                    nullable: true
                    example: 1
                  export_name:
                    type: string
                    nullable: true
                    example: export all
                  paginate_sort_column:
                    type: string
                    nullable: true
                    example: t_appid
                  paginate_export_object_id:
                    type: integer
                    format: int64
                    nullable: true
                    example: 7
                  active:
                    type: integer
                    format: int64
                    nullable: true
                    example: 1
                  row_num:
                    type: integer
                    format: int64
                    nullable: true
                    example: 1
                  next_link:
                    type: string
                    example: 'https://<server>/slater/export?export_name=export%20all'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: No export found
        '500':
          description: Server error.  Try again.
      security:
        - slater-auth1:
            - slater/read
            - slater/write
            - slater/delete
            - slater-ro/read
      x-amazon-apigateway-request-validator: params-only
      x-amazon-apigateway-integration:
        type: aws_proxy
        uri: 'arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:FinderFunction/invocations'
        httpMethod: POST
        passthroughBehavior: when_no_match
        contentHandling: CONVERT_TO_TEXT
        responses:
          default:
            statusCode: 200
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
  /:
    options:
      summary: CORS support for interactive API
      description: |
        Enable CORS by returning correct headers
      tags:
        - CORS
      responses:
        '200':
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              application/json: |
                {}
    get:
      summary: API landing page
      operationId: APILandingPage
      responses:
        '200':
          description: Default 200 response for CORS method
          headers:
            Content-Type:
              schema:
                type: string
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
          content: {}
      x-amazon-apigateway-integration:
        responses:
          default:
            statusCode: '200'
            responseParameters:
              method.response.header.Content-Type: '''text/html'''
              method.response.header.Access-Control-Allow-Headers: '''Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'''
              method.response.header.Access-Control-Allow-Methods: '''*'''
              method.response.header.Access-Control-Allow-Origin: '''*'''
            responseTemplates:
              text/html: |
                <!DOCTYPE html> <html lang="en">
                  <head>
                    <meta charset="utf-8"> <!-- Important: rapi-doc uses utf8 charecters -->
                    <script type="module" src="https://unpkg.com/rapidoc/dist/rapidoc-min.js"></script>
                  </head>
                  <body>
                    <!-- Swagger build propagates info.version. Change the version in openapi.yaml, not here. v0.0.0 is a placeholder. -->
                    <rapi-doc spec-url = "https://downloads.pearsoncloudmanagement.com/slater/$context.stage/api/openapi_bundled_v2.0.0.yaml"> </rapi-doc>
                  </body>
                </html>
        requestTemplates:
          application/json: '{"statusCode": 200}'
        passthroughBehavior: when_no_match
        type: mock
externalDocs:
  description: Find out more about SLater and its Capabilities
  url: 'https://neo.pearson.com/docs/DOC-764463'
components:
  securitySchemes:
    slater-auth1:
      type: apiKey
      name: Authorization
      in: header
      x-amazon-apigateway-authtype: cognito_user_pools
      x-amazon-apigateway-authorizer:
        providerARNs:
          - 'Fn::GetAtt':
              - UserPool
              - Arn
        type: cognito_user_pools
