info:
  title: Tufin
  version: 1.0.0
openapi: 3.0.3
x-extension-test: 
x-extension-test2: go 
externalDocs:
  url: https://tufin.com
tags:
- name: security
  description: control security
  x-extension-test: 
- name: reuven
  description: Harrison
servers: 
- url: tufin.com
  x-extension-test: 
security:
- bearerAuth: []
paths:
  /api/{domain}/{project}/badges/security-score:
    x-extension-test: 
    parameters:
    - in: path
      name: domain
      required: true
      schema:
        description: Hyphen-separated list of lowercase string
        example: generic-bank
        format: hyphen-separated list
        pattern: ^(?:([a-z]+-)*([a-z]+)?)$
        type: string
    get:
      operationId: GetSecurityScores
      x-extension-test: 
      x-beta: true
      tags:
        - security
      parameters:
      - in: query
        name: filter
        x-extension-test: 
        content:
          application/json:
            x-extension-test: 
            schema:
              type: object
              properties:
                type:
                  type: string
                color:
                  type: string
      - in: header
        name: user
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
      - in: cookie
        name: test
        content:
          application/json:
            schema:
              type: object
      - in: query
        name: image
        examples:
          0:
            value: 'reuven'
        schema:
          x-extension-test:
          description: alphanumeric 
          example: tufinim/generic-bank:cia-latest
          format: general string
          pattern: ^(?:[\w-./:]+)$
          type: string
      - in: query
        name: token
        schema:
          description: RFC 4122 UUID
          example: 26734565-dbcc-449a-a370-0beaaf04b0e8
          format: uuid
          pattern: ^(?:[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12})$
          type: string
          maxLength: 29
      - in: header
        name: X-Auth-Name
        required: true
        schema:
          description: empty string
          format: empty string
          pattern: ^(?:)$
          type: string
      - in: path
        name: domain
        required: true
        schema:
          description: Hyphen-separated list of lowercase string
          example: generic-bank
          format: hyphen-separated list
          pattern: ^(?:([a-z]+-)*([a-z]+)?)$
          type: string
      - in: path
        name: project
        required: true
        schema:
          description: Lowercase string
          example: retail
          format: lowercase string
          pattern: ^(?:[a-z]+)$
          type: string
      responses:
        '200':
          description: OK
        '201':
          description: none
          content:
            application/xml:
              schema:
                type: string
        '400':
          description: "bad request"
          content:
            application/json:
              schema:
                type: string
      servers: []
  /api/{domain}/{project}/install-command:
    get:
      parameters:
      - in: header
        name: X-Auth-Name
        required: true
        schema:
          description: any string
          example: Joe
          format: any string
          pattern: ^(?:.*)$
          type: string
      - in: path
        name: domain
        required: true
        schema:
          enum:
          - generic-bank
          - tufin
          type: string
      - in: path
        name: project
        required: true
        schema:
          enum:
          - retail
          - my-project
          - test
          - eks
          type: string
      - in: header
        name: network-policies
        schema: 
          $ref: '#/components/schemas/network-policies'
      responses:
        default:
          description: Tufin1
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Request limit per hour.
      servers: []
  /subscribe:
    post:
      summary: Subscribe to a webhook
      callbacks:   # Callback definition
        myEvent:   # Event name
          'hi':
            post:
              requestBody:   # Contents of the callback message
                required: true
                content:
                  application/json:
                    schema:
                      type: object
                      properties:
                        message:
                          type: number
                          example: Some event happened
                      required:
                        - message
                    encoding:
                      historyMetadata:
                        # require XML Content-Type in utf-8 encoding
                        contentType: application/xml; charset=utf-8
                        style: spaceDelimited
                      profileImage:
                        # only accept png/jpeg
                        contentType: image/png, image/jpeg
                        headers:
                          i:
                            schema:
                              type: integer
                            description: integer
              responses:   # Expected responses to the callback message
                '200':
                  description: Your server returns this code if it accepts the callback
                  links:
                    "test":
                      operationId: "reuven"
                      description: "test"
                    "test1":
                      operationId: "reuven"
                      description: "test"
                    "test2":
                      operationId: "GetSecurityScores"
                    
          'bye':
            post:
              requestBody:   # Contents of the callback message
                required: true
                content:
                  application/json:
                    schema:
                      type: object          
              responses:   # Expected responses to the callback message
                '200':
                  description: Your server returns this code if it accepts the callback
      responses:
        default:
          description: Tufin
  /register:
    post:
      security:
      - bearerAuth: []
      - OAuth: []
      summary: Subscribe to a webhook
      responses:
        default:
          content:
            application/json:
              schema:
                type: object
                properties:
                  respenum:
                    type: string
                    enum:
                      - ASD
                      - TER
                  respenum2:
                    type: object
                    properties:
                      respenum3:
                        type: string
                        enum:
                          - ASD2
                          - QWE2
          description: Tufin
components:
  schemas:
    network-policies:
      additionalProperties: true
      properties:
        netpols:
          type: string
      type: object
    rules:
      properties:
        netpols:
          type: string
      type: object      
  parameters:
      network-policies:
        name: network-policies
        in: header
        schema: 
          $ref: '#/components/schemas/network-policies'
  headers:
    test:
      schema: 
        $ref: '#/components/schemas/network-policies'
    new:
      schema: 
        $ref: '#/components/schemas/network-policies'
    testc:
      content: 
        application/json:
          schema:
            type: object
  requestBodies:
      reuven:
        content:
          application/json:
            schema:
              type: object
              discriminator:
                propertyName: meter_name
              properties: 
                meter_name:
                    type: string
                tenant:
                  type: string
                meter_value:
                  type: number
                time:
                  type: integer
                dimensions:
                  type: object
  securitySchemes:
    bearerAuth:      
      type: http
      scheme: bearer
      bearerFormat: JWT 
    AccessToken:
      type: http
      scheme: bearer
    OAuth:
      x-extension-test: 
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://tufin.io/auth
          tokenUrl: https://tufin.io/token
          scopes:
            accountRead: Allows account data to be read
            accountWrite: Allows account data to be written      
  responses:
    OK:
      description: 200 OK
