components:
  schemas:
    accountapp.Account:
      properties:
        accountRepositoryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Partner integration account
          maxLength: 255
          type: string
        enabled:
          example: true
          type: boolean
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        publicKeyID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        username:
          example: acme_corp
          maxLength: 255
          minLength: 1
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    accountapp.NewAccount:
      properties:
        description:
          example: Partner integration account
          maxLength: 255
          type: string
        enabled:
          example: true
          type: boolean
        password:
          example: SecureP@ssw0rd123
          format: password
          maxLength: 72
          minLength: 8
          type: string
        publicKeyID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        username:
          example: acme_corp
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_.@-]{1,255}$
          type: string
      required:
      - password
      - username
      type: object
    accountapp.UpdateAccount:
      properties:
        description:
          example: Partner integration account
          maxLength: 255
          type: string
        enabled:
          example: true
          type: boolean
        password:
          example: NewSecureP@ssw0rd123
          format: password
          maxLength: 72
          minLength: 8
          type: string
        publicKeyID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        username:
          example: acme_corp
          maxLength: 255
          minLength: 1
          type: string
      type: object
    accountrepositoryapp.AccountRepository:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Production account repository
          maxLength: 255
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: repo-01
          maxLength: 255
          minLength: 1
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    accountrepositoryapp.NewAccountRepository:
      properties:
        description:
          example: Production account repository
          maxLength: 255
          type: string
        name:
          example: repo-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
      required:
      - name
      type: object
    accountrepositoryapp.UpdateAccountRepository:
      properties:
        description:
          example: Production account repository
          maxLength: 255
          type: string
        name:
          example: repo-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
      type: object
    authapp.Credentials:
      properties:
        password:
          type: string
        username:
          type: string
      required:
      - password
      - username
      type: object
    authapp.TokenResponse:
      properties:
        accessToken:
          type: string
        bannerLogoImage:
          type: string
        refreshToken:
          type: string
        systemIdentifier:
          type: string
        token:
          description: For backwards compatibility.
          type: string
      type: object
    authmethodapp.AuthMethods:
      properties:
        ldap:
          $ref: '#/components/schemas/authmethodapp.Method'
        oidc:
          items:
            $ref: '#/components/schemas/authmethodapp.Method'
          type: array
          uniqueItems: false
        saml:
          items:
            $ref: '#/components/schemas/authmethodapp.Method'
          type: array
          uniqueItems: false
        standard:
          $ref: '#/components/schemas/authmethodapp.Method'
      type: object
    authmethodapp.Method:
      properties:
        enabled:
          type: boolean
        name:
          maxLength: 255
          minLength: 1
          type: string
        uri:
          type: string
      type: object
    cacertapp.Certificate:
      properties:
        certificate:
          example: |-
            -----BEGIN CERTIFICATE-----
            ...
            -----END CERTIFICATE-----
          format: pem
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: CA certificate for verification
          maxLength: 255
          type: string
        enabled:
          example: true
          type: boolean
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: cacert-01
          maxLength: 255
          minLength: 1
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    cacertapp.NewCertificate:
      properties:
        certificate:
          example: |-
            -----BEGIN CERTIFICATE-----
            ...
            -----END CERTIFICATE-----
          format: pem
          type: string
        description:
          example: CA certificate for verification
          maxLength: 255
          type: string
        enabled:
          example: true
          type: boolean
        name:
          example: cacert-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
      required:
      - certificate
      - name
      type: object
    cacertapp.UpdateCertificate:
      properties:
        certificate:
          example: |-
            -----BEGIN CERTIFICATE-----
            ...
            -----END CERTIFICATE-----
          format: pem
          type: string
        description:
          example: CA certificate for verification
          maxLength: 255
          type: string
        enabled:
          example: true
          type: boolean
        name:
          example: cacert-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
      type: object
    checkapp.Info:
      properties:
        host:
          type: string
        status:
          type: string
        version:
          type: string
      type: object
    checkapp.Ready:
      properties:
        status:
          example: OK
          type: string
      type: object
    clientapp.Client:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Production client connection
          maxLength: 255
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: client-01
          maxLength: 255
          minLength: 1
          type: string
        publicKeyID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        tunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    clientapp.NewClient:
      properties:
        description:
          example: Production client connection
          maxLength: 255
          type: string
        name:
          example: client-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        publicKeyID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      required:
      - name
      - publicKeyID
      type: object
    clientapp.UpdateClient:
      properties:
        description:
          example: Production client connection
          maxLength: 255
          type: string
        name:
          example: client-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        publicKeyID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      type: object
    configapp.Account:
      properties:
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        enabled:
          type: boolean
        id:
          format: uuid
          type: string
        passwordHash:
          type: string
        publicKeyID:
          type: string
        username:
          type: string
      type: object
    configapp.AccountRepository:
      properties:
        accounts:
          items:
            $ref: '#/components/schemas/configapp.Account'
          type: array
          uniqueItems: false
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        id:
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
      type: object
    configapp.AuthBlockConfig:
      properties:
        duration:
          type: string
        limit:
          type: integer
        window:
          type: string
      type: object
    configapp.CACertificate:
      properties:
        certificate:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        enabled:
          type: boolean
        id:
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
      type: object
    configapp.Client:
      properties:
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        id:
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        publicKeyID:
          type: string
      type: object
    configapp.Configuration:
      properties:
        accountRepositories:
          items:
            $ref: '#/components/schemas/configapp.AccountRepository'
          type: array
          uniqueItems: false
        caCertificates:
          items:
            $ref: '#/components/schemas/configapp.CACertificate'
          type: array
          uniqueItems: false
        forwardProxy:
          $ref: '#/components/schemas/configapp.ForwardProxy'
        ftp:
          $ref: '#/components/schemas/configapp.FTP'
        hsmConnections:
          items:
            $ref: '#/components/schemas/configapp.HSMConnection'
          type: array
          uniqueItems: false
        http:
          $ref: '#/components/schemas/configapp.HTTP'
        icapScanners:
          items:
            $ref: '#/components/schemas/configapp.ICAPScanner'
          type: array
          uniqueItems: false
        ipFilters:
          items:
            $ref: '#/components/schemas/configapp.IPFilter'
          type: array
          uniqueItems: false
        ldapConnections:
          items:
            $ref: '#/components/schemas/configapp.LDAPConnection'
          type: array
          uniqueItems: false
        ldapQueries:
          items:
            $ref: '#/components/schemas/configapp.LDAPQuery'
          type: array
          uniqueItems: false
        privateKeys:
          items:
            $ref: '#/components/schemas/configapp.PrivateKey'
          type: array
          uniqueItems: false
        publicKeys:
          items:
            $ref: '#/components/schemas/configapp.PublicKey'
          type: array
          uniqueItems: false
        security:
          $ref: '#/components/schemas/configapp.Security'
        server:
          $ref: '#/components/schemas/configapp.Server'
        sftp:
          $ref: '#/components/schemas/configapp.SFTP'
        tcp:
          $ref: '#/components/schemas/configapp.TCP'
        tlsCertificates:
          items:
            $ref: '#/components/schemas/configapp.TLSCertificate'
          type: array
          uniqueItems: false
      type: object
    configapp.FTP:
      properties:
        deployments:
          items:
            $ref: '#/components/schemas/configapp.FTPDeployment'
          type: array
          uniqueItems: false
        listeners:
          items:
            $ref: '#/components/schemas/configapp.FTPListener'
          type: array
          uniqueItems: false
        routes:
          items:
            $ref: '#/components/schemas/configapp.FTPRoute'
          type: array
          uniqueItems: false
        rules:
          items:
            $ref: '#/components/schemas/configapp.FTPRule'
          type: array
          uniqueItems: false
      type: object
    configapp.FTPDeployment:
      properties:
        clientID:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        ldapClientID:
          type: string
        ldapTunnelID:
          type: string
        listenerID:
          type: string
        serverID:
          type: string
        startupMode:
          type: string
        tunnelID:
          type: string
      type: object
    configapp.FTPInboundNode:
      properties:
        caCertificateID:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        ftpConfiguration:
          $ref: '#/components/schemas/configapp.FTPInboundNodeFTPConfig'
        id:
          format: uuid
          type: string
        ipFilterID:
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        priority:
          type: integer
        ruleID:
          type: string
        tlsCertificateID:
          type: string
        tlsConfiguration:
          $ref: '#/components/schemas/configapp.FTPInboundNodeTLSConfig'
      type: object
    configapp.FTPInboundNodeFTPConfig:
      properties:
        banner:
          type: string
        encryptionMode:
          type: string
        passiveRangeStart:
          type: string
        passiveRangeStop:
          type: string
        publicIP:
          type: string
      type: object
    configapp.FTPInboundNodeTLSConfig:
      properties:
        cipherSuites:
          items:
            type: string
          type: array
          uniqueItems: false
        curvePreferences:
          items:
            type: string
          type: array
          uniqueItems: false
        maxVersion:
          type: string
        minVersion:
          type: string
      type: object
    configapp.FTPListener:
      properties:
        defaultOutboundNodeID:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        healthcheckConfiguration:
          $ref: '#/components/schemas/configapp.HealthcheckConfiguration'
        id:
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          type: string
        routeID:
          type: string
        routingMethod:
          type: string
      type: object
    configapp.FTPOutboundNode:
      properties:
        caCertificateID:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        ftpConfiguration:
          $ref: '#/components/schemas/configapp.FTPOutboundNodeFTPConfig'
        hostname:
          type: string
        id:
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          type: string
        tlsCertificateID:
          type: string
        tlsConfiguration:
          $ref: '#/components/schemas/configapp.FTPOutboundNodeTLSConfig'
      type: object
    configapp.FTPOutboundNodeFTPConfig:
      properties:
        encryptionMode:
          example: none
          type: string
      type: object
    configapp.FTPOutboundNodeTLSConfig:
      properties:
        cipherSuites:
          items:
            type: string
          type: array
          uniqueItems: false
        curvePreferences:
          items:
            type: string
          type: array
          uniqueItems: false
        maxVersion:
          type: string
        minVersion:
          type: string
        serverName:
          type: string
      type: object
    configapp.FTPRoute:
      properties:
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        id:
          format: uuid
          type: string
        inboundNodes:
          items:
            $ref: '#/components/schemas/configapp.FTPInboundNode'
          type: array
          uniqueItems: false
        name:
          maxLength: 255
          minLength: 1
          type: string
        outboundNodes:
          items:
            $ref: '#/components/schemas/configapp.FTPOutboundNode'
          type: array
          uniqueItems: false
      type: object
    configapp.FTPRule:
      properties:
        accountRepositoryID:
          type: string
        authenticationMethod:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        icapScannerID:
          type: string
        id:
          format: uuid
          type: string
        inboundAuthenticationSource:
          type: string
        ldapConnectionID:
          type: string
        ldapQueryID:
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        outboundCredentialsSource:
          type: string
        password:
          type: string
        username:
          type: string
      type: object
    configapp.ForwardProxy:
      properties:
        deployments:
          items:
            $ref: '#/components/schemas/configapp.ForwardProxyDeployment'
          type: array
          uniqueItems: false
        listeners:
          items:
            $ref: '#/components/schemas/configapp.ForwardProxyListener'
          type: array
          uniqueItems: false
      type: object
    configapp.ForwardProxyDeployment:
      properties:
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        listenerID:
          format: uuid
          type: string
        serverID:
          format: uuid
          type: string
        startupMode:
          type: string
      type: object
    configapp.ForwardProxyListener:
      properties:
        authMode:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        id:
          format: uuid
          type: string
        ipFilterID:
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        passwordHash:
          type: string
        port:
          type: string
        tlsCertificateID:
          type: string
        type:
          type: string
        username:
          type: string
      type: object
    configapp.HSMConnection:
      properties:
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        id:
          format: uuid
          type: string
        loginNotSupported:
          type: boolean
        maxSessions:
          type: integer
        name:
          maxLength: 255
          minLength: 1
          type: string
        path:
          type: string
        pin:
          type: string
        poolWaitTimeout:
          type: integer
        slotNumber:
          type: string
        tokenLabel:
          type: string
        tokenSerial:
          type: string
        userType:
          type: string
      type: object
    configapp.HTTP:
      properties:
        deployments:
          items:
            $ref: '#/components/schemas/configapp.HTTPDeployment'
          type: array
          uniqueItems: false
        listeners:
          items:
            $ref: '#/components/schemas/configapp.HTTPListener'
          type: array
          uniqueItems: false
        routes:
          items:
            $ref: '#/components/schemas/configapp.HTTPRoute'
          type: array
          uniqueItems: false
        rules:
          items:
            $ref: '#/components/schemas/configapp.HTTPRule'
          type: array
          uniqueItems: false
      type: object
    configapp.HTTPDeployment:
      properties:
        clientID:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        ldapClientID:
          type: string
        ldapTunnelID:
          type: string
        listenerID:
          type: string
        serverID:
          type: string
        startupMode:
          type: string
        tunnelID:
          type: string
      type: object
    configapp.HTTPInboundNode:
      properties:
        caCertificateID:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        id:
          format: uuid
          type: string
        ipFilterID:
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        priority:
          type: integer
        ruleID:
          type: string
        tlsCertificateID:
          type: string
        tlsConfiguration:
          $ref: '#/components/schemas/configapp.HTTPInboundNodeTLSConfig'
      type: object
    configapp.HTTPInboundNodeTLSConfig:
      properties:
        cipherSuites:
          items:
            type: string
          type: array
          uniqueItems: false
        curvePreferences:
          items:
            type: string
          type: array
          uniqueItems: false
        maxVersion:
          type: string
        minVersion:
          type: string
      type: object
    configapp.HTTPListener:
      properties:
        defaultOutboundNodeID:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        healthcheckConfiguration:
          $ref: '#/components/schemas/configapp.HealthcheckConfiguration'
        id:
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          type: string
        routeID:
          type: string
        routingMethod:
          type: string
      type: object
    configapp.HTTPOutboundNode:
      properties:
        caCertificateID:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        hostname:
          type: string
        id:
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          type: string
        tlsCertificateID:
          type: string
        tlsConfiguration:
          $ref: '#/components/schemas/configapp.HTTPOutboundNodeTLSConfig'
      type: object
    configapp.HTTPOutboundNodeTLSConfig:
      properties:
        cipherSuites:
          items:
            type: string
          type: array
          uniqueItems: false
        curvePreferences:
          items:
            type: string
          type: array
          uniqueItems: false
        maxVersion:
          type: string
        minVersion:
          type: string
        serverName:
          type: string
      type: object
    configapp.HTTPRoute:
      properties:
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        id:
          format: uuid
          type: string
        inboundNodes:
          items:
            $ref: '#/components/schemas/configapp.HTTPInboundNode'
          type: array
          uniqueItems: false
        name:
          maxLength: 255
          minLength: 1
          type: string
        outboundNodes:
          items:
            $ref: '#/components/schemas/configapp.HTTPOutboundNode'
          type: array
          uniqueItems: false
      type: object
    configapp.HTTPRule:
      properties:
        accountRepositoryID:
          type: string
        authenticationMethod:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        icapScannerID:
          type: string
        id:
          format: uuid
          type: string
        inboundAuthenticationSource:
          type: string
        ldapConnectionID:
          type: string
        ldapQueryID:
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        outboundCredentialsSource:
          type: string
        password:
          type: string
        username:
          type: string
      type: object
    configapp.HealthcheckConfiguration:
      properties:
        enabled:
          type: boolean
        interval:
          type: string
        threshold:
          type: integer
        timeout:
          type: string
      type: object
    configapp.ICAPScanner:
      properties:
        caCertificateID:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        errorExtension:
          type: string
        errorPolicy:
          type: string
        hostname:
          type: string
        id:
          type: string
        maxFileSize:
          type: integer
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          type: string
        service:
          type: string
        skipExtensions:
          items:
            type: string
          type: array
          uniqueItems: false
      type: object
    configapp.IPFilter:
      properties:
        defaultAction:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        id:
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        rules:
          items:
            $ref: '#/components/schemas/configapp.IPRule'
          type: array
          uniqueItems: false
      type: object
    configapp.IPRule:
      properties:
        action:
          type: string
        address:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        id:
          format: uuid
          type: string
      type: object
    configapp.LDAPConnection:
      properties:
        caCertificateID:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        hostname:
          type: string
        id:
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          type: string
        secure:
          type: boolean
      type: object
    configapp.LDAPQuery:
      properties:
        baseDN:
          type: string
        bindDN:
          type: string
        bindPassword:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        id:
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        userFilter:
          type: string
        userIDAttribute:
          type: string
      type: object
    configapp.PrivateKey:
      properties:
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        enabled:
          type: boolean
        hsmID:
          type: string
        hsmLabel:
          type: string
        id:
          format: uuid
          type: string
        key:
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
      type: object
    configapp.PublicKey:
      properties:
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        enabled:
          type: boolean
        id:
          format: uuid
          type: string
        key:
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
      type: object
    configapp.SFTP:
      properties:
        deployments:
          items:
            $ref: '#/components/schemas/configapp.SFTPDeployment'
          type: array
          uniqueItems: false
        listeners:
          items:
            $ref: '#/components/schemas/configapp.SFTPListener'
          type: array
          uniqueItems: false
        routes:
          items:
            $ref: '#/components/schemas/configapp.SFTPRoute'
          type: array
          uniqueItems: false
        rules:
          items:
            $ref: '#/components/schemas/configapp.SFTPRule'
          type: array
          uniqueItems: false
      type: object
    configapp.SFTPDeployment:
      properties:
        clientID:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        ldapClientID:
          type: string
        ldapTunnelID:
          type: string
        listenerID:
          description: NOT SURE IF THIS FIELD IS NECESSARY
          type: string
        serverID:
          type: string
        startupMode:
          type: string
        tunnelID:
          type: string
      type: object
    configapp.SFTPInboundNode:
      properties:
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        hostPrivateKeyID:
          type: string
        id:
          format: uuid
          type: string
        ipFilterID:
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        priority:
          type: integer
        ruleID:
          type: string
        sshConfiguration:
          $ref: '#/components/schemas/configapp.SFTPInboundNodeSSHConfig'
      type: object
    configapp.SFTPInboundNodeSSHConfig:
      properties:
        banner:
          type: string
        ciphers:
          items:
            type: string
          type: array
          uniqueItems: false
        keyExchanges:
          items:
            type: string
          type: array
          uniqueItems: false
        macs:
          items:
            type: string
          type: array
          uniqueItems: false
        serverVersion:
          type: string
      type: object
    configapp.SFTPListener:
      properties:
        defaultOutboundNodeID:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        healthcheckConfiguration:
          $ref: '#/components/schemas/configapp.HealthcheckConfiguration'
        id:
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          type: string
        routeID:
          type: string
        routingMethod:
          type: string
      type: object
    configapp.SFTPOutboundNode:
      properties:
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        hostPublicKeyID:
          type: string
        hostname:
          type: string
        id:
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          type: string
        sshConfiguration:
          $ref: '#/components/schemas/configapp.SFTPOutboundNodeSSHConfig'
      type: object
    configapp.SFTPOutboundNodeSSHConfig:
      properties:
        ciphers:
          items:
            type: string
          type: array
          uniqueItems: false
        clientVersion:
          type: string
        keyExchanges:
          items:
            type: string
          type: array
          uniqueItems: false
        macs:
          items:
            type: string
          type: array
          uniqueItems: false
      type: object
    configapp.SFTPRoute:
      properties:
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        id:
          format: uuid
          type: string
        inboundNodes:
          items:
            $ref: '#/components/schemas/configapp.SFTPInboundNode'
          type: array
          uniqueItems: false
        name:
          maxLength: 255
          minLength: 1
          type: string
        outboundNodes:
          items:
            $ref: '#/components/schemas/configapp.SFTPOutboundNode'
          type: array
          uniqueItems: false
      type: object
    configapp.SFTPRule:
      properties:
        accountRepositoryID:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        icapScannerID:
          type: string
        id:
          format: uuid
          type: string
        inboundAuthenticationSource:
          type: string
        ldapConnectionID:
          type: string
        ldapQueryID:
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        outboundCredentialsSource:
          type: string
        password:
          type: string
        privateKeyID:
          type: string
        sshAuthenticationMethod:
          type: string
        username:
          type: string
      type: object
    configapp.Security:
      properties:
        accountAuthBlockConfig:
          $ref: '#/components/schemas/configapp.AuthBlockConfig'
        addressAuthBlockConfig:
          $ref: '#/components/schemas/configapp.AuthBlockConfig'
      type: object
    configapp.Server:
      properties:
        configurationUpdated:
          type: string
        configurationVersion:
          type: integer
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        host:
          type: string
        hsmConnectionID:
          type: string
        id:
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          type: string
        tunnels:
          items:
            $ref: '#/components/schemas/configapp.Tunnel'
          type: array
          uniqueItems: false
      type: object
    configapp.TCP:
      properties:
        deployments:
          items:
            $ref: '#/components/schemas/configapp.TCPDeployment'
          type: array
          uniqueItems: false
        listeners:
          items:
            $ref: '#/components/schemas/configapp.TCPListener'
          type: array
          uniqueItems: false
      type: object
    configapp.TCPDeployment:
      properties:
        clientID:
          format: uuid
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        listenerID:
          format: uuid
          type: string
        serverID:
          format: uuid
          type: string
        startupMode:
          type: string
        tunnelID:
          format: uuid
          type: string
      type: object
    configapp.TCPListener:
      properties:
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        healthcheckConfiguration:
          $ref: '#/components/schemas/configapp.HealthcheckConfiguration'
        id:
          format: uuid
          type: string
        ipFilterID:
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        outboundHostname:
          type: string
        outboundPort:
          type: string
        port:
          type: string
      type: object
    configapp.TLSCertificate:
      properties:
        certificate:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        enabled:
          type: boolean
        hsmID:
          type: string
        hsmLabel:
          type: string
        id:
          format: uuid
          type: string
        key:
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
      type: object
    configapp.Tunnel:
      properties:
        clients:
          items:
            $ref: '#/components/schemas/configapp.Client'
          type: array
          uniqueItems: false
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        hostPrivateKeyID:
          type: string
        id:
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          type: string
        serverID:
          type: string
      type: object
    errs.Error:
      properties:
        code:
          type: string
        fields:
          items:
            $ref: '#/components/schemas/errs.FieldError'
          type: array
          uniqueItems: false
        message:
          type: string
      type: object
    errs.FieldError:
      properties:
        error:
          type: string
        name:
          type: string
      type: object
    ftpdeploymentapp.Deployment:
      properties:
        clientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Deployment configuration
          maxLength: 255
          type: string
        ldapClientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapTunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        listenerID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        serverID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        startupMode:
          example: auto
          type: string
        tunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    ftpdeploymentapp.NewDeployment:
      properties:
        clientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Deployment configuration
          maxLength: 255
          type: string
        ldapClientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapTunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        serverID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        startupMode:
          enum:
          - auto
          - manual
          example: auto
          type: string
        tunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      required:
      - serverID
      - startupMode
      type: object
    ftpdeploymentapp.UpdateDeployment:
      properties:
        clientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Deployment configuration
          maxLength: 255
          type: string
        ldapClientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapTunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        startupMode:
          enum:
          - auto
          - manual
          example: auto
          type: string
        tunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      type: object
    ftpinboundnodeapp.FTPConfiguration:
      properties:
        banner:
          example: Welcome!
          type: string
        encryptionMode:
          enum:
          - none
          - explicit
          - implicit
          example: none
          type: string
        passiveRangeStart:
          example: "30000"
          type: string
        passiveRangeStop:
          example: "31000"
          type: string
        publicIP:
          example: 192.168.1.1
          type: string
      type: object
    ftpinboundnodeapp.InboundNode:
      properties:
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Node configuration
          maxLength: 255
          type: string
        ftpConfiguration:
          $ref: '#/components/schemas/ftpinboundnodeapp.FTPConfiguration'
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ipFilterID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        priority:
          example: 10
          maximum: 100000
          minimum: 1
          type: integer
        routeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ruleID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        tlsCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        tlsConfiguration:
          $ref: '#/components/schemas/ftpinboundnodeapp.TLSConfiguration'
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    ftpinboundnodeapp.NewFTPConfiguration:
      properties:
        banner:
          example: Welcome!
          type: string
        encryptionMode:
          enum:
          - none
          - explicit
          - implicit
          example: none
          type: string
        passiveRangeStart:
          example: "30000"
          type: string
        passiveRangeStop:
          example: "31000"
          type: string
        publicIP:
          example: 192.168.1.1
          type: string
      required:
      - encryptionMode
      - passiveRangeStart
      - passiveRangeStop
      - publicIP
      type: object
    ftpinboundnodeapp.NewInboundNode:
      properties:
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Node configuration
          maxLength: 255
          type: string
        ftpConfiguration:
          $ref: '#/components/schemas/ftpinboundnodeapp.NewFTPConfiguration'
        ipFilterID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: ftp-inboundnode-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        priority:
          example: 10
          maximum: 100000
          minimum: 1
          type: integer
        ruleID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        tlsCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        tlsConfiguration:
          $ref: '#/components/schemas/ftpinboundnodeapp.TLSConfiguration'
      required:
      - ipFilterID
      - name
      - ruleID
      type: object
    ftpinboundnodeapp.TLSConfiguration:
      properties:
        cipherSuites:
          example:
          - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
          - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
          items:
            enum:
            - TLS_RSA_WITH_RC4_128_SHA
            - TLS_RSA_WITH_3DES_EDE_CBC_SHA
            - TLS_RSA_WITH_AES_128_CBC_SHA
            - TLS_RSA_WITH_AES_256_CBC_SHA
            - TLS_RSA_WITH_AES_128_CBC_SHA256
            - TLS_RSA_WITH_AES_128_GCM_SHA256
            - TLS_RSA_WITH_AES_256_GCM_SHA384
            - TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
            - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
            - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
            - TLS_ECDHE_RSA_WITH_RC4_128_SHA
            - TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
            - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
            - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
            - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
            - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
            - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
            - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
            - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
            - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
            - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
            - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
            type: string
          type: array
          uniqueItems: false
        curvePreferences:
          example:
          - CurveP256
          - X25519
          items:
            enum:
            - CurveP256
            - CurveP384
            - CurveP521
            - X25519
            - X25519MLKEM768
            type: string
          type: array
          uniqueItems: false
        maxVersion:
          enum:
          - "1.0"
          - "1.1"
          - "1.2"
          - "1.3"
          example: "1.3"
          type: string
        minVersion:
          enum:
          - "1.0"
          - "1.1"
          - "1.2"
          - "1.3"
          example: "1.2"
          type: string
      type: object
    ftpinboundnodeapp.UpdateFTPConfiguration:
      properties:
        banner:
          example: Welcome!
          type: string
        encryptionMode:
          enum:
          - none
          - explicit
          - implicit
          example: none
          type: string
        passiveRangeStart:
          example: "30000"
          type: string
        passiveRangeStop:
          example: "31000"
          type: string
        publicIP:
          example: 192.168.1.1
          type: string
      type: object
    ftpinboundnodeapp.UpdateInboundNode:
      properties:
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Node configuration
          maxLength: 255
          type: string
        ftpConfiguration:
          $ref: '#/components/schemas/ftpinboundnodeapp.UpdateFTPConfiguration'
        ipFilterID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: ftp-inboundnode-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        priority:
          example: 10
          maximum: 100000
          minimum: 1
          type: integer
        ruleID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        tlsCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        tlsConfiguration:
          $ref: '#/components/schemas/ftpinboundnodeapp.UpdateTLSConfiguration'
      type: object
    ftpinboundnodeapp.UpdateTLSConfiguration:
      properties:
        cipherSuites:
          example:
          - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
          - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
          items:
            enum:
            - TLS_RSA_WITH_RC4_128_SHA
            - TLS_RSA_WITH_3DES_EDE_CBC_SHA
            - TLS_RSA_WITH_AES_128_CBC_SHA
            - TLS_RSA_WITH_AES_256_CBC_SHA
            - TLS_RSA_WITH_AES_128_CBC_SHA256
            - TLS_RSA_WITH_AES_128_GCM_SHA256
            - TLS_RSA_WITH_AES_256_GCM_SHA384
            - TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
            - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
            - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
            - TLS_ECDHE_RSA_WITH_RC4_128_SHA
            - TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
            - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
            - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
            - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
            - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
            - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
            - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
            - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
            - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
            - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
            - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
            type: string
          type: array
          uniqueItems: false
        curvePreferences:
          example:
          - CurveP256
          - X25519
          items:
            enum:
            - CurveP256
            - CurveP384
            - CurveP521
            - X25519
            - X25519MLKEM768
            type: string
          type: array
          uniqueItems: false
        maxVersion:
          enum:
          - "1.0"
          - "1.1"
          - "1.2"
          - "1.3"
          example: "1.3"
          type: string
        minVersion:
          enum:
          - "1.0"
          - "1.1"
          - "1.2"
          - "1.3"
          example: "1.2"
          type: string
      type: object
    ftplistenerapp.Listener:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        defaultOutboundNodeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Listener configuration
          maxLength: 255
          type: string
        healthcheckConfiguration:
          $ref: '#/components/schemas/gitlab_udmg_stonebranch_com_mft_udmg-proxy_internal_app_types_healthcheck.Configuration'
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          example: "8080"
          type: string
        routeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        routingMethod:
          example: standard
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    ftplistenerapp.NewListener:
      properties:
        defaultOutboundNodeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Listener configuration
          maxLength: 255
          type: string
        healthcheckConfiguration:
          $ref: '#/components/schemas/gitlab_udmg_stonebranch_com_mft_udmg-proxy_internal_app_types_healthcheck.Configuration'
        name:
          example: ftp-listener-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        port:
          example: "8080"
          type: string
        routeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        routingMethod:
          example: standard
          type: string
      required:
      - defaultOutboundNodeID
      - name
      - port
      - routeID
      - routingMethod
      type: object
    ftplistenerapp.UpdateListener:
      properties:
        defaultOutboundNodeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Listener configuration
          maxLength: 255
          type: string
        healthcheckConfiguration:
          $ref: '#/components/schemas/gitlab_udmg_stonebranch_com_mft_udmg-proxy_internal_app_types_healthcheck.UpdateConfiguration'
        name:
          example: ftp-listener-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9'_-]1,255}$
          type: string
        port:
          example: "8080"
          type: string
        routeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        routingMethod:
          enum:
          - standard
          example: standard
          type: string
      type: object
    ftpoutboundnodeapp.FTPConfiguration:
      properties:
        encryptionMode:
          enum:
          - none
          - explicit
          - implicit
          example: none
          type: string
      type: object
    ftpoutboundnodeapp.NewFTPConfiguration:
      properties:
        encryptionMode:
          enum:
          - none
          - explicit
          - implicit
          example: none
          type: string
      required:
      - encryptionMode
      type: object
    ftpoutboundnodeapp.NewOutboundNode:
      properties:
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Node configuration
          maxLength: 255
          type: string
        ftpConfiguration:
          $ref: '#/components/schemas/ftpoutboundnodeapp.NewFTPConfiguration'
        hostname:
          example: localhost
          type: string
        name:
          example: ftp-outboundnode-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        port:
          example: "8443"
          type: string
        tlsCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        tlsConfiguration:
          $ref: '#/components/schemas/ftpoutboundnodeapp.TLSConfiguration'
      required:
      - hostname
      - name
      - port
      type: object
    ftpoutboundnodeapp.OutboundNode:
      properties:
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Node configuration
          maxLength: 255
          type: string
        ftpConfiguration:
          $ref: '#/components/schemas/ftpoutboundnodeapp.FTPConfiguration'
        hostname:
          example: localhost
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          example: "8443"
          type: string
        routeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        tlsCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        tlsConfiguration:
          $ref: '#/components/schemas/ftpoutboundnodeapp.TLSConfiguration'
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    ftpoutboundnodeapp.TLSConfiguration:
      properties:
        cipherSuites:
          example:
          - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
          - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
          items:
            enum:
            - TLS_RSA_WITH_RC4_128_SHA
            - TLS_RSA_WITH_3DES_EDE_CBC_SHA
            - TLS_RSA_WITH_AES_128_CBC_SHA
            - TLS_RSA_WITH_AES_256_CBC_SHA
            - TLS_RSA_WITH_AES_128_CBC_SHA256
            - TLS_RSA_WITH_AES_128_GCM_SHA256
            - TLS_RSA_WITH_AES_256_GCM_SHA384
            - TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
            - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
            - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
            - TLS_ECDHE_RSA_WITH_RC4_128_SHA
            - TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
            - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
            - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
            - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
            - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
            - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
            - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
            - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
            - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
            - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
            - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
            type: string
          type: array
          uniqueItems: false
        curvePreferences:
          example:
          - CurveP256
          - X25519
          items:
            enum:
            - CurveP256
            - CurveP384
            - CurveP521
            - X25519
            - X25519MLKEM768
            type: string
          type: array
          uniqueItems: false
        maxVersion:
          enum:
          - "1.0"
          - "1.1"
          - "1.2"
          - "1.3"
          example: TLS1.3
          type: string
        minVersion:
          enum:
          - "1.0"
          - "1.1"
          - "1.2"
          - "1.3"
          example: TLS1.2
          type: string
        serverName:
          example: server-name
          type: string
      type: object
    ftpoutboundnodeapp.UpdateFTPConfiguration:
      properties:
        encryptionMode:
          example: none
          type: string
      type: object
    ftpoutboundnodeapp.UpdateOutboundNode:
      properties:
        caCertificateID:
          type: string
        description:
          example: Node configuration
          maxLength: 255
          type: string
        ftpConfiguration:
          $ref: '#/components/schemas/ftpoutboundnodeapp.UpdateFTPConfiguration'
        hostname:
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          type: string
        tlsCertificateID:
          type: string
        tlsConfiguration:
          $ref: '#/components/schemas/ftpoutboundnodeapp.UpdateTLSConfiguration'
      type: object
    ftpoutboundnodeapp.UpdateTLSConfiguration:
      properties:
        cipherSuites:
          example:
          - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
          - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
          items:
            type: string
          type: array
          uniqueItems: false
        curvePreferences:
          example:
          - CurveP256
          - X25519
          items:
            type: string
          type: array
          uniqueItems: false
        maxVersion:
          example: TLS1.3
          type: string
        minVersion:
          example: TLS1.2
          type: string
        serverName:
          example: server-name
          type: string
      type: object
    ftprouteapp.NewRoute:
      properties:
        description:
          example: Route configuration
          maxLength: 255
          type: string
        name:
          example: ftp-route-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
      required:
      - name
      type: object
    ftprouteapp.Route:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Route configuration
          maxLength: 255
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    ftprouteapp.UpdateRoute:
      properties:
        description:
          example: Route configuration
          maxLength: 255
          type: string
        name:
          example: ftp-route-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9'_-]1,255}$
          type: string
      type: object
    ftpruleapp.NewRule:
      properties:
        accountRepositoryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Rule configuration
          maxLength: 255
          type: string
        icapScannerID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        inboundAuthenticationSource:
          enum:
          - none
          - account_repository
          - ldap
          example: account_repository
          type: string
        ldapConnectionID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapQueryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: ftp-rule-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        outboundCredentialsSource:
          enum:
          - passthrough
          - dedicated
          example: passthrough
          type: string
        password:
          example: johnpassword
          type: string
        username:
          example: johndoe
          type: string
      required:
      - inboundAuthenticationSource
      - name
      - outboundCredentialsSource
      type: object
    ftpruleapp.Rule:
      properties:
        accountRepositoryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Rule configuration
          maxLength: 255
          type: string
        icapScannerID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        inboundAuthenticationSource:
          example: account_repository
          type: string
        ldapConnectionID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapQueryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        outboundCredentialsSource:
          example: dedicated
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        username:
          example: johndoe
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    ftpruleapp.UpdateRule:
      properties:
        accountRepositoryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Rule configuration
          maxLength: 255
          type: string
        icapScannerID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        inboundAuthenticationSource:
          enum:
          - none
          - account_repository
          - ldap
          example: account_repository
          type: string
        ldapConnectionID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapQueryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: ftp-rule-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9'_-]1,255}$
          type: string
        outboundCredentialsSource:
          enum:
          - passthrough
          - dedicated
          example: passthrough
          type: string
        password:
          example: johnpassword
          type: string
        username:
          example: johndoe
          type: string
      type: object
    fwproxydeploymentapp.Deployment:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Deployment configuration
          maxLength: 255
          type: string
        listenerID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        serverID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        startupMode:
          example: auto
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    fwproxydeploymentapp.NewDeployment:
      properties:
        description:
          example: Deployment configuration
          maxLength: 255
          type: string
        serverID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        startupMode:
          enum:
          - auto
          - manual
          example: auto
          type: string
      required:
      - serverID
      - startupMode
      type: object
    fwproxydeploymentapp.UpdateDeployment:
      properties:
        description:
          example: Deployment configuration
          maxLength: 255
          type: string
        startupMode:
          enum:
          - auto
          - manual
          example: auto
          type: string
      type: object
    fwproxylistenerapp.ForwardProxy:
      properties:
        authMode:
          example: basic
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          maxLength: 255
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ipFilterID:
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          example: "8080"
          type: string
        tlsCertificateID:
          format: uuid
          type: string
        type:
          example: https
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        username:
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    fwproxylistenerapp.NewForwardProxy:
      properties:
        authMode:
          example: basic
          type: string
        description:
          maxLength: 255
          type: string
        ipFilterID:
          format: uuid
          type: string
        name:
          example: fwproxy-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        password:
          maxLength: 72
          type: string
        port:
          example: "8080"
          type: string
        tlsCertificateID:
          format: uuid
          type: string
        type:
          example: https
          type: string
        username:
          maxLength: 255
          type: string
      required:
      - authMode
      - name
      - port
      - type
      type: object
    fwproxylistenerapp.UpdateForwardProxy:
      properties:
        authMode:
          example: basic
          type: string
        description:
          maxLength: 255
          type: string
        ipFilterID:
          format: uuid
          type: string
        name:
          example: fwproxy-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        password:
          maxLength: 72
          type: string
        port:
          example: "8080"
          type: string
        tlsCertificateID:
          format: uuid
          type: string
        type:
          example: https
          type: string
        username:
          maxLength: 255
          type: string
      type: object
    gitlab_udmg_stonebranch_com_mft_udmg-proxy_internal_app_types_healthcheck.Configuration:
      properties:
        enabled:
          example: false
          type: boolean
        interval:
          example: 10s
          type: string
        threshold:
          example: 1
          minimum: 1
          type: integer
        timeout:
          example: 5s
          type: string
      type: object
    gitlab_udmg_stonebranch_com_mft_udmg-proxy_internal_app_types_healthcheck.UpdateConfiguration:
      properties:
        enabled:
          example: false
          type: boolean
        interval:
          example: 10s
          type: string
        threshold:
          example: 1
          minimum: 1
          type: integer
        timeout:
          example: 5s
          type: string
      type: object
    hsmconnectionapp.HSMConnection:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: HSM connection configuration
          maxLength: 255
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        loginNotSupported:
          example: false
          type: boolean
        maxSessions:
          example: 10
          type: integer
        name:
          maxLength: 255
          minLength: 1
          type: string
        path:
          example: /usr/lib/softhsm/libsofthsm2.so
          type: string
        poolWaitTimeout:
          example: 30
          type: integer
        slotNumber:
          example: "0"
          type: string
        tokenLabel:
          example: MyTokenLabel
          type: string
        tokenSerial:
          example: 476849205E6F73B8
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        userType:
          example: normal_user
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    hsmconnectionapp.NewHSMConnection:
      properties:
        description:
          example: HSM connection configuration
          maxLength: 255
          type: string
        loginNotSupported:
          example: false
          type: boolean
        maxSessions:
          example: 10
          minimum: 0
          type: integer
        name:
          example: hsmconnection-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        path:
          example: /usr/lib/softhsm/libsofthsm2.so
          maxLength: 255
          type: string
        pin:
          type: string
        poolWaitTimeout:
          example: 30
          minimum: 0
          type: integer
        slotNumber:
          example: "0"
          type: string
        tokenLabel:
          maxLength: 255
          type: string
        tokenSerial:
          maxLength: 255
          type: string
        userType:
          example: normal_user
          maxLength: 255
          type: string
      required:
      - name
      - path
      type: object
    hsmconnectionapp.UpdateHSMConnection:
      properties:
        description:
          example: HSM connection configuration
          maxLength: 255
          type: string
        loginNotSupported:
          example: false
          type: boolean
        maxSessions:
          example: 10
          minimum: 0
          type: integer
        name:
          example: hsmconnection-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        path:
          example: /usr/lib/softhsm/libsofthsm2.so
          maxLength: 255
          type: string
        pin:
          type: string
        poolWaitTimeout:
          example: 30
          minimum: 0
          type: integer
        slotNumber:
          example: "0"
          type: string
        tokenLabel:
          maxLength: 255
          type: string
        tokenSerial:
          maxLength: 255
          type: string
        userType:
          example: normal_user
          maxLength: 255
          type: string
      type: object
    hsmmonitorapp.HSMTestResult:
      properties:
        duration:
          type: string
        executedAt:
          type: string
        message:
          type: string
        success:
          type: boolean
      type: object
    httpdeploymentapp.Deployment:
      properties:
        clientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Deployment configuration
          maxLength: 255
          type: string
        ldapClientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapTunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        listenerID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        serverID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        startupMode:
          example: auto
          type: string
        tunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    httpdeploymentapp.NewDeployment:
      properties:
        clientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Deployment configuration
          maxLength: 255
          type: string
        ldapClientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapTunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        serverID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        startupMode:
          enum:
          - auto
          - manual
          example: auto
          type: string
        tunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      required:
      - serverID
      - startupMode
      type: object
    httpdeploymentapp.UpdateDeployment:
      properties:
        clientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Deployment configuration
          maxLength: 255
          type: string
        ldapClientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapTunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        startupMode:
          enum:
          - auto
          - manual
          example: auto
          type: string
        tunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      type: object
    httpinboundnodeapp.InboundNode:
      properties:
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Node configuration
          maxLength: 255
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ipFilterID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        priority:
          example: 10
          maximum: 100000
          minimum: 1
          type: integer
        routeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ruleID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        tlsCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        tlsConfiguration:
          $ref: '#/components/schemas/httpinboundnodeapp.TLSConfiguration'
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    httpinboundnodeapp.NewInboundNode:
      properties:
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Node configuration
          maxLength: 255
          type: string
        ipFilterID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: http-inboundnode-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        priority:
          example: 10
          maximum: 100000
          minimum: 1
          type: integer
        ruleID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        tlsCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        tlsConfiguration:
          $ref: '#/components/schemas/httpinboundnodeapp.TLSConfiguration'
      required:
      - ipFilterID
      - name
      - ruleID
      type: object
    httpinboundnodeapp.TLSConfiguration:
      properties:
        cipherSuites:
          example:
          - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
          - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
          items:
            enum:
            - TLS_RSA_WITH_RC4_128_SHA
            - TLS_RSA_WITH_3DES_EDE_CBC_SHA
            - TLS_RSA_WITH_AES_128_CBC_SHA
            - TLS_RSA_WITH_AES_256_CBC_SHA
            - TLS_RSA_WITH_AES_128_CBC_SHA256
            - TLS_RSA_WITH_AES_128_GCM_SHA256
            - TLS_RSA_WITH_AES_256_GCM_SHA384
            - TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
            - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
            - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
            - TLS_ECDHE_RSA_WITH_RC4_128_SHA
            - TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
            - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
            - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
            - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
            - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
            - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
            - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
            - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
            - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
            - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
            - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
            type: string
          type: array
          uniqueItems: false
        curvePreferences:
          example:
          - CurveP256
          - X25519
          items:
            enum:
            - CurveP256
            - CurveP384
            - CurveP521
            - X25519
            - X25519MLKEM768
            type: string
          type: array
          uniqueItems: false
        maxVersion:
          enum:
          - "1.0"
          - "1.1"
          - "1.2"
          - "1.3"
          example: "1.3"
          type: string
        minVersion:
          enum:
          - "1.0"
          - "1.1"
          - "1.2"
          - "1.3"
          example: "1.2"
          type: string
      type: object
    httpinboundnodeapp.UpdateInboundNode:
      properties:
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Node configuration
          maxLength: 255
          type: string
        ipFilterID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: http-inboundnode-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9'_-]1,255}$
          type: string
        priority:
          example: 10
          maximum: 100000
          minimum: 1
          type: integer
        ruleID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        tlsCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        tlsConfiguration:
          $ref: '#/components/schemas/httpinboundnodeapp.UpdateTLSConfiguration'
      type: object
    httpinboundnodeapp.UpdateTLSConfiguration:
      properties:
        cipherSuites:
          example:
          - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
          - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
          items:
            enum:
            - TLS_RSA_WITH_RC4_128_SHA
            - TLS_RSA_WITH_3DES_EDE_CBC_SHA
            - TLS_RSA_WITH_AES_128_CBC_SHA
            - TLS_RSA_WITH_AES_256_CBC_SHA
            - TLS_RSA_WITH_AES_128_CBC_SHA256
            - TLS_RSA_WITH_AES_128_GCM_SHA256
            - TLS_RSA_WITH_AES_256_GCM_SHA384
            - TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
            - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
            - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
            - TLS_ECDHE_RSA_WITH_RC4_128_SHA
            - TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
            - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
            - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
            - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
            - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
            - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
            - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
            - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
            - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
            - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
            - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
            type: string
          type: array
          uniqueItems: false
        curvePreferences:
          example:
          - CurveP256
          - X25519
          items:
            enum:
            - CurveP256
            - CurveP384
            - CurveP521
            - X25519
            - X25519MLKEM768
            type: string
          type: array
          uniqueItems: false
        maxVersion:
          enum:
          - "1.0"
          - "1.1"
          - "1.2"
          - "1.3"
          example: "1.3"
          type: string
        minVersion:
          enum:
          - "1.0"
          - "1.1"
          - "1.2"
          - "1.3"
          example: "1.2"
          type: string
      type: object
    httplistenerapp.Listener:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        defaultOutboundNodeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Listener configuration
          maxLength: 255
          type: string
        healthcheckConfiguration:
          $ref: '#/components/schemas/gitlab_udmg_stonebranch_com_mft_udmg-proxy_internal_app_types_healthcheck.Configuration'
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          example: "8080"
          type: string
        routeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        routingMethod:
          example: standard
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    httplistenerapp.NewListener:
      properties:
        defaultOutboundNodeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Listener configuration
          maxLength: 255
          type: string
        healthcheckConfiguration:
          $ref: '#/components/schemas/gitlab_udmg_stonebranch_com_mft_udmg-proxy_internal_app_types_healthcheck.Configuration'
        name:
          example: http-listener-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        port:
          example: "8080"
          type: string
        routeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        routingMethod:
          example: standard
          type: string
      required:
      - defaultOutboundNodeID
      - name
      - port
      - routeID
      - routingMethod
      type: object
    httplistenerapp.UpdateListener:
      properties:
        defaultOutboundNodeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Listener configuration
          maxLength: 255
          type: string
        healthcheckConfiguration:
          $ref: '#/components/schemas/gitlab_udmg_stonebranch_com_mft_udmg-proxy_internal_app_types_healthcheck.UpdateConfiguration'
        name:
          example: http-listener-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9'_-]1,255}$
          type: string
        port:
          example: "8080"
          type: string
        routeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        routingMethod:
          enum:
          - standard
          example: standard
          type: string
      type: object
    httpoutboundnodeapp.NewOutboundNode:
      properties:
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Node configuration
          maxLength: 255
          type: string
        hostname:
          example: localhost
          type: string
        name:
          example: http-outboundnode-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        port:
          example: "8443"
          type: string
        tlsCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        tlsConfiguration:
          $ref: '#/components/schemas/httpoutboundnodeapp.TLSConfiguration'
      required:
      - hostname
      - name
      - port
      type: object
    httpoutboundnodeapp.OutboundNode:
      properties:
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Node configuration
          maxLength: 255
          type: string
        hostname:
          example: localhost
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          example: "8443"
          type: string
        routeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        tlsCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        tlsConfiguration:
          $ref: '#/components/schemas/httpoutboundnodeapp.TLSConfiguration'
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    httpoutboundnodeapp.TLSConfiguration:
      properties:
        cipherSuites:
          example:
          - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
          - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
          items:
            enum:
            - TLS_RSA_WITH_RC4_128_SHA
            - TLS_RSA_WITH_3DES_EDE_CBC_SHA
            - TLS_RSA_WITH_AES_128_CBC_SHA
            - TLS_RSA_WITH_AES_256_CBC_SHA
            - TLS_RSA_WITH_AES_128_CBC_SHA256
            - TLS_RSA_WITH_AES_128_GCM_SHA256
            - TLS_RSA_WITH_AES_256_GCM_SHA384
            - TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
            - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
            - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
            - TLS_ECDHE_RSA_WITH_RC4_128_SHA
            - TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
            - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
            - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
            - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
            - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
            - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
            - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
            - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
            - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
            - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
            - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
            type: string
          type: array
          uniqueItems: false
        curvePreferences:
          example:
          - CurveP256
          - X25519
          items:
            enum:
            - CurveP256
            - CurveP384
            - CurveP521
            - X25519
            - X25519MLKEM768
            type: string
          type: array
          uniqueItems: false
        maxVersion:
          enum:
          - "1.0"
          - "1.1"
          - "1.2"
          - "1.3"
          example: TLS1.3
          type: string
        minVersion:
          enum:
          - "1.0"
          - "1.1"
          - "1.2"
          - "1.3"
          example: TLS1.2
          type: string
        serverName:
          example: server-name
          type: string
      type: object
    httpoutboundnodeapp.UpdateOutboundNode:
      properties:
        caCertificateID:
          type: string
        description:
          example: Node configuration
          maxLength: 255
          type: string
        hostname:
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          type: string
        tlsCertificateID:
          type: string
        tlsConfiguration:
          $ref: '#/components/schemas/httpoutboundnodeapp.UpdateTLSConfiguration'
      type: object
    httpoutboundnodeapp.UpdateTLSConfiguration:
      properties:
        cipherSuites:
          example:
          - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
          - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
          items:
            type: string
          type: array
          uniqueItems: false
        curvePreferences:
          example:
          - CurveP256
          - X25519
          items:
            type: string
          type: array
          uniqueItems: false
        maxVersion:
          example: TLS1.3
          type: string
        minVersion:
          example: TLS1.2
          type: string
        serverName:
          example: server-name
          type: string
      type: object
    httprouteapp.NewRoute:
      properties:
        description:
          example: Route configuration
          maxLength: 255
          type: string
        name:
          example: http-route-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
      required:
      - name
      type: object
    httprouteapp.Route:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Route configuration
          maxLength: 255
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    httprouteapp.UpdateRoute:
      properties:
        description:
          example: Route configuration
          maxLength: 255
          type: string
        name:
          example: http-route-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9'_-]1,255}$
          type: string
      type: object
    httpruleapp.NewRule:
      properties:
        accountRepositoryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        authenticationMethod:
          enum:
          - none
          - basic
          example: basic
          type: string
        description:
          example: Rule configuration
          maxLength: 255
          type: string
        icapScannerID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        inboundAuthenticationSource:
          enum:
          - none
          - account_repository
          - ldap
          example: account_repository
          type: string
        ldapConnectionID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapQueryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: http-rule-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        outboundCredentialsSource:
          enum:
          - passthrough
          - dedicated
          example: passthrough
          type: string
        password:
          example: johnpassword
          type: string
        username:
          example: johndoe
          type: string
      required:
      - authenticationMethod
      - inboundAuthenticationSource
      - name
      - outboundCredentialsSource
      type: object
    httpruleapp.Rule:
      properties:
        accountRepositoryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        authenticationMethod:
          example: basic
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Rule configuration
          maxLength: 255
          type: string
        icapScannerID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        inboundAuthenticationSource:
          example: account_repository
          type: string
        ldapConnectionID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapQueryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        outboundCredentialsSource:
          example: dedicated
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        username:
          example: johndoe
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    httpruleapp.UpdateRule:
      properties:
        accountRepositoryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        authenticationMethod:
          enum:
          - none
          - basic
          example: basic
          type: string
        description:
          example: Rule configuration
          maxLength: 255
          type: string
        icapScannerID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        inboundAuthenticationSource:
          enum:
          - none
          - account_repository
          - ldap
          example: account_repository
          type: string
        ldapConnectionID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapQueryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: http-rule-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9'_-]1,255}$
          type: string
        outboundCredentialsSource:
          enum:
          - passthrough
          - dedicated
          example: passthrough
          type: string
        password:
          example: johnpassword
          type: string
        username:
          example: johndoe
          type: string
      type: object
    icapscannerapp.NewScanner:
      properties:
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        errorExtension:
          example: unscanned
          type: string
        errorPolicy:
          example: reject
          type: string
        hostname:
          example: localhost
          type: string
        maxFileSize:
          example: 10000
          minimum: 1
          type: integer
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          example: "1344"
          type: string
        service:
          example: avscan
          type: string
        skipExtensions:
          example:
          - zip
          - txt
          items:
            type: string
          type: array
          uniqueItems: false
      required:
      - errorPolicy
      - hostname
      - maxFileSize
      - name
      - port
      type: object
    icapscannerapp.Options:
      properties:
        allow:
          type: string
        isTag:
          type: string
        methods:
          items:
            type: string
          type: array
          uniqueItems: false
        optionsTTL:
          type: string
        preview:
          type: string
        protocol:
          type: string
        service:
          type: string
        statusCode:
          type: integer
        transferComplete:
          type: string
        transferIgnore:
          type: string
        transferPreview:
          type: string
        uri:
          type: string
      type: object
    icapscannerapp.Scanner:
      properties:
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        errorExtension:
          example: unscanned
          type: string
        errorPolicy:
          example: block
          type: string
        hostname:
          example: localhost
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        maxFileSize:
          example: 10000
          type: integer
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          example: "1344"
          type: string
        service:
          example: avscan
          type: string
        skipExtensions:
          example:
          - zip
          - txt
          items:
            type: string
          type: array
          uniqueItems: false
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    icapscannerapp.Test:
      properties:
        duration:
          type: string
        executedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        message:
          type: string
        response:
          $ref: '#/components/schemas/icapscannerapp.Options'
        success:
          type: boolean
      type: object
    icapscannerapp.UpdateScanner:
      properties:
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        errorExtension:
          example: unscanned
          type: string
        errorPolicy:
          example: reject
          type: string
        hostname:
          example: localhost
          type: string
        maxFileSize:
          example: 10000
          minimum: 1
          type: integer
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          example: "1344"
          type: string
        service:
          example: avscan
          type: string
        skipExtensions:
          example:
          - zip
          - txt
          items:
            type: string
          type: array
          uniqueItems: false
      type: object
    ipfilterapp.Filter:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        defaultAction:
          enum:
          - block
          - allow
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    ipfilterapp.NewFilter:
      properties:
        defaultAction:
          enum:
          - block
          - allow
          example: block
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        name:
          example: ipfilter-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
      required:
      - defaultAction
      - name
      type: object
    ipfilterapp.TestResult:
      properties:
        allowed:
          type: boolean
        message:
          type: string
        rule:
          $ref: '#/components/schemas/ipfilterapp.TestRule'
      type: object
    ipfilterapp.TestRule:
      properties:
        action:
          enum:
          - allow
          - block
          example: block
          type: string
        address:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      type: object
    ipfilterapp.UpdateFilter:
      properties:
        defaultAction:
          enum:
          - block
          - allow
          example: block
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        name:
          example: ipfilter-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9'_-]1,255}$
          type: string
      type: object
    ipruleapp.NewRule:
      properties:
        action:
          enum:
          - block
          - allow
          example: block
          type: string
        address:
          type: string
        description:
          maxLength: 255
          type: string
      required:
      - action
      - address
      type: object
    ipruleapp.Rule:
      properties:
        action:
          enum:
          - block
          - allow
          example: block
          type: string
        address:
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Rule configuration
          maxLength: 255
          type: string
        filterID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    ipruleapp.UpdateRule:
      properties:
        action:
          enum:
          - block
          - allow
          example: block
          type: string
        address:
          type: string
        description:
          maxLength: 255
          type: string
      type: object
    kmsapp.Key:
      properties:
        algorithm:
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        scope:
          type: string
        status:
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    kmsapp.NewKey:
      properties:
        algorithm:
          type: string
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        name:
          example: kms-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        scope:
          type: string
      required:
      - algorithm
      - name
      - scope
      type: object
    kmsapp.UpdateKey:
      properties:
        description:
          example: Configuration entry
          maxLength: 255
          type: string
        name:
          example: kms-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        status:
          type: string
      type: object
    ldapauthapp.Credentials:
      properties:
        password:
          example: SecureP@ssw0rd123
          format: password
          maxLength: 72
          minLength: 8
          type: string
        username:
          example: john.doe
          maxLength: 255
          minLength: 1
          type: string
      required:
      - password
      - username
      type: object
    ldapauthapp.TokenResponse:
      properties:
        accessToken:
          example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
          type: string
        bannerLogoImage:
          example: data:image/png;base64,iVBORw0KG...
          type: string
        refreshToken:
          example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
          type: string
        systemIdentifier:
          example: prod-system-01
          type: string
        token:
          description: For backwards compatibility.
          example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
          type: string
      type: object
    ldapauthmethodapp.LDAPConfiguration:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        defaultRole:
          example: readonly
          type: string
        emailAttribute:
          example: email
          type: string
        ldapConnectionID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapQueryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        nameAttribute:
          example: name
          type: string
        roleAttribute:
          example: role
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    ldapauthmethodapp.NewLDAPConfiguration:
      properties:
        defaultRole:
          example: readonly
          type: string
        emailAttribute:
          example: email
          type: string
        ldapConnectionID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          type: string
        ldapQueryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          type: string
        nameAttribute:
          example: name
          type: string
        roleAttribute:
          example: role
          type: string
      required:
      - defaultRole
      - emailAttribute
      - ldapConnectionID
      - ldapQueryID
      - nameAttribute
      - roleAttribute
      type: object
    ldapauthmethodapp.UpdateLDAPConfiguration:
      properties:
        defaultRole:
          example: readonly
          type: string
        emailAttribute:
          example: email
          type: string
        ldapConnectionID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          type: string
        ldapQueryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          type: string
        nameAttribute:
          example: name
          type: string
        roleAttribute:
          example: role
          type: string
      type: object
    ldapconnectionapp.LDAPConnection:
      properties:
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: LDAP directory connection
          maxLength: 255
          type: string
        hostname:
          example: ldap.example.com
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: ldap-01
          maxLength: 255
          minLength: 1
          type: string
        port:
          example: "389"
          type: string
        secure:
          example: true
          type: boolean
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    ldapconnectionapp.NewLDAPConnection:
      properties:
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: LDAP directory connection
          maxLength: 255
          type: string
        hostname:
          example: ldap.example.com
          type: string
        name:
          example: ldap-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        port:
          example: "389"
          type: string
        secure:
          example: true
          type: boolean
      required:
      - hostname
      - name
      - port
      type: object
    ldapconnectionapp.UpdateLDAPConnection:
      properties:
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: LDAP directory connection
          maxLength: 255
          type: string
        hostname:
          example: ldap.example.com
          type: string
        name:
          example: ldap-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        port:
          example: "389"
          type: string
        secure:
          example: true
          type: boolean
      type: object
    ldapqueryapp.LDAPQuery:
      properties:
        baseDN:
          example: dc=example,dc=org
          type: string
        bindDN:
          example: cn=admin,dc=example,dc=org
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: LDAP configuration
          maxLength: 255
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        userFilter:
          example: (objectClass=person)
          type: string
        userIDAttribute:
          example: uid
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    ldapqueryapp.NewLDAPQuery:
      properties:
        baseDN:
          example: dc=example,dc=org
          type: string
        bindDN:
          example: cn=admin,dc=example,dc=org
          type: string
        bindPassword:
          example: johnpassword
          format: password
          type: string
        description:
          example: LDAP configuration
          maxLength: 255
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        userFilter:
          example: (objectClass=person)
          type: string
        userIDAttribute:
          example: uid
          type: string
      required:
      - baseDN
      - bindDN
      - bindPassword
      - name
      - userIDAttribute
      type: object
    ldapqueryapp.UpdateLDAPQuery:
      properties:
        baseDN:
          example: dc=example,dc=org
          type: string
        bindDN:
          example: cn=admin,dc=example,dc=org
          type: string
        bindPassword:
          example: johnpassword
          format: password
          type: string
        description:
          example: LDAP configuration
          maxLength: 255
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        userFilter:
          example: (objectClass=person)
          type: string
        userIDAttribute:
          example: uid
          type: string
      type: object
    ldaptestapp.TestResult:
      properties:
        duration:
          type: string
        executedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        message:
          type: string
        success:
          type: boolean
      type: object
    monitorapp.Client:
      properties:
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
      type: object
    monitorapp.FTPListener:
      properties:
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        state:
          type: string
      type: object
    monitorapp.FTPListenerStatus:
      properties:
        address:
          type: string
        state:
          type: string
      type: object
    monitorapp.ForwardProxyListener:
      properties:
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        state:
          type: string
      type: object
    monitorapp.ForwardProxyListenerStatus:
      properties:
        address:
          type: string
        state:
          type: string
      type: object
    monitorapp.HTTPListener:
      properties:
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        state:
          type: string
      type: object
    monitorapp.HTTPListenerStatus:
      properties:
        address:
          type: string
        state:
          type: string
      type: object
    monitorapp.SFTPListener:
      properties:
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        state:
          type: string
      type: object
    monitorapp.SFTPListenerStatus:
      properties:
        address:
          type: string
        state:
          type: string
      type: object
    monitorapp.Status:
      properties:
        forwardProxyListeners:
          items:
            $ref: '#/components/schemas/monitorapp.ForwardProxyListener'
          type: array
          uniqueItems: false
        ftpListeners:
          items:
            $ref: '#/components/schemas/monitorapp.FTPListener'
          type: array
          uniqueItems: false
        hostname:
          type: string
        httpListeners:
          items:
            $ref: '#/components/schemas/monitorapp.HTTPListener'
          type: array
          uniqueItems: false
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          type: string
        sftpListeners:
          items:
            $ref: '#/components/schemas/monitorapp.SFTPListener'
          type: array
          uniqueItems: false
        tcpListeners:
          items:
            $ref: '#/components/schemas/monitorapp.TCPListener'
          type: array
          uniqueItems: false
        tunnels:
          items:
            $ref: '#/components/schemas/monitorapp.Tunnel'
          type: array
          uniqueItems: false
      type: object
    monitorapp.TCPListener:
      properties:
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        state:
          type: string
      type: object
    monitorapp.TCPListenerStatus:
      properties:
        address:
          type: string
        state:
          type: string
      type: object
    monitorapp.Tunnel:
      properties:
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        state:
          type: string
      type: object
    monitorapp.TunnelStatus:
      properties:
        address:
          type: string
        clients:
          items:
            $ref: '#/components/schemas/monitorapp.Client'
          type: array
          uniqueItems: false
        state:
          type: string
      type: object
    oidcauthmethodapp.AuthMethod:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        defaultRole:
          example: READONLY
          type: string
        description:
          example: OIDC configuration
          maxLength: 255
          type: string
        emailAttribute:
          example: email
          type: string
        enabled:
          example: true
          type: boolean
        fullRedirectURI:
          type: string
        groupToRoleMapping:
          additionalProperties:
            type: string
          type: object
        groupsAttribute:
          example: groups
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        nameAttribute:
          example: name
          type: string
        oidcProviderID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        redirectURI:
          type: string
        roleErrorPolicy:
          example: deny
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        userAttribute:
          example: user
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    oidcauthmethodapp.NewAuthMethod:
      properties:
        defaultRole:
          example: READONLY
          type: string
        description:
          example: OIDC configuration
          maxLength: 255
          type: string
        emailAttribute:
          example: email
          type: string
        enabled:
          example: true
          type: boolean
        groupToRoleMapping:
          additionalProperties:
            type: string
          type: object
        groupsAttribute:
          example: groups
          type: string
        name:
          example: oidc-authmethod-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        nameAttribute:
          example: name
          type: string
        oidcProviderID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          type: string
        redirectURI:
          type: string
        roleErrorPolicy:
          example: default
          type: string
        userAttribute:
          example: user
          type: string
      required:
      - groupsAttribute
      - name
      - nameAttribute
      - oidcProviderID
      - redirectURI
      - roleErrorPolicy
      - userAttribute
      type: object
    oidcauthmethodapp.UpdateAuthMethod:
      properties:
        defaultRole:
          example: READONLY
          type: string
        description:
          example: OIDC configuration
          maxLength: 255
          type: string
        emailAttribute:
          example: email
          type: string
        enabled:
          example: true
          type: boolean
        groupToRoleMapping:
          additionalProperties:
            type: string
          type: object
        groupsAttribute:
          example: groups
          type: string
        name:
          example: oidc-authmethod-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        nameAttribute:
          example: name
          type: string
        oidcProviderID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          type: string
        redirectURI:
          type: string
        roleErrorPolicy:
          example: default
          type: string
        userAttribute:
          example: user
          type: string
      type: object
    oidcproviderapp.NewProvider:
      properties:
        authorizationURL:
          example: http://example.com/oidc
          type: string
        clientID:
          type: string
        clientSecret:
          type: string
        description:
          example: OIDC configuration
          maxLength: 255
          type: string
        issuer:
          type: string
        name:
          example: oidc-provider-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        scopes:
          items:
            type: string
          type: array
          uniqueItems: false
        tokenURL:
          example: http://example.com/oidc
          type: string
        userInfoURL:
          example: http://example.com/oidc
          type: string
      required:
      - authorizationURL
      - clientID
      - clientSecret
      - issuer
      - name
      - tokenURL
      - userInfoURL
      type: object
    oidcproviderapp.Provider:
      properties:
        authorizationURL:
          example: http://example.com/oidc
          type: string
        clientID:
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: OIDC configuration
          maxLength: 255
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        issuer:
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        scopes:
          items:
            type: string
          type: array
          uniqueItems: false
        tokenURL:
          example: http://example.com/oidc
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        userInfoURL:
          example: http://example.com/oidc
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    oidcproviderapp.UpdateProvider:
      properties:
        authorizationURL:
          example: http://example.com/oidc
          type: string
        clientID:
          type: string
        clientSecret:
          type: string
        description:
          example: OIDC configuration
          maxLength: 255
          type: string
        issuer:
          type: string
        name:
          example: oidc-provider-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9'_-]1,255}$
          type: string
        scopes:
          items:
            type: string
          type: array
          uniqueItems: false
        tokenURL:
          example: http://example.com/oidc
          type: string
        userInfoURL:
          example: http://example.com/oidc
          type: string
      type: object
    privkeyapp.Key:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: SSH private key for authentication
          maxLength: 255
          type: string
        enabled:
          example: true
          type: boolean
        hsmID:
          example: "0x7081370b"
          type: string
        hsmLabel:
          example: key-label
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: privkey-01
          maxLength: 255
          minLength: 1
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    privkeyapp.NewKey:
      properties:
        description:
          example: SSH private key for authentication
          maxLength: 255
          type: string
        enabled:
          example: true
          type: boolean
        hsmID:
          example: "0x7081370b"
          format: hex
          type: string
        hsmLabel:
          example: key-label
          maxLength: 255
          type: string
        key:
          example: |-
            -----BEGIN RSA PRIVATE KEY-----
            ...
            -----END RSA PRIVATE KEY-----
          format: pem
          type: string
        name:
          example: privkey-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
      required:
      - name
      type: object
    privkeyapp.UpdateKey:
      properties:
        description:
          example: SSH private key for authentication
          maxLength: 255
          type: string
        enabled:
          example: true
          type: boolean
        hsmID:
          example: "0x7081370b"
          format: hex
          type: string
        hsmLabel:
          example: key-label
          maxLength: 255
          type: string
        key:
          example: |-
            -----BEGIN RSA PRIVATE KEY-----
            ...
            -----END RSA PRIVATE KEY-----
          format: pem
          type: string
        name:
          example: privkey-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
      type: object
    pshsmapp.HSMObject:
      properties:
        hsmID:
          type: string
        hsmLabel:
          type: string
      type: object
    pshsmapp.HSMStatus:
      properties:
        state:
          type: string
      type: object
    pubkeyapp.Key:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: SSH public key for authentication
          maxLength: 255
          type: string
        enabled:
          example: true
          type: boolean
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        key:
          example: ssh-rsa AAAA...
          format: authorized-key
          type: string
        name:
          example: pubkey-01
          maxLength: 255
          minLength: 1
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    pubkeyapp.NewKey:
      properties:
        description:
          example: SSH public key for authentication
          maxLength: 255
          type: string
        enabled:
          example: true
          type: boolean
        key:
          example: ssh-rsa AAAA...
          format: authorized-key
          type: string
        name:
          example: pubkey-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
      required:
      - key
      - name
      type: object
    pubkeyapp.UpdateKey:
      properties:
        description:
          example: SSH public key for authentication
          maxLength: 255
          type: string
        enabled:
          example: true
          type: boolean
        key:
          example: ssh-rsa AAAA...
          format: authorized-key
          type: string
        name:
          example: pubkey-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
      type: object
    query.Result-accountapp_Account:
      properties:
        items:
          items:
            $ref: '#/components/schemas/accountapp.Account'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-accountrepositoryapp_AccountRepository:
      properties:
        items:
          items:
            $ref: '#/components/schemas/accountrepositoryapp.AccountRepository'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-cacertapp_Certificate:
      properties:
        items:
          items:
            $ref: '#/components/schemas/cacertapp.Certificate'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-clientapp_Client:
      properties:
        items:
          items:
            $ref: '#/components/schemas/clientapp.Client'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-configapp_Configuration:
      properties:
        items:
          items:
            $ref: '#/components/schemas/configapp.Configuration'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-ftpdeploymentapp_Deployment:
      properties:
        items:
          items:
            $ref: '#/components/schemas/ftpdeploymentapp.Deployment'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-ftpinboundnodeapp_InboundNode:
      properties:
        items:
          items:
            $ref: '#/components/schemas/ftpinboundnodeapp.InboundNode'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-ftplistenerapp_Listener:
      properties:
        items:
          items:
            $ref: '#/components/schemas/ftplistenerapp.Listener'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-ftpoutboundnodeapp_OutboundNode:
      properties:
        items:
          items:
            $ref: '#/components/schemas/ftpoutboundnodeapp.OutboundNode'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-ftprouteapp_Route:
      properties:
        items:
          items:
            $ref: '#/components/schemas/ftprouteapp.Route'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-ftpruleapp_Rule:
      properties:
        items:
          items:
            $ref: '#/components/schemas/ftpruleapp.Rule'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-fwproxydeploymentapp_Deployment:
      properties:
        items:
          items:
            $ref: '#/components/schemas/fwproxydeploymentapp.Deployment'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-fwproxylistenerapp_ForwardProxy:
      properties:
        items:
          items:
            $ref: '#/components/schemas/fwproxylistenerapp.ForwardProxy'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-hsmconnectionapp_HSMConnection:
      properties:
        items:
          items:
            $ref: '#/components/schemas/hsmconnectionapp.HSMConnection'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-httpdeploymentapp_Deployment:
      properties:
        items:
          items:
            $ref: '#/components/schemas/httpdeploymentapp.Deployment'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-httpinboundnodeapp_InboundNode:
      properties:
        items:
          items:
            $ref: '#/components/schemas/httpinboundnodeapp.InboundNode'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-httplistenerapp_Listener:
      properties:
        items:
          items:
            $ref: '#/components/schemas/httplistenerapp.Listener'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-httpoutboundnodeapp_OutboundNode:
      properties:
        items:
          items:
            $ref: '#/components/schemas/httpoutboundnodeapp.OutboundNode'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-httprouteapp_Route:
      properties:
        items:
          items:
            $ref: '#/components/schemas/httprouteapp.Route'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-httpruleapp_Rule:
      properties:
        items:
          items:
            $ref: '#/components/schemas/httpruleapp.Rule'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-icapscannerapp_Scanner:
      properties:
        items:
          items:
            $ref: '#/components/schemas/icapscannerapp.Scanner'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-ipfilterapp_Filter:
      properties:
        items:
          items:
            $ref: '#/components/schemas/ipfilterapp.Filter'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-ipruleapp_Rule:
      properties:
        items:
          items:
            $ref: '#/components/schemas/ipruleapp.Rule'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-kmsapp_Key:
      properties:
        items:
          items:
            $ref: '#/components/schemas/kmsapp.Key'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-ldapconnectionapp_LDAPConnection:
      properties:
        items:
          items:
            $ref: '#/components/schemas/ldapconnectionapp.LDAPConnection'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-ldapqueryapp_LDAPQuery:
      properties:
        items:
          items:
            $ref: '#/components/schemas/ldapqueryapp.LDAPQuery'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-oidcauthmethodapp_AuthMethod:
      properties:
        items:
          items:
            $ref: '#/components/schemas/oidcauthmethodapp.AuthMethod'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-oidcproviderapp_Provider:
      properties:
        items:
          items:
            $ref: '#/components/schemas/oidcproviderapp.Provider'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-privkeyapp_Key:
      properties:
        items:
          items:
            $ref: '#/components/schemas/privkeyapp.Key'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-pubkeyapp_Key:
      properties:
        items:
          items:
            $ref: '#/components/schemas/pubkeyapp.Key'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-samlauthmethodapp_AuthMethod:
      properties:
        items:
          items:
            $ref: '#/components/schemas/samlauthmethodapp.AuthMethod'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-samlproviderapp_Provider:
      properties:
        items:
          items:
            $ref: '#/components/schemas/samlproviderapp.Provider'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-serverapp_Server:
      properties:
        items:
          items:
            $ref: '#/components/schemas/serverapp.Server'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-sftpdeploymentapp_Deployment:
      properties:
        items:
          items:
            $ref: '#/components/schemas/sftpdeploymentapp.Deployment'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-sftpinboundnodeapp_InboundNode:
      properties:
        items:
          items:
            $ref: '#/components/schemas/sftpinboundnodeapp.InboundNode'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-sftplistenerapp_Listener:
      properties:
        items:
          items:
            $ref: '#/components/schemas/sftplistenerapp.Listener'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-sftpoutboundnodeapp_OutboundNode:
      properties:
        items:
          items:
            $ref: '#/components/schemas/sftpoutboundnodeapp.OutboundNode'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-sftprouteapp_Route:
      properties:
        items:
          items:
            $ref: '#/components/schemas/sftprouteapp.Route'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-sftpruleapp_Rule:
      properties:
        items:
          items:
            $ref: '#/components/schemas/sftpruleapp.Rule'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-tcpdeploymentapp_Deployment:
      properties:
        items:
          items:
            $ref: '#/components/schemas/tcpdeploymentapp.Deployment'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-tcplistenerapp_Listener:
      properties:
        items:
          items:
            $ref: '#/components/schemas/tcplistenerapp.Listener'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-tlscertapp_Certificate:
      properties:
        items:
          items:
            $ref: '#/components/schemas/tlscertapp.Certificate'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-tunnelapp_Tunnel:
      properties:
        items:
          items:
            $ref: '#/components/schemas/tunnelapp.Tunnel'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-userapp_User:
      properties:
        items:
          items:
            $ref: '#/components/schemas/userapp.User'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-vkmsusageapp_EncryptionKeyUsage:
      properties:
        items:
          items:
            $ref: '#/components/schemas/vkmsusageapp.EncryptionKeyUsage'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-vsftpdeploymentapp_Deployment:
      properties:
        items:
          items:
            $ref: '#/components/schemas/vsftpdeploymentapp.Deployment'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-vsftpinboundnodeapp_InboundNode:
      properties:
        items:
          items:
            $ref: '#/components/schemas/vsftpinboundnodeapp.InboundNode'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    query.Result-vsftplistenerapp_Listener:
      properties:
        items:
          items:
            $ref: '#/components/schemas/vsftplistenerapp.Listener'
          type: array
          uniqueItems: false
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
      type: object
    samlauthmethodapp.AuthMethod:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        defaultRole:
          example: readonly
          type: string
        description:
          example: SAML configuration
          maxLength: 255
          type: string
        emailAttribute:
          example: email
          type: string
        enabled:
          example: true
          type: boolean
        fullRedirectURI:
          type: string
        groupToRoleMapping:
          additionalProperties:
            type: string
          type: object
        groupsAttribute:
          example: groups
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        nameAttribute:
          example: name
          type: string
        redirectURI:
          type: string
        roleErrorPolicy:
          example: deny
          type: string
        samlProviderID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        userAttribute:
          example: user
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    samlauthmethodapp.NewAuthMethod:
      properties:
        defaultRole:
          example: readonly
          type: string
        description:
          example: SAML configuration
          maxLength: 255
          type: string
        emailAttribute:
          example: email
          type: string
        enabled:
          example: true
          type: boolean
        groupToRoleMapping:
          additionalProperties:
            type: string
          type: object
        groupsAttribute:
          example: groups
          type: string
        name:
          example: saml-authmethod-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        nameAttribute:
          example: name
          type: string
        redirectURI:
          type: string
        roleErrorPolicy:
          example: default
          type: string
        samlProviderID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          type: string
        userAttribute:
          example: user
          type: string
      required:
      - groupsAttribute
      - name
      - nameAttribute
      - redirectURI
      - roleErrorPolicy
      - samlProviderID
      - userAttribute
      type: object
    samlauthmethodapp.UpdateAuthMethod:
      properties:
        defaultRole:
          example: readonly
          type: string
        description:
          example: SAML configuration
          maxLength: 255
          type: string
        emailAttribute:
          example: email
          type: string
        enabled:
          example: true
          type: boolean
        groupToRoleMapping:
          additionalProperties:
            type: string
          type: object
        groupsAttribute:
          example: groups
          type: string
        name:
          example: saml-authmethod-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        nameAttribute:
          example: name
          type: string
        redirectURI:
          type: string
        roleErrorPolicy:
          example: default
          type: string
        samlProviderID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          type: string
        userAttribute:
          example: user
          type: string
      type: object
    samlproviderapp.NewProvider:
      properties:
        audience:
          type: string
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: SAML configuration
          maxLength: 255
          type: string
        issuer:
          type: string
        name:
          example: saml-provider-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        signedRequests:
          type: boolean
        signedRequestsCanonicalizer:
          type: string
        signedRequestsSignatureAlgorithm:
          type: string
        signedRequestsTLSCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ssoURL:
          example: http://example.com/saml
          type: string
      required:
      - audience
      - caCertificateID
      - issuer
      - name
      - ssoURL
      type: object
    samlproviderapp.Provider:
      properties:
        audience:
          type: string
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: SAML configuration
          maxLength: 255
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        issuer:
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        signedRequests:
          type: boolean
        signedRequestsCanonicalizer:
          type: string
        signedRequestsSignatureAlgorithm:
          type: string
        signedRequestsTLSCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ssoURL:
          example: http://example.com/saml
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    samlproviderapp.UpdateProvider:
      properties:
        audience:
          type: string
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: SAML configuration
          maxLength: 255
          type: string
        issuer:
          type: string
        name:
          example: saml-provider-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9'_-]1,255}$
          type: string
        signedRequests:
          type: boolean
        signedRequestsCanonicalizer:
          type: string
        signedRequestsSignatureAlgorithm:
          type: string
        signedRequestsTLSCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ssoURL:
          example: http://example.com/saml
          type: string
      type: object
    securityapp.AuthBlockConfig:
      properties:
        duration:
          example: 15m
          type: string
        limit:
          example: 5
          type: integer
        window:
          example: 5m
          type: string
      type: object
    securityapp.Security:
      properties:
        accountAuthBlockConfig:
          $ref: '#/components/schemas/securityapp.AuthBlockConfig'
        addressAuthBlockConfig:
          $ref: '#/components/schemas/securityapp.AuthBlockConfig'
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        ipFilterID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        userAuthBlockConfig:
          $ref: '#/components/schemas/securityapp.AuthBlockConfig'
        userMaxConcurrentSessions:
          example: 0
          type: integer
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    securityapp.UpdateAuthBlockConfig:
      properties:
        duration:
          example: 15m
          type: string
        limit:
          example: 5
          type: integer
        window:
          example: 5m
          type: string
      type: object
    securityapp.UpdateSecurity:
      properties:
        accountAuthBlockConfig:
          $ref: '#/components/schemas/securityapp.UpdateAuthBlockConfig'
        addressAuthBlockConfig:
          $ref: '#/components/schemas/securityapp.UpdateAuthBlockConfig'
        ipFilterID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          type: string
        userAuthBlockConfig:
          $ref: '#/components/schemas/securityapp.UpdateAuthBlockConfig'
        userMaxConcurrentSessions:
          example: 5
          type: integer
      type: object
    serverapp.NewServer:
      properties:
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Production proxy server
          maxLength: 255
          type: string
        host:
          example: localhost
          type: string
        hsmConnectionID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: server-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        port:
          example: "8080"
          type: string
        tlsCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      required:
      - caCertificateID
      - host
      - name
      - port
      - tlsCertificateID
      type: object
    serverapp.Server:
      properties:
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        configurationUpdated:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        configurationVersion:
          example: 1
          minimum: 1
          type: integer
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Production proxy server
          maxLength: 255
          type: string
        host:
          example: localhost
          type: string
        hsmConnectionID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: server-01
          maxLength: 255
          minLength: 1
          type: string
        port:
          example: "8080"
          type: string
        tlsCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    serverapp.UpdateServer:
      properties:
        caCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Production proxy server
          maxLength: 255
          type: string
        host:
          example: localhost
          type: string
        hsmConnectionID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: server-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        port:
          example: "8080"
          type: string
        tlsCertificateID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      type: object
    sftpdeploymentapp.Deployment:
      properties:
        clientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Deployment configuration
          maxLength: 255
          type: string
        ldapClientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapTunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        listenerID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        serverID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        startupMode:
          example: auto
          type: string
        tunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    sftpdeploymentapp.NewDeployment:
      properties:
        clientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Deployment configuration
          maxLength: 255
          type: string
        ldapClientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapTunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        serverID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        startupMode:
          enum:
          - auto
          - manual
          example: auto
          type: string
        tunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      required:
      - serverID
      - startupMode
      type: object
    sftpdeploymentapp.UpdateDeployment:
      properties:
        clientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Deployment configuration
          maxLength: 255
          type: string
        ldapClientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapTunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        startupMode:
          enum:
          - auto
          - manual
          example: auto
          type: string
        tunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      type: object
    sftpinboundnodeapp.InboundNode:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Node configuration
          maxLength: 255
          type: string
        hostPrivateKeyID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ipFilterID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        priority:
          example: 10
          maximum: 100000
          minimum: 1
          type: integer
        routeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ruleID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        sshConfiguration:
          $ref: '#/components/schemas/sftpinboundnodeapp.SSHConfiguration'
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    sftpinboundnodeapp.NewInboundNode:
      properties:
        description:
          example: Node configuration
          maxLength: 255
          type: string
        hostPrivateKeyID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ipFilterID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: sftp-inboundnode-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        priority:
          example: 10
          maximum: 100000
          minimum: 1
          type: integer
        ruleID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        sshConfiguration:
          $ref: '#/components/schemas/sftpinboundnodeapp.SSHConfiguration'
      required:
      - hostPrivateKeyID
      - ipFilterID
      - name
      - ruleID
      type: object
    sftpinboundnodeapp.SSHConfiguration:
      properties:
        banner:
          example: Welcome to UDMG Proxy SSH Server.
          type: string
        ciphers:
          example:
          - aes256-gcm@openssh.com
          - chacha20-poly1305@openssh.com
          items:
            enum:
            - aes128-gcm@openssh.com
            - aes256-gcm@openssh.com
            - chacha20-poly1305@openssh.com
            - aes128-ctr
            - aes192-ctr
            - aes256-ctr
            - aes128-cbc
            - 3des-cbc
            - arcfour
            - arcfour128
            - arcfour256
            type: string
          type: array
          uniqueItems: false
        keyExchanges:
          example:
          - curve25519-sha256
          - diffie-hellman-group14-sha256
          items:
            type: string
          type: array
          uniqueItems: false
        macs:
          example:
          - hmac-sha2-256
          - hmac-sha2-512
          items:
            type: string
          type: array
          uniqueItems: false
        serverVersion:
          example: SSH-2.0-UDMG-Proxy-1.0
          type: string
      type: object
    sftpinboundnodeapp.UpdateInboundNode:
      properties:
        description:
          example: Node configuration
          maxLength: 255
          type: string
        hostPrivateKeyID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ipFilterID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: sftp-inboundnode-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9'_-]1,255}$
          type: string
        priority:
          example: 10
          maximum: 100000
          minimum: 1
          type: integer
        ruleID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        sshConfiguration:
          $ref: '#/components/schemas/sftpinboundnodeapp.UpdateSSHConfiguration'
      type: object
    sftpinboundnodeapp.UpdateSSHConfiguration:
      properties:
        banner:
          example: Welcome to UDMG Proxy SSH Server.
          type: string
        ciphers:
          example:
          - aes256-gcm@openssh.com
          - chacha20-poly1305@openssh.com
          items:
            enum:
            - aes128-gcm@openssh.com
            - aes256-gcm@openssh.com
            - chacha20-poly1305@openssh.com
            - aes128-ctr
            - aes192-ctr
            - aes256-ctr
            - aes128-cbc
            - 3des-cbc
            - arcfour
            - arcfour128
            - arcfour256
            type: string
          type: array
          uniqueItems: false
        keyExchanges:
          example:
          - curve25519-sha256
          - diffie-hellman-group14-sha256
          items:
            type: string
          type: array
          uniqueItems: false
        macs:
          example:
          - hmac-sha2-256
          - hmac-sha2-512
          items:
            type: string
          type: array
          uniqueItems: false
        serverVersion:
          example: SSH-2.0-UDMG-Proxy-1.0
          type: string
      type: object
    sftplistenerapp.Listener:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        defaultOutboundNodeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Listener configuration
          maxLength: 255
          type: string
        healthcheckConfiguration:
          $ref: '#/components/schemas/gitlab_udmg_stonebranch_com_mft_udmg-proxy_internal_app_types_healthcheck.Configuration'
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          example: "2222"
          type: string
        routeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        routingMethod:
          example: standard
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    sftplistenerapp.NewListener:
      properties:
        defaultOutboundNodeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Listener configuration
          maxLength: 255
          type: string
        healthcheckConfiguration:
          $ref: '#/components/schemas/gitlab_udmg_stonebranch_com_mft_udmg-proxy_internal_app_types_healthcheck.Configuration'
        name:
          example: sftp-listener-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        port:
          example: "2222"
          type: string
        routeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        routingMethod:
          example: standard
          type: string
      required:
      - defaultOutboundNodeID
      - name
      - port
      - routeID
      - routingMethod
      type: object
    sftplistenerapp.UpdateListener:
      properties:
        defaultOutboundNodeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Listener configuration
          maxLength: 255
          type: string
        healthcheckConfiguration:
          $ref: '#/components/schemas/gitlab_udmg_stonebranch_com_mft_udmg-proxy_internal_app_types_healthcheck.UpdateConfiguration'
        name:
          example: sftp-listener-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9'_-]1,255}$
          type: string
        port:
          example: "2222"
          type: string
        routeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        routingMethod:
          enum:
          - standard
          example: standard
          type: string
      type: object
    sftpoutboundnodeapp.NewOutboundNode:
      properties:
        description:
          example: Node configuration
          maxLength: 255
          type: string
        hostPublicKeyID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        hostname:
          example: localhost
          type: string
        name:
          example: sftp-outboundnode-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        port:
          example: "2222"
          type: string
        sshConfiguration:
          $ref: '#/components/schemas/sftpoutboundnodeapp.SSHConfiguration'
      required:
      - hostPublicKeyID
      - hostname
      - name
      - port
      type: object
    sftpoutboundnodeapp.OutboundNode:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Node configuration
          maxLength: 255
          type: string
        hostPublicKeyID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        hostname:
          example: localhost
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          example: "2222"
          type: string
        routeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        sshConfiguration:
          $ref: '#/components/schemas/sftpoutboundnodeapp.SSHConfiguration'
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    sftpoutboundnodeapp.SSHConfiguration:
      properties:
        ciphers:
          example:
          - aes256-gcm@openssh.com
          - chacha20-poly1305@openssh.com
          items:
            enum:
            - aes128-gcm@openssh.com
            - aes256-gcm@openssh.com
            - chacha20-poly1305@openssh.com
            - aes128-ctr
            - aes192-ctr
            - aes256-ctr
            - aes128-cbc
            - 3des-cbc
            - arcfour
            - arcfour128
            - arcfour256
            type: string
          type: array
          uniqueItems: false
        clientVersion:
          example: SSH-2.0-UDMG-Proxy-1.0
          type: string
        keyExchanges:
          example:
          - curve25519-sha256
          - diffie-hellman-group14-sha256
          items:
            type: string
          type: array
          uniqueItems: false
        macs:
          example:
          - hmac-sha2-256
          - hmac-sha2-512
          items:
            type: string
          type: array
          uniqueItems: false
      type: object
    sftpoutboundnodeapp.UpdateOutboundNode:
      properties:
        description:
          example: Node configuration
          maxLength: 255
          type: string
        hostPublicKeyID:
          type: string
        hostname:
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          type: string
        sshConfiguration:
          $ref: '#/components/schemas/sftpoutboundnodeapp.UpdateSSHConfiguration'
      type: object
    sftpoutboundnodeapp.UpdateSSHConfiguration:
      properties:
        ciphers:
          example:
          - aes256-gcm@openssh.com
          - chacha20-poly1305@openssh.com
          items:
            type: string
          type: array
          uniqueItems: false
        clientVersion:
          example: SSH-2.0-UDMG-Proxy-1.0
          type: string
        keyExchanges:
          example:
          - curve25519-sha256
          - diffie-hellman-group14-sha256
          items:
            type: string
          type: array
          uniqueItems: false
        macs:
          example:
          - hmac-sha2-256
          - hmac-sha2-512
          items:
            type: string
          type: array
          uniqueItems: false
      type: object
    sftprouteapp.NewRoute:
      properties:
        description:
          example: Route configuration
          maxLength: 255
          type: string
        name:
          example: sftp-route-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
      required:
      - name
      type: object
    sftprouteapp.Route:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Route configuration
          maxLength: 255
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    sftprouteapp.UpdateRoute:
      properties:
        description:
          example: Route configuration
          maxLength: 255
          type: string
        name:
          example: sftp-route-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9'_-]1,255}$
          type: string
      type: object
    sftpruleapp.NewRule:
      properties:
        accountRepositoryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Rule configuration
          maxLength: 255
          type: string
        icapScannerID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        inboundAuthenticationSource:
          enum:
          - none
          - account_repository
          - ldap
          example: account_repository
          type: string
        ldapConnectionID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapQueryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: sftp-rule-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        outboundCredentialsSource:
          enum:
          - passthrough
          - dedicated
          example: passthrough
          type: string
        password:
          example: johnpassword
          type: string
        privateKeyID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        sshAuthenticationMethod:
          enum:
          - password
          - public_key
          - password_or_public_key
          - password_and_public_key
          example: password
          type: string
        username:
          example: johndoe
          type: string
      required:
      - inboundAuthenticationSource
      - name
      - outboundCredentialsSource
      - sshAuthenticationMethod
      type: object
    sftpruleapp.Rule:
      properties:
        accountRepositoryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Rule configuration
          maxLength: 255
          type: string
        icapScannerID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        inboundAuthenticationSource:
          example: account_repository
          type: string
        ldapConnectionID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapQueryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        outboundCredentialsSource:
          example: dedicated
          type: string
        privateKeyID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        sshAuthenticationMethod:
          example: password
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        username:
          example: johndoe
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    sftpruleapp.UpdateRule:
      properties:
        accountRepositoryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Rule configuration
          maxLength: 255
          type: string
        icapScannerID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        inboundAuthenticationSource:
          enum:
          - none
          - account_repository
          - ldap
          example: account_repository
          type: string
        ldapConnectionID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapQueryID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: sftp-rule-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9'_-]{3,255}$
          type: string
        outboundCredentialsSource:
          enum:
          - passthrough
          - dedicated
          example: passthrough
          type: string
        password:
          example: johnpassword
          type: string
        privateKeyID:
          type: string
        sshAuthenticationMethod:
          enum:
          - password
          - public_key
          - password_or_public_key
          - password_and_public_key
          example: password
          type: string
        username:
          example: johndoe
          type: string
      type: object
    tcpdeploymentapp.Deployment:
      properties:
        clientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Deployment configuration
          maxLength: 255
          type: string
        listenerID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        serverID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        startupMode:
          example: auto
          type: string
        tunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    tcpdeploymentapp.NewDeployment:
      properties:
        clientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Deployment configuration
          maxLength: 255
          type: string
        serverID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        startupMode:
          enum:
          - auto
          - manual
          example: auto
          type: string
        tunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      required:
      - serverID
      - startupMode
      type: object
    tcpdeploymentapp.UpdateDeployment:
      properties:
        clientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        description:
          example: Deployment configuration
          maxLength: 255
          type: string
        startupMode:
          enum:
          - auto
          - manual
          example: auto
          type: string
        tunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      type: object
    tcplistenerapp.Listener:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Listener configuration
          maxLength: 255
          type: string
        healthcheckConfiguration:
          $ref: '#/components/schemas/gitlab_udmg_stonebranch_com_mft_udmg-proxy_internal_app_types_healthcheck.Configuration'
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ipFilterID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        outboundHostname:
          example: backend.example.com
          maxLength: 255
          minLength: 1
          type: string
        outboundPort:
          example: "22"
          type: string
        port:
          example: "8080"
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    tcplistenerapp.NewListener:
      properties:
        description:
          example: Listener configuration
          maxLength: 255
          type: string
        healthcheckConfiguration:
          $ref: '#/components/schemas/gitlab_udmg_stonebranch_com_mft_udmg-proxy_internal_app_types_healthcheck.Configuration'
        ipFilterID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: tcp-listener-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        outboundHostname:
          example: backend.example.com
          maxLength: 255
          minLength: 1
          type: string
        outboundPort:
          example: "22"
          type: string
        port:
          example: "8080"
          type: string
      required:
      - ipFilterID
      - name
      - outboundHostname
      - outboundPort
      - port
      type: object
    tcplistenerapp.UpdateListener:
      properties:
        description:
          example: Listener configuration
          maxLength: 255
          type: string
        healthcheckConfiguration:
          $ref: '#/components/schemas/gitlab_udmg_stonebranch_com_mft_udmg-proxy_internal_app_types_healthcheck.UpdateConfiguration'
        ipFilterID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: tcp-listener-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        outboundHostname:
          example: backend.example.com
          maxLength: 255
          minLength: 1
          type: string
        outboundPort:
          example: "22"
          type: string
        port:
          example: "8080"
          type: string
      type: object
    tlscertapp.Certificate:
      properties:
        certificate:
          example: |-
            -----BEGIN CERTIFICATE-----
            ...
            -----END CERTIFICATE-----
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: TLS certificate for HTTPS
          maxLength: 255
          type: string
        enabled:
          example: true
          type: boolean
        hsmID:
          example: "0x7081370b"
          type: string
        hsmLabel:
          example: cert-label
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: tlscert-01
          maxLength: 255
          minLength: 1
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    tlscertapp.NewCertificate:
      properties:
        certificate:
          example: |-
            -----BEGIN CERTIFICATE-----
            ...
            -----END CERTIFICATE-----
          format: pem
          type: string
        description:
          example: TLS certificate for HTTPS
          maxLength: 255
          type: string
        enabled:
          example: true
          type: boolean
        hsmID:
          example: "0x7081370b"
          format: hex
          type: string
        hsmLabel:
          example: cert-label
          maxLength: 255
          type: string
        key:
          example: |-
            -----BEGIN RSA PRIVATE KEY-----
            ...
            -----END RSA PRIVATE KEY-----
          format: pem
          type: string
        name:
          example: tlscert-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
      required:
      - name
      type: object
    tlscertapp.UpdateCertificate:
      properties:
        certificate:
          example: |-
            -----BEGIN CERTIFICATE-----
            ...
            -----END CERTIFICATE-----
          format: pem
          type: string
        description:
          example: TLS certificate for HTTPS
          maxLength: 255
          type: string
        enabled:
          example: true
          type: boolean
        hsmID:
          example: "0x7081370b"
          format: hex
          type: string
        hsmLabel:
          example: cert-label
          maxLength: 255
          type: string
        key:
          example: |-
            -----BEGIN RSA PRIVATE KEY-----
            ...
            -----END RSA PRIVATE KEY-----
          format: pem
          type: string
        name:
          example: tlscert-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
      type: object
    tunnelapp.NewTunnel:
      properties:
        description:
          example: Production SSH tunnel
          maxLength: 255
          type: string
        hostPrivateKeyID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: tunnel-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        port:
          example: "2222"
          type: string
      required:
      - hostPrivateKeyID
      - name
      - port
      type: object
    tunnelapp.Tunnel:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Production SSH tunnel
          maxLength: 255
          type: string
        hostPrivateKeyID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: tunnel-01
          maxLength: 255
          minLength: 1
          type: string
        port:
          example: "2222"
          type: string
        serverID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    tunnelapp.UpdateTunnel:
      properties:
        description:
          example: Production SSH tunnel
          maxLength: 255
          type: string
        hostPrivateKeyID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          example: tunnel-01
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]{1,255}$
          type: string
        port:
          example: "2222"
          type: string
      type: object
    userapp.NewUser:
      properties:
        email:
          example: john.doe@example.com
          format: email
          type: string
        name:
          example: John Doe
          maxLength: 255
          minLength: 1
          type: string
        password:
          example: SecureP@ssw0rd123
          format: password
          maxLength: 72
          minLength: 8
          type: string
        roles:
          example:
          - admin
          items:
            enum:
            - admin
            - readonly
            type: string
          type: array
          uniqueItems: false
        username:
          example: john.doe
          maxLength: 255
          minLength: 1
          pattern: ^[a-zA-Z0-9_.@-]{1,255}$
          type: string
      required:
      - name
      - password
      - roles
      - username
      type: object
    userapp.UpdateUser:
      properties:
        email:
          example: john.doe@example.com
          format: email
          type: string
        name:
          example: John Doe
          maxLength: 255
          minLength: 1
          type: string
        password:
          example: NewSecureP@ssw0rd123
          format: password
          maxLength: 72
          minLength: 8
          type: string
      type: object
    userapp.UpdateUserRole:
      properties:
        roles:
          example:
          - admin
          items:
            enum:
            - admin
            - readonly
            type: string
          type: array
          uniqueItems: false
      required:
      - roles
      type: object
    userapp.User:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        email:
          example: john.doe@example.com
          format: email
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        loginMetadata:
          example: '{}'
          type: string
        loginMethod:
          enum:
          - standard
          - ldap
          - saml
          - oidc
          example: standard
          type: string
        name:
          example: John Doe
          type: string
        roles:
          example:
          - admin
          items:
            enum:
            - admin
            - readonly
            type: string
          type: array
          uniqueItems: false
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        username:
          example: john.doe
          maxLength: 255
          minLength: 1
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    vkmsusageapp.EncryptionKeyUsage:
      properties:
        dekAlgorithm:
          type: string
        dekCreatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        dekDescription:
          type: string
        dekID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        dekName:
          type: string
        dekScope:
          type: string
        dekStatus:
          type: string
        dekUpdatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        usageCreatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        usageID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        usageName:
          type: string
        usageTable:
          type: string
        usageUpdatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        usageVersion:
          type: integer
      type: object
    vsftpdeploymentapp.Deployment:
      properties:
        clientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        clientName:
          type: string
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Deployment configuration
          maxLength: 255
          type: string
        ldapClientID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapClientName:
          type: string
        ldapTunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ldapTunnelName:
          type: string
        listenerID:
          description: NOT SURE IF THIS FIELD IS NECESSARY
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        serverID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        serverName:
          type: string
        startupMode:
          example: auto
          type: string
        tunnelID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        tunnelName:
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    vsftpinboundnodeapp.InboundNode:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        description:
          example: Node configuration
          maxLength: 255
          type: string
        hostPrivateKeyID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        hostPrivateKeyName:
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ipFilterID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ipFilterName:
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        priority:
          example: 10
          maximum: 100000
          minimum: 1
          type: integer
        routeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ruleID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        ruleName:
          type: string
        sshConfiguration:
          $ref: '#/components/schemas/vsftpinboundnodeapp.SSHConfiguration'
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
    vsftpinboundnodeapp.SSHConfiguration:
      properties:
        banner:
          example: Welcome to UDMG Proxy SSH Server.
          type: string
        ciphers:
          example:
          - aes256-gcm@openssh.com
          - chacha20-poly1305@openssh.com
          items:
            enum:
            - aes128-gcm@openssh.com
            - aes256-gcm@openssh.com
            - chacha20-poly1305@openssh.com
            - aes128-ctr
            - aes192-ctr
            - aes256-ctr
            - aes128-cbc
            - 3des-cbc
            - arcfour
            - arcfour128
            - arcfour256
            type: string
          type: array
          uniqueItems: false
        keyExchanges:
          example:
          - curve25519-sha256
          - diffie-hellman-group14-sha256
          items:
            type: string
          type: array
          uniqueItems: false
        macs:
          example:
          - hmac-sha2-256
          - hmac-sha2-512
          items:
            type: string
          type: array
          uniqueItems: false
        serverVersion:
          example: SSH-2.0-UDMG-Proxy-1.0
          type: string
      type: object
    vsftplistenerapp.Listener:
      properties:
        createdAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        defaultOutboundNodeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        defaultOutboundNodeName:
          type: string
        description:
          example: Listener configuration
          maxLength: 255
          type: string
        id:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        name:
          maxLength: 255
          minLength: 1
          type: string
        port:
          example: "2222"
          type: string
        routeID:
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
        routeName:
          type: string
        routingMethod:
          example: standard
          type: string
        updatedAt:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
        version:
          example: 1
          minimum: 1
          type: integer
      type: object
  securitySchemes:
    Bearer:
      bearerFormat: JWT
      scheme: bearer
      type: http
externalDocs:
  description: Stonebranch Documentation
  url: https://docs.stonebranch.com
info:
  description: UDMG Secure Proxy Manager is used to manage UDMG Proxy.
  title: UDMG Secure Proxy Manager API
  version: '3.4.0'
openapi: 3.1.0
paths:
  /v1/account-repositories:
    get:
      description: Retrieves all the account repositories.
      operationId: queryAccountRepository
      parameters:
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-accountrepositoryapp_AccountRepository'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the account repositories.
      tags:
      - account_repository
    post:
      description: Create a new account repository.
      operationId: createAccountRepository
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/accountrepositoryapp.NewAccountRepository'
              description: New account repository
              summary: account
        description: New account repository
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/accountrepositoryapp.AccountRepository'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new account repository.
      tags:
      - account_repository
  /v1/account-repositories/{account_repository_id}:
    delete:
      description: Delete an existing account repository.
      operationId: deleteAccountRepository
      parameters:
      - description: Account Repository ID
        in: path
        name: account_repository_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing account repository.
      tags:
      - account_repository
    get:
      description: Retrieves an existing account repository given its ID.
      operationId: getAccountRepositoryByID
      parameters:
      - description: Account Repository ID
        in: path
        name: account_repository_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/accountrepositoryapp.AccountRepository'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing account repository given its ID.
      tags:
      - account_repository
    patch:
      description: Update an existing account repository.
      operationId: updateAccountRepository
      parameters:
      - description: Account Repository ID
        in: path
        name: account_repository_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/accountrepositoryapp.UpdateAccountRepository'
              description: UpdatedAt account repository
              summary: account
        description: UpdatedAt account repository
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/accountrepositoryapp.AccountRepository'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing account repository.
      tags:
      - account_repository
  /v1/account-repositories/{account_repository_id}/accounts:
    get:
      description: Retrieves all the accounts.
      operationId: queryAccount
      parameters:
      - description: Account Repository ID
        in: path
        name: account_repository_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with an exact match for the username.
        in: query
        name: username
        schema:
          description: Filter records with an exact match for the username.
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records with a partial match for the username.
        in: query
        name: username_contains
        schema:
          description: Filter records with a partial match for the username.
          type: string
      - description: Filter records based on whether they are enabled.
        in: query
        name: enabled
        schema:
          description: Filter records based on whether they are enabled.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-accountapp_Account'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the accounts.
      tags:
      - account
    post:
      description: Create a new account.
      operationId: createAccount
      parameters:
      - description: Account Repository ID
        in: path
        name: account_repository_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/accountapp.NewAccount'
              description: New account
              summary: account
        description: New account
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/accountapp.Account'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new account.
      tags:
      - account
  /v1/account-repositories/{account_repository_id}/accounts/{account_id}:
    delete:
      description: Delete an existing account.
      operationId: deleteAccount
      parameters:
      - description: Account Repository ID
        in: path
        name: account_repository_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Account ID
        in: path
        name: account_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/accountapp.UpdateAccount'
              description: UpdatedAt account
              summary: account
        description: UpdatedAt account
        required: true
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/accountapp.Account'
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing account.
      tags:
      - account
    get:
      description: Retrieves an existing account given its ID.
      operationId: getAccountByID
      parameters:
      - description: Account Repository ID
        in: path
        name: account_repository_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Account ID
        in: path
        name: account_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/accountapp.Account'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing account given its ID.
      tags:
      - account
    patch:
      description: Update an existing account.
      operationId: updateAccount
      parameters:
      - description: Account Repository ID
        in: path
        name: account_repository_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Account ID
        in: path
        name: account_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/accountapp.UpdateAccount'
              description: UpdatedAt account
              summary: account
        description: UpdatedAt account
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/accountapp.Account'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing account.
      tags:
      - account
  /v1/auth/exchange:
    post:
      description: Exchanges an exchange token for a refresh token and an access token.
      operationId: exchangeToken
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/authapp.TokenResponse'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Exchanges an exchange token for a refresh token and an access token.
      tags:
      - auth
  /v1/auth/oidc/{provider}/callback:
    post:
      description: OIDC Callback.
      operationId: callbackOIDC
      parameters:
      - description: Provider name
        in: path
        name: provider
        required: true
        schema:
          type: string
      responses:
        "302":
          description: Found
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      summary: OIDC Callback.
      tags:
      - auth
  /v1/auth/refresh:
    post:
      description: Refresh.
      operationId: refreshToken
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/authapp.TokenResponse'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Refresh.
      tags:
      - auth
  /v1/auth/saml/{provider}/callback:
    post:
      description: SAML Callback.
      operationId: callbackSAML
      parameters:
      - description: Provider name
        in: path
        name: provider
        required: true
        schema:
          type: string
      responses:
        "302":
          description: Found
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      summary: SAML Callback.
      tags:
      - auth
  /v1/certificates/ca:
    get:
      description: Retrieves all the certificates of a certificate repository.
      operationId: queryCACertificate
      parameters:
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records based on whether they are enabled.
        in: query
        name: enabled
        schema:
          description: Filter records based on whether they are enabled.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-cacertapp_Certificate'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the certificates of a certificate repository.
      tags:
      - ca_certificate
    post:
      description: Create a new certificate.
      operationId: createCACertificate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/cacertapp.NewCertificate'
              description: New certificate
              summary: certificate
        description: New certificate
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cacertapp.Certificate'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new certificate.
      tags:
      - ca_certificate
  /v1/certificates/ca/{certificate_id}:
    delete:
      description: Delete an existing certificate.
      operationId: deleteCACertificate
      parameters:
      - description: Certificate ID
        in: path
        name: certificate_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing certificate.
      tags:
      - ca_certificate
    get:
      description: Retrieves an existing certificate given its ID.
      operationId: getCACertificateByID
      parameters:
      - description: Certificate ID
        in: path
        name: certificate_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cacertapp.Certificate'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing certificate given its ID.
      tags:
      - ca_certificate
    patch:
      description: Update an existing certificate.
      operationId: updateCACertificate
      parameters:
      - description: Certificate ID
        in: path
        name: certificate_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/cacertapp.UpdateCertificate'
              description: UpdatedAt certificate
              summary: certificate
        description: UpdatedAt certificate
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cacertapp.Certificate'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing certificate.
      tags:
      - ca_certificate
  /v1/certificates/tls:
    get:
      description: Retrieves all the certificates of a certificate repository.
      operationId: queryTLSCertificate
      parameters:
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - description: Filter records based on whether they are enabled.
        in: query
        name: enabled
        schema:
          description: Filter records based on whether they are enabled.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-tlscertapp_Certificate'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the certificates of a certificate repository.
      tags:
      - tls_certificate
    post:
      description: Create a new certificate.
      operationId: createTLSCertificate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/tlscertapp.NewCertificate'
              description: New certificate
              summary: certificate
        description: New certificate
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tlscertapp.Certificate'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new certificate.
      tags:
      - tls_certificate
  /v1/certificates/tls/{certificate_id}:
    delete:
      description: Delete an existing certificate.
      operationId: deleteTLSCertificate
      parameters:
      - description: Certificate ID
        in: path
        name: certificate_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing certificate.
      tags:
      - tls_certificate
    get:
      description: Retrieves an existing certificate given its ID.
      operationId: getTLSCertificateByID
      parameters:
      - description: Certificate ID
        in: path
        name: certificate_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tlscertapp.Certificate'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing certificate given its ID.
      tags:
      - tls_certificate
    patch:
      description: Update an existing certificate.
      operationId: updateTLSCertificate
      parameters:
      - description: Certificate ID
        in: path
        name: certificate_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/tlscertapp.UpdateCertificate'
              description: UpdatedAt certificate
              summary: certificate
        description: UpdatedAt certificate
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tlscertapp.Certificate'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing certificate.
      tags:
      - tls_certificate
  /v1/hsm/connections:
    get:
      description: Retrieves all the HSM connections.
      operationId: queryHSMConnection
      parameters:
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-hsmconnectionapp_HSMConnection'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the HSM connections.
      tags:
      - hsm-connection
    post:
      description: Create a new HSM connection.
      operationId: createHSMConnection
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/hsmconnectionapp.NewHSMConnection'
              description: New connection
              summary: connection
        description: New connection
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/hsmconnectionapp.HSMConnection'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new HSM connection.
      tags:
      - hsm-connection
  /v1/hsm/connections/{connection_id}:
    delete:
      description: Delete an existing HSM connection.
      operationId: deleteHSMConnection
      parameters:
      - description: HSM Connection ID
        in: path
        name: connection_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing HSM connection.
      tags:
      - hsm-connection
    get:
      description: Retrieves an existing HSM connection given its ID.
      operationId: getHSMConnectionByID
      parameters:
      - description: HSM Connection ID
        in: path
        name: connection_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/hsmconnectionapp.HSMConnection'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing HSM connection given its ID.
      tags:
      - hsm-connection
    patch:
      description: Update an existing HSM connection.
      operationId: updateHSMConnection
      parameters:
      - description: HSM Connection ID
        in: path
        name: connection_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/hsmconnectionapp.UpdateHSMConnection'
              description: Updated HSM connection
              summary: connection
        description: Updated HSM connection
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/hsmconnectionapp.HSMConnection'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing HSM connection.
      tags:
      - hsm-connection
  /v1/icap/scanner/{scanner_id}:
    delete:
      description: Delete an existing ICAP scanner.
      operationId: deleteICAPScanner
      parameters:
      - description: ICAP scanner ID
        in: path
        name: scanner_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing ICAP scanner.
      tags:
      - icap-scanner
  /v1/icap/scanners:
    get:
      description: Retrieves all the ICAP scanners.
      operationId: queryICAPScanner
      parameters:
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-icapscannerapp_Scanner'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the ICAP scanners.
      tags:
      - icap-scanner
    post:
      description: Create a new ICAP scanner.
      operationId: createICAPScanner
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/icapscannerapp.NewScanner'
              description: New scanner
              summary: scanner
        description: New scanner
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/icapscannerapp.Scanner'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new ICAP scanner.
      tags:
      - icap-scanner
  /v1/icap/scanners/{scanner_id}:
    get:
      description: Retrieves an existing ICAP scanner given its ID.
      operationId: getICAPScannerByID
      parameters:
      - description: ICAP scanner ID
        in: path
        name: scanner_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/icapscannerapp.Scanner'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing ICAP scanner given its ID.
      tags:
      - icap-scanner
    patch:
      description: Update an existing ICAP scanner.
      operationId: updateICAPScanner
      parameters:
      - description: ICAP scanner ID
        in: path
        name: scanner_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/icapscannerapp.UpdateScanner'
              description: Updated ICAP scanner
              summary: scanner
        description: Updated ICAP scanner
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/icapscannerapp.Scanner'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing ICAP scanner.
      tags:
      - icap-scanner
  /v1/icap/scanners/{scanner_id}/test:
    post:
      description: Perform a connection test to an ICAP server.
      operationId: testICAPScanner
      parameters:
      - description: ICAP scanner ID
        in: path
        name: scanner_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/icapscannerapp.Test'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Perform a connection test to an ICAP server.
      tags:
      - icap-scanner
  /v1/ip-filters:
    get:
      description: Retrieves all the IP filters.
      operationId: queryIPFilter
      parameters:
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-ipfilterapp_Filter'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the IP filters.
      tags:
      - ip_filter
    post:
      description: Create a new IP filter.
      operationId: createIPFilter
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ipfilterapp.NewFilter'
              description: New IP filter
              summary: ip_filter
        description: New IP filter
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ipfilterapp.Filter'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new IP filter.
      tags:
      - ip_filter
  /v1/ip-filters/{ip_filter_id}:
    delete:
      description: Delete an existing IP filter.
      operationId: deleteIPFilter
      parameters:
      - description: IP filter ID
        in: path
        name: ip_filter_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing IP filter.
      tags:
      - ip_filter
    get:
      description: Retrieves an existing IP filter given its ID.
      operationId: getIPFilterByID
      parameters:
      - description: IP filter ID
        in: path
        name: ip_filter_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ipfilterapp.Filter'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing IP filter given its ID.
      tags:
      - ip_filter
    patch:
      description: Update an existing IP filter.
      operationId: updateIPFilter
      parameters:
      - description: IP filter ID
        in: path
        name: ip_filter_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ipfilterapp.UpdateFilter'
              description: Updated IP filter
              summary: ip_filter
        description: Updated IP filter
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ipfilterapp.Filter'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing IP filter.
      tags:
      - ip_filter
  /v1/ip-filters/{ip_filter_id}/rules:
    get:
      description: Retrieves all the IP rules.
      operationId: queryIPRule
      parameters:
      - description: IP filter ID
        in: path
        name: ip_filter_id
        required: true
        schema:
          format: uuid
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with an exact match for the address.
        in: query
        name: address
        schema:
          description: Filter records with an exact match for the address.
          type: string
      - description: Filter records with a partial match for the address.
        in: query
        name: address_contains
        schema:
          description: Filter records with a partial match for the address.
          type: string
      - description: Filter records based on the action.
        in: query
        name: action
        schema:
          description: Filter records based on the action.
          enum:
          - allow
          - block
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-ipruleapp_Rule'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the IP rules.
      tags:
      - ip_rule
    post:
      description: Create a new IP rule.
      operationId: createIPRule
      parameters:
      - description: IP filter ID
        in: path
        name: ip_filter_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ipruleapp.NewRule'
              description: New IP rule
              summary: ip_rule
        description: New IP rule
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ipruleapp.Rule'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new IP rule.
      tags:
      - ip_rule
  /v1/ip-filters/{ip_filter_id}/rules/{ip_rule_id}:
    delete:
      description: Delete an existing IP rule.
      operationId: deleteIPRule
      parameters:
      - description: IP filter ID
        in: path
        name: ip_filter_id
        required: true
        schema:
          format: uuid
          type: string
      - description: IP rule ID
        in: path
        name: ip_rule_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing IP rule.
      tags:
      - ip_rule
    get:
      description: Retrieves an existing IP rule given its ID.
      operationId: getIPRuleByID
      parameters:
      - description: IP filter ID
        in: path
        name: ip_filter_id
        required: true
        schema:
          format: uuid
          type: string
      - description: IP rule ID
        in: path
        name: ip_rule_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ipruleapp.Rule'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing IP rule given its ID.
      tags:
      - ip_rule
    patch:
      description: Update an existing IP rule.
      operationId: updateIPRule
      parameters:
      - description: IP filter ID
        in: path
        name: ip_filter_id
        required: true
        schema:
          format: uuid
          type: string
      - description: IP rule ID
        in: path
        name: ip_rule_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ipruleapp.UpdateRule'
              description: Updated IP rule
              summary: ip_rule
        description: Updated IP rule
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ipruleapp.Rule'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing IP rule.
      tags:
      - ip_rule
  /v1/ip-filters/{ip_filter_id}/test:
    post:
      description: Perform a IP filtering test.
      operationId: testIPFilter
      parameters:
      - description: IP filter ID
        in: path
        name: ip_filter_id
        required: true
        schema:
          format: uuid
          type: string
      - description: IP address
        in: query
        name: ip
        required: true
        schema:
          format: ip
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ipfilterapp.TestResult'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Perform a IP filtering test.
      tags:
      - ip_filter
  /v1/keys/private:
    get:
      description: Retrieves all the private keys of a private key repository.
      operationId: queryPrivateKey
      parameters:
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          type: string
      - description: Filter records based on whether they are enabled.
        in: query
        name: enabled
        schema:
          description: Filter records based on whether they are enabled.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-privkeyapp_Key'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the private keys of a private key repository.
      tags:
      - private_key
    post:
      description: Create a new private key.
      operationId: createPrivateKey
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/privkeyapp.NewKey'
              description: New private key
              summary: key
        description: New private key
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/privkeyapp.Key'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new private key.
      tags:
      - private_key
  /v1/keys/private/{key_id}:
    delete:
      description: Delete an existing private key.
      operationId: deletePrivateKey
      parameters:
      - description: Private key ID
        in: path
        name: key_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing private key.
      tags:
      - private_key
    get:
      description: Retrieves an existing private key given its ID.
      operationId: getPrivateKeyByID
      parameters:
      - description: Private key ID
        in: path
        name: key_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/privkeyapp.Key'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing private key given its ID.
      tags:
      - private_key
    patch:
      description: Update an existing private key.
      operationId: updatePrivateKey
      parameters:
      - description: Private key ID
        in: path
        name: key_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/privkeyapp.UpdateKey'
              description: UpdatedAt private key
              summary: key
        description: UpdatedAt private key
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/privkeyapp.Key'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing private key.
      tags:
      - private_key
  /v1/keys/public:
    get:
      description: Retrieves all the public keys of a public key repository.
      operationId: queryPublicKey
      parameters:
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          type: string
      - description: Filter records based on whether they are enabled.
        in: query
        name: enabled
        schema:
          description: Filter records based on whether they are enabled.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-pubkeyapp_Key'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the public keys of a public key repository.
      tags:
      - public_key
    post:
      description: Create a new public key.
      operationId: createPublicKey
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/pubkeyapp.NewKey'
              description: New public key
              summary: key
        description: New public key
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pubkeyapp.Key'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new public key.
      tags:
      - public_key
  /v1/keys/public/{key_id}:
    delete:
      description: Delete an existing public key.
      operationId: deletePublicKey
      parameters:
      - description: Public key ID
        in: path
        name: key_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing public key.
      tags:
      - public_key
    get:
      description: Retrieves an existing public key given its ID.
      operationId: getPublicKeyByID
      parameters:
      - description: Public key ID
        in: path
        name: key_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pubkeyapp.Key'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing public key given its ID.
      tags:
      - public_key
    patch:
      description: Update an existing public key.
      operationId: updatePublicKey
      parameters:
      - description: Public key ID
        in: path
        name: key_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/pubkeyapp.UpdateKey'
              description: UpdatedAt public key
              summary: key
        description: UpdatedAt public key
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pubkeyapp.Key'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing public key.
      tags:
      - public_key
  /v1/ldap/connections:
    get:
      description: Retrieves all the LDAP connections.
      operationId: queryLDAPConnection
      parameters:
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-ldapconnectionapp_LDAPConnection'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the LDAP connections.
      tags:
      - ldap-connection
    post:
      description: Create a new LDAP connection.
      operationId: createLDAPConnection
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ldapconnectionapp.NewLDAPConnection'
              description: New connection
              summary: connection
        description: New connection
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ldapconnectionapp.LDAPConnection'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new LDAP connection.
      tags:
      - ldap-connection
  /v1/ldap/connections/{connection_id}:
    delete:
      description: Delete an existing LDAP connection.
      operationId: deleteLDAPConnection
      parameters:
      - description: LDAP Connection ID
        in: path
        name: connection_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing LDAP connection.
      tags:
      - ldap-connection
    get:
      description: Retrieves an existing LDAP connection given its ID.
      operationId: getLDAPConnectionByID
      parameters:
      - description: LDAP Connection ID
        in: path
        name: connection_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ldapconnectionapp.LDAPConnection'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing LDAP connection given its ID.
      tags:
      - ldap-connection
    patch:
      description: Update an existing LDAP connection.
      operationId: updateLDAPConnection
      parameters:
      - description: LDAP Connection ID
        in: path
        name: connection_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ldapconnectionapp.UpdateLDAPConnection'
              description: UpdatedAt LDAP connection
              summary: connection
        description: UpdatedAt LDAP connection
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ldapconnectionapp.LDAPConnection'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing LDAP connection.
      tags:
      - ldap-connection
  /v1/ldap/connections/{connection_id}/test:
    post:
      description: Perform a connection test to an LDAP server.
      parameters:
      - description: LDAP Connection ID
        in: path
        name: connection_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ldaptestapp.TestResult'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Perform a connection test to an LDAP server.
      tags:
      - ldap-connection
  /v1/ldap/queries:
    get:
      description: Retrieves all the LDAP querys.
      operationId: queryLDAPQuery
      parameters:
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-ldapqueryapp_LDAPQuery'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the LDAP querys.
      tags:
      - ldap-query
    post:
      description: Create a new LDAP query.
      operationId: createLDAPQuery
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ldapqueryapp.NewLDAPQuery'
              description: New query
              summary: query
        description: New query
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ldapqueryapp.LDAPQuery'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new LDAP query.
      tags:
      - ldap-query
  /v1/ldap/queries/{query_id}:
    delete:
      description: Delete an existing LDAP query.
      operationId: deleteLDAPQuery
      parameters:
      - description: LDAP Query ID
        in: path
        name: query_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing LDAP query.
      tags:
      - ldap-query
    get:
      description: Retrieves an existing LDAP query given its ID.
      operationId: getLDAPQueryByID
      parameters:
      - description: LDAP Query ID
        in: path
        name: query_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ldapqueryapp.LDAPQuery'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing LDAP query given its ID.
      tags:
      - ldap-query
    patch:
      description: Update an existing LDAP query.
      operationId: updateLDAPQuery
      parameters:
      - description: LDAP Query ID
        in: path
        name: query_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ldapqueryapp.UpdateLDAPQuery'
              description: UpdatedAt LDAP query
              summary: query
        description: UpdatedAt LDAP query
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ldapqueryapp.LDAPQuery'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing LDAP query.
      tags:
      - ldap-query
  /v1/ldap/queries/{query_id}/test:
    post:
      description: Perform a credentials test to an LDAP server.
      parameters:
      - description: LDAP Connection ID
        in: query
        name: ldap_connection_id
        required: true
        schema:
          format: uuid
          type: string
      - description: LDAP Query ID
        in: path
        name: query_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ldaptestapp.TestResult'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Perform a credentials test to an LDAP server.
      tags:
      - ldap-query
  /v1/listeners/forward-proxy:
    get:
      description: Retrieves all the forward proxies.
      operationId: queryForwardProxy
      parameters:
      - in: query
        name: updated_from
        schema:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: updated_to
        schema:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: name
        schema:
          maxLength: 255
          minLength: 1
          type: string
      - in: query
        name: name_contains
        schema:
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - in: query
        name: id
        schema:
          items:
            format: uuid
            type: string
          type: array
          uniqueItems: false
      - in: query
        name: created_from
        schema:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: created_to
        schema:
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-fwproxylistenerapp_ForwardProxy'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the forward proxies.
      tags:
      - forward-proxy
    post:
      description: Create a new forward proxy.
      operationId: createForwardProxy
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/fwproxylistenerapp.NewForwardProxy'
              description: New forward proxy
              summary: proxy
        description: New forward proxy
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/fwproxylistenerapp.ForwardProxy'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new forward proxy.
      tags:
      - forward-proxy
  /v1/listeners/forward-proxy/{listener_id}:
    delete:
      description: Delete an existing forward proxy.
      operationId: deleteForwardProxy
      parameters:
      - description: Forward Proxy ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing forward proxy.
      tags:
      - forward-proxy
    get:
      description: Retrieves an existing forward proxy given its ID.
      operationId: getForwardProxyByID
      parameters:
      - description: Forward Proxy ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/fwproxylistenerapp.ForwardProxy'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing forward proxy given its ID.
      tags:
      - forward-proxy
    patch:
      description: Update an existing forward proxy.
      operationId: updateForwardProxy
      parameters:
      - description: Forward Proxy ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/fwproxylistenerapp.UpdateForwardProxy'
              description: Updated forward proxy
              summary: proxy
        description: Updated forward proxy
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/fwproxylistenerapp.ForwardProxy'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing forward proxy.
      tags:
      - forward-proxy
  /v1/listeners/forward-proxy/{listener_id}/deployments:
    get:
      description: Retrieves all the forward proxy deployments.
      operationId: queryFwProxyDeployment
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-fwproxydeploymentapp_Deployment'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the forward proxy deployments.
      tags:
      - forward-proxy-deployment
    post:
      description: Create a new forward proxy deployment.
      operationId: createFwProxyDeployment
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/fwproxydeploymentapp.NewDeployment'
              description: New deployment
              summary: deployment
        description: New deployment
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/fwproxydeploymentapp.Deployment'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new forward proxy deployment.
      tags:
      - forward-proxy-deployment
  /v1/listeners/forward-proxy/{listener_id}/deployments/{server_id}:
    delete:
      description: Delete an existing forward proxy deployment.
      operationId: deleteFwProxyDeployment
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing forward proxy deployment.
      tags:
      - forward-proxy-deployment
    get:
      description: Retrieves an existing forward proxy deployment given its server
        ID.
      operationId: getFwProxyDeploymentByID
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/fwproxydeploymentapp.Deployment'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing forward proxy deployment given its server ID.
      tags:
      - forward-proxy-deployment
    patch:
      description: Update an existing forward proxy deployment.
      operationId: updateFwProxyDeployment
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/fwproxydeploymentapp.UpdateDeployment'
              description: Updated deployment
              summary: deployment
        description: Updated deployment
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/fwproxydeploymentapp.Deployment'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing forward proxy deployment.
      tags:
      - forward-proxy-deployment
  /v1/listeners/ftp:
    get:
      description: Retrieves all the ftp listeners.
      operationId: queryFTPListener
      parameters:
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-ftplistenerapp_Listener'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the ftp listeners.
      tags:
      - ftp-listener
    post:
      description: Create a new ftp listener.
      operationId: createFTPListener
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ftplistenerapp.NewListener'
              description: New listener
              summary: server
        description: New listener
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ftplistenerapp.Listener'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new ftp listener.
      tags:
      - ftp-listener
  /v1/listeners/ftp/{listener_id}:
    delete:
      description: Delete an existing ftp listener.
      operationId: deleteFTPListener
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing ftp listener.
      tags:
      - ftp-listener
    get:
      description: Retrieves an existing ftp listener given its ID.
      operationId: getFTPListenerByID
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ftplistenerapp.Listener'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing ftp listener given its ID.
      tags:
      - ftp-listener
    patch:
      description: Update an existing ftp listener.
      operationId: updateFTPListener
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ftplistenerapp.UpdateListener'
              description: UpdatedAt listener
              summary: server
        description: UpdatedAt listener
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ftplistenerapp.Listener'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing ftp listener.
      tags:
      - ftp-listener
  /v1/listeners/ftp/{listener_id}/deployments:
    get:
      description: Retrieves all the ftp deployments.
      operationId: queryFTPDeployment
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-ftpdeploymentapp_Deployment'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the ftp deployments.
      tags:
      - ftp-deployment
    post:
      description: Create a new ftp deployment.
      operationId: createFTPDeployment
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ftpdeploymentapp.NewDeployment'
              description: New deployment
              summary: deployment
        description: New deployment
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ftpdeploymentapp.Deployment'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new ftp deployment.
      tags:
      - ftp-deployment
  /v1/listeners/ftp/{listener_id}/deployments/{server_id}:
    delete:
      description: Delete an existing ftp deployment.
      operationId: deleteFTPDeployment
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing ftp deployment.
      tags:
      - ftp-deployment
    get:
      description: Retrieves an existing ftp deployment given its server ID.
      operationId: getFTPDeploymentByID
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ftpdeploymentapp.Deployment'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing ftp deployment given its server ID.
      tags:
      - ftp-deployment
    patch:
      description: Update an existing ftp deployment.
      operationId: updateFTPDeployment
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ftpdeploymentapp.UpdateDeployment'
              description: UpdatedAt deployment
              summary: deployment
        description: UpdatedAt deployment
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ftpdeploymentapp.Deployment'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing ftp deployment.
      tags:
      - ftp-deployment
  /v1/listeners/http:
    get:
      description: Retrieves all the http listeners.
      operationId: queryHTTPListener
      parameters:
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-httplistenerapp_Listener'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the http listeners.
      tags:
      - http-listener
    post:
      description: Create a new http listener.
      operationId: createHTTPListener
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/httplistenerapp.NewListener'
              description: New listener
              summary: server
        description: New listener
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httplistenerapp.Listener'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new http listener.
      tags:
      - http-listener
  /v1/listeners/http/{listener_id}:
    delete:
      description: Delete an existing http listener.
      operationId: deleteHTTPListener
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing http listener.
      tags:
      - http-listener
    get:
      description: Retrieves an existing http listener given its ID.
      operationId: getHTTPListenerByID
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httplistenerapp.Listener'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing http listener given its ID.
      tags:
      - http-listener
    patch:
      description: Update an existing http listener.
      operationId: updateHTTPListener
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/httplistenerapp.UpdateListener'
              description: UpdatedAt listener
              summary: server
        description: UpdatedAt listener
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httplistenerapp.Listener'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing http listener.
      tags:
      - http-listener
  /v1/listeners/http/{listener_id}/deployments:
    get:
      description: Retrieves all the http deployments.
      operationId: queryHTTPDeployment
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-httpdeploymentapp_Deployment'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the http deployments.
      tags:
      - http-deployment
    post:
      description: Create a new http deployment.
      operationId: createHTTPDeployment
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/httpdeploymentapp.NewDeployment'
              description: New deployment
              summary: deployment
        description: New deployment
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httpdeploymentapp.Deployment'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new http deployment.
      tags:
      - http-deployment
  /v1/listeners/http/{listener_id}/deployments/{server_id}:
    delete:
      description: Delete an existing http deployment.
      operationId: deleteHTTPDeployment
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing http deployment.
      tags:
      - http-deployment
    get:
      description: Retrieves an existing http deployment given its server ID.
      operationId: getHTTPDeploymentByID
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httpdeploymentapp.Deployment'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing http deployment given its server ID.
      tags:
      - http-deployment
    patch:
      description: Update an existing http deployment.
      operationId: updateHTTPDeployment
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/httpdeploymentapp.UpdateDeployment'
              description: UpdatedAt deployment
              summary: deployment
        description: UpdatedAt deployment
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httpdeploymentapp.Deployment'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing http deployment.
      tags:
      - http-deployment
  /v1/listeners/sftp:
    get:
      description: Retrieves all the sftp listeners.
      operationId: querySFTPListener
      parameters:
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-sftplistenerapp_Listener'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the sftp listeners.
      tags:
      - sftp-listener
    post:
      description: Create a new sftp listener.
      operationId: createSFTPListener
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sftplistenerapp.NewListener'
              description: New listener
              summary: server
        description: New listener
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sftplistenerapp.Listener'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new sftp listener.
      tags:
      - sftp-listener
  /v1/listeners/sftp/{listener_id}:
    delete:
      description: Delete an existing sftp listener.
      operationId: deleteSFTPListener
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing sftp listener.
      tags:
      - sftp-listener
    get:
      description: Retrieves an existing sftp listener given its ID.
      operationId: getSFTPListenerByID
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sftplistenerapp.Listener'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing sftp listener given its ID.
      tags:
      - sftp-listener
    patch:
      description: Update an existing sftp listener.
      operationId: updateSFTPListener
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sftplistenerapp.UpdateListener'
              description: UpdatedAt listener
              summary: server
        description: UpdatedAt listener
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sftplistenerapp.Listener'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing sftp listener.
      tags:
      - sftp-listener
  /v1/listeners/sftp/{listener_id}/deployments:
    get:
      description: Retrieves all the sftp deployments.
      operationId: querySFTPDeployment
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-sftpdeploymentapp_Deployment'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the sftp deployments.
      tags:
      - sftp-deployment
    post:
      description: Create a new sftp deployment.
      operationId: createSFTPDeployment
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sftpdeploymentapp.NewDeployment'
              description: New deployment
              summary: deployment
        description: New deployment
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sftpdeploymentapp.Deployment'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new sftp deployment.
      tags:
      - sftp-deployment
  /v1/listeners/sftp/{listener_id}/deployments/{server_id}:
    delete:
      description: Delete an existing sftp deployment.
      operationId: deleteSFTPDeployment
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing sftp deployment.
      tags:
      - sftp-deployment
    get:
      description: Retrieves an existing sftp deployment given its server ID.
      operationId: getSFTPDeploymentByServerID
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sftpdeploymentapp.Deployment'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing sftp deployment given its server ID.
      tags:
      - sftp-deployment
    patch:
      description: Update an existing sftp deployment.
      operationId: updateSFTPDeployment
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sftpdeploymentapp.UpdateDeployment'
              description: UpdatedAt deployment
              summary: deployment
        description: UpdatedAt deployment
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sftpdeploymentapp.Deployment'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing sftp deployment.
      tags:
      - sftp-deployment
  /v1/listeners/tcp:
    get:
      description: Retrieves all the tcp listeners.
      operationId: queryTCPListener
      parameters:
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-tcplistenerapp_Listener'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the tcp listeners.
      tags:
      - tcp-listener
    post:
      description: Create a new tcp listener.
      operationId: createTCPListener
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/tcplistenerapp.NewListener'
              description: New listener
              summary: server
        description: New listener
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tcplistenerapp.Listener'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new tcp listener.
      tags:
      - tcp-listener
  /v1/listeners/tcp/{listener_id}:
    delete:
      description: Delete an existing tcp listener.
      operationId: deleteTCPListener
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing tcp listener.
      tags:
      - tcp-listener
    get:
      description: Retrieves an existing tcp listener given its ID.
      operationId: getTCPListenerByID
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tcplistenerapp.Listener'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing tcp listener given its ID.
      tags:
      - tcp-listener
    patch:
      description: Update an existing tcp listener.
      operationId: updateTCPListener
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/tcplistenerapp.UpdateListener'
              description: UpdatedAt listener
              summary: server
        description: UpdatedAt listener
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tcplistenerapp.Listener'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing tcp listener.
      tags:
      - tcp-listener
  /v1/listeners/tcp/{listener_id}/deployments:
    get:
      description: Retrieves all the tcp deployments.
      operationId: queryTCPDeployment
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-tcpdeploymentapp_Deployment'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the tcp deployments.
      tags:
      - tcp-deployment
    post:
      description: Create a new tcp deployment.
      operationId: createTCPDeployment
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/tcpdeploymentapp.NewDeployment'
              description: New deployment
              summary: deployment
        description: New deployment
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tcpdeploymentapp.Deployment'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new tcp deployment.
      tags:
      - tcp-deployment
  /v1/listeners/tcp/{listener_id}/deployments/{server_id}:
    delete:
      description: Delete an existing tcp deployment.
      operationId: deleteTCPDeployment
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing tcp deployment.
      tags:
      - tcp-deployment
    get:
      description: Retrieves an existing tcp deployment given its server ID.
      operationId: getTCPDeploymentByID
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tcpdeploymentapp.Deployment'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing tcp deployment given its server ID.
      tags:
      - tcp-deployment
    patch:
      description: Update an existing tcp deployment.
      operationId: updateTCPDeployment
      parameters:
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/tcpdeploymentapp.UpdateDeployment'
              description: UpdatedAt deployment
              summary: deployment
        description: UpdatedAt deployment
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tcpdeploymentapp.Deployment'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing tcp deployment.
      tags:
      - tcp-deployment
  /v1/liveness:
    get:
      description: Returns simple status info if the service is alive.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/checkapp.Info'
          description: OK
      summary: Returns simple status info if the service is alive.
      tags:
      - healthcheck
  /v1/login:
    post:
      description: Login.
      operationId: login
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/authapp.Credentials'
              description: User credentials
              summary: credentials
        description: User credentials
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/authapp.TokenResponse'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      summary: Login.
      tags:
      - auth
  /v1/login-methods:
    get:
      description: Returns the available authentication methods.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/authmethodapp.AuthMethods'
          description: OK
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      summary: Returns the available authentication methods.
      tags:
      - auth
  /v1/login/ldap:
    post:
      description: LDAP Login.
      operationId: loginLDAP
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ldapauthapp.Credentials'
              description: User credentials
              summary: credentials
        description: User credentials
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ldapauthapp.TokenResponse'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Basic: []
      summary: LDAP Login.
      tags:
      - auth
  /v1/login/oidc/{provider}:
    get:
      description: OIDC Login.
      operationId: redirectOIDC
      parameters:
      - description: Provider name
        in: path
        name: provider
        required: true
        schema:
          type: string
      responses:
        "302":
          description: Found
      summary: OIDC Login.
      tags:
      - auth
  /v1/login/saml/{provider}:
    get:
      description: SAML Login.
      operationId: redirectSAML
      parameters:
      - description: Provider name
        in: path
        name: provider
        required: true
        schema:
          type: string
      responses:
        "302":
          description: Found
      summary: SAML Login.
      tags:
      - auth
  /v1/logout:
    post:
      description: Logout.
      operationId: logout
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Logout.
      tags:
      - auth
  /v1/metrics:
    get:
      description: Retrieve prometheus metrics.
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: OK
      summary: Retrieve prometheus metrics.
      tags:
      - metrics
  /v1/monitoring/servers/{server_id}/configuration:
    get:
      description: Retrieve the current configuration of a proxy server.
      operationId: getServerConfiguration
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configapp.Configuration'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieve the current configuration of a proxy server.
      tags:
      - monitoring
    post:
      description: Update the configuration of a proxy server.
      operationId: pushServerConfiguration
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update the configuration of a proxy server.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/configuration/history:
    get:
      description: Retrieves all the past server configurations.
      operationId: queryServerConfigurationHistory
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-configapp_Configuration'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the past server configurations.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/configuration/latest:
    get:
      description: Retrieve the most recently pushed configuration of a proxy server.
      operationId: getLatestServerConfiguration
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configapp.Configuration'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieve the most recently pushed configuration of a proxy server.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/configuration/preview:
    get:
      description: Preview configuration for a proxy server.
      operationId: previewServerConfiguration
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configapp.Configuration'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Preview configuration for a proxy server.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/hsm/private-keys:
    get:
      description: Makes a request to the specified server's HSM private keys endpoint.
      operationId: listHSMPrivateKeys
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/pshsmapp.HSMObject'
                type: array
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: List private keys in HSM for a proxy server.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/hsm/private-keys/{private_key_id}:
    get:
      description: Makes a request to the specified server's HSM private key presence
        endpoint.
      operationId: checkHSMPrivateKeyPresence
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Private Key ID
        in: path
        name: private_key_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: Private key found
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Private key not referencing HSM object
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Server/Private key not found or not found in HSM
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Check private key presence in HSM for a proxy server.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/hsm/start:
    post:
      description: Starts the HSM connection on the specified server.
      operationId: startHSMConnection
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: HSM connection started
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Start HSM connection for a proxy server.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/hsm/status:
    get:
      description: Returns the current status of the HSM connection on the specified
        server.
      operationId: getHSMConnectionStatus
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pshsmapp.HSMStatus'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Get HSM connection status for a proxy server.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/hsm/stop:
    post:
      description: Stops the HSM connection on the specified server.
      operationId: stopHSMConnection
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: HSM connection stopped
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Stop HSM connection for a proxy server.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/hsm/test:
    get:
      description: Test HSM connection for a proxy server.
      operationId: testHSMConnection
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/hsmmonitorapp.HSMTestResult'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Test HSM connection for a proxy server.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/hsm/tls-certificates:
    get:
      description: Makes a request to the specified server's HSM TLS certificates
        endpoint.
      operationId: listHSMTLSCertificates
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/pshsmapp.HSMObject'
                type: array
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Server has no HSM configuration
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: List TLS certificates in HSM for a proxy server.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/hsm/tls-certificates/{certificate_id}:
    get:
      description: Makes a request to the specified server's HSM TLS certificate presence
        endpoint.
      operationId: checkHSMTLSCertificatePresence
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: TLS Certificate ID
        in: path
        name: certificate_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: TLS certificate found
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: TLS certificate not referencing HSM object
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Server/TLS certificate not found or not found in HSM
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Check TLS certificate presence in HSM for a proxy server.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/listeners/forward-proxy/{listener_id}/start:
    post:
      description: Starts a proxy server forward proxy listener.
      operationId: startFwProxyListener
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Starts a proxy server forward proxy listener.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/listeners/forward-proxy/{listener_id}/status:
    get:
      description: Retrieve the status of a proxy server forward proxy listener.
      operationId: getFwProxyListenerStatus
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/monitorapp.ForwardProxyListenerStatus'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieve the status of a proxy server forward proxy listener.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/listeners/forward-proxy/{listener_id}/stop:
    post:
      description: Stops a proxy server forward proxy listener.
      operationId: stopFwProxyListener
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Stops a proxy server forward proxy listener.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/listeners/ftp/{listener_id}/start:
    post:
      description: Starts a proxy server FTP listener.
      operationId: startFTPListener
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Starts a proxy server FTP listener.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/listeners/ftp/{listener_id}/status:
    get:
      description: Retrieve the status of a proxy server http listener.
      operationId: getFTPListenerStatus
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/monitorapp.FTPListenerStatus'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieve the status of a proxy server http listener.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/listeners/ftp/{listener_id}/stop:
    post:
      description: Stops a proxy server FTP listener.
      operationId: stopFTPListener
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Stops a proxy server FTP listener.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/listeners/http/{listener_id}/start:
    post:
      description: Starts a proxy server HTTP listener.
      operationId: startHTTPListener
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Starts a proxy server HTTP listener.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/listeners/http/{listener_id}/status:
    get:
      description: Retrieve the status of a proxy server http listener.
      operationId: getHTTPListenerStatus
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/monitorapp.HTTPListenerStatus'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieve the status of a proxy server http listener.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/listeners/http/{listener_id}/stop:
    post:
      description: Stops a proxy server HTTP listener.
      operationId: stopHTTPListener
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Stops a proxy server HTTP listener.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/listeners/sftp/{listener_id}/start:
    post:
      description: Starts a proxy server SFTP listener.
      operationId: startSFTPListener
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Starts a proxy server SFTP listener.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/listeners/sftp/{listener_id}/status:
    get:
      description: Retrieve the status of a proxy server sftp listener.
      operationId: getSFTPListenerStatus
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/monitorapp.SFTPListenerStatus'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieve the status of a proxy server sftp listener.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/listeners/sftp/{listener_id}/stop:
    post:
      description: Stops a proxy server SFTP listener.
      operationId: stopSFTPListener
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Stops a proxy server SFTP listener.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/listeners/tcp/{listener_id}/start:
    post:
      description: Starts a proxy server TCP listener.
      operationId: startTCPListener
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Starts a proxy server TCP listener.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/listeners/tcp/{listener_id}/status:
    get:
      description: Retrieve the status of a proxy server TCP listener.
      operationId: getTCPListenerStatus
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/monitorapp.TCPListenerStatus'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieve the status of a proxy server TCP listener.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/listeners/tcp/{listener_id}/stop:
    post:
      description: Stops a proxy server TCP listener.
      operationId: stopTCPListener
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Stops a proxy server TCP listener.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/status:
    get:
      description: Retrieve the status of a proxy server.
      operationId: getServerStatus
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/monitorapp.Status'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieve the status of a proxy server.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/tunnels/{tunnel_id}/start:
    post:
      description: Starts a proxy server tunnel.
      operationId: startTunnel
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Tunnel ID
        in: path
        name: tunnel_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Starts a proxy server tunnel.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/tunnels/{tunnel_id}/status:
    get:
      description: Retrieve the status of a proxy server tunnel.
      operationId: getTunnelStatus
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Tunnel ID
        in: path
        name: tunnel_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/monitorapp.TunnelStatus'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieve the status of a proxy server tunnel.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/tunnels/{tunnel_id}/stop:
    post:
      description: Stops a proxy server tunnel.
      operationId: stopTunnel
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Tunnel ID
        in: path
        name: tunnel_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Stops a proxy server tunnel.
      tags:
      - monitoring
  /v1/profile:
    get:
      description: Retrieves the authenticated user's data.
      operationId: getUserProfile
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/userapp.User'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves the authenticated user's data.
      tags:
      - user
  /v1/providers/oidc:
    get:
      description: Retrieves all the OIDC providers.
      operationId: queryOIDCProvider
      parameters:
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-oidcproviderapp_Provider'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the OIDC providers.
      tags:
      - oidc-provider
    post:
      description: Create a new OIDC provider.
      operationId: createOIDCProvider
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/oidcproviderapp.NewProvider'
              description: New provider
              summary: query
        description: New provider
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oidcproviderapp.Provider'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new OIDC provider.
      tags:
      - oidc-provider
  /v1/providers/oidc/{provider_id}:
    delete:
      description: Delete an existing OIDC provider.
      operationId: deleteOIDCProvider
      parameters:
      - description: OIDC provider ID
        in: path
        name: provider_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing OIDC provider.
      tags:
      - oidc-provider
    get:
      description: Retrieves an existing OIDC provider given its ID.
      operationId: getOIDCProviderByID
      parameters:
      - description: OIDC provider ID
        in: path
        name: provider_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oidcproviderapp.Provider'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing OIDC provider given its ID.
      tags:
      - oidc-provider
    patch:
      description: Update an existing OIDC provider.
      operationId: updateOIDCProvider
      parameters:
      - description: OIDC provider ID
        in: path
        name: provider_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/oidcproviderapp.UpdateProvider'
              description: Updated OIDC provider
              summary: query
        description: Updated OIDC provider
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oidcproviderapp.Provider'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing OIDC provider.
      tags:
      - oidc-provider
  /v1/providers/saml:
    get:
      description: Retrieves all the SAML providers.
      operationId: querySAMLProvider
      parameters:
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-samlproviderapp_Provider'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the SAML providers.
      tags:
      - saml-provider
    post:
      description: Create a new SAML provider.
      operationId: createSAMLProvider
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/samlproviderapp.NewProvider'
              description: New provider
              summary: query
        description: New provider
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/samlproviderapp.Provider'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new SAML provider.
      tags:
      - saml-provider
  /v1/providers/saml/{provider_id}:
    delete:
      description: Delete an existing SAML provider.
      operationId: deleteSAMLProvider
      parameters:
      - description: SAML provider ID
        in: path
        name: provider_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing SAML provider.
      tags:
      - saml-provider
    get:
      description: Retrieves an existing SAML provider given its ID.
      operationId: getSAMLProviderByID
      parameters:
      - description: SAML provider ID
        in: path
        name: provider_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/samlproviderapp.Provider'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing SAML provider given its ID.
      tags:
      - saml-provider
    patch:
      description: Update an existing SAML provider.
      operationId: updateSAMLProvider
      parameters:
      - description: SAML provider ID
        in: path
        name: provider_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/samlproviderapp.UpdateProvider'
              description: Updated SAML provider
              summary: query
        description: Updated SAML provider
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/samlproviderapp.Provider'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing SAML provider.
      tags:
      - saml-provider
  /v1/readiness:
    get:
      description: Checks if the database is ready.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/checkapp.Ready'
          description: OK
        "503":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Service Unavailable
      summary: Checks if the database is ready.
      tags:
      - healthcheck
  /v1/routes/ftp:
    get:
      description: Retrieves all the ftp routes.
      operationId: queryFTPRoute
      parameters:
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-ftprouteapp_Route'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the ftp routes.
      tags:
      - ftp-route
    post:
      description: Create a new ftp route.
      operationId: createFTPRoute
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ftprouteapp.NewRoute'
              description: New route
              summary: server
        description: New route
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ftprouteapp.Route'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new ftp route.
      tags:
      - ftp-route
  /v1/routes/ftp/{route_id}:
    delete:
      description: Delete an existing ftp route.
      operationId: deleteFTPRoute
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing ftp route.
      tags:
      - ftp-route
    get:
      description: Retrieves an existing ftp route given its ID.
      operationId: getFTPRouteByID
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ftprouteapp.Route'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing ftp route given its ID.
      tags:
      - ftp-route
    patch:
      description: Update an existing ftp route.
      operationId: updateFTPRoute
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ftprouteapp.UpdateRoute'
              description: UpdatedAt route
              summary: server
        description: UpdatedAt route
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ftprouteapp.Route'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing ftp route.
      tags:
      - ftp-route
  /v1/routes/ftp/{route_id}/nodes/inbound:
    get:
      description: Retrieves all the ftp inbound nodes.
      operationId: queryFTPInboundNode
      parameters:
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-ftpinboundnodeapp_InboundNode'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the ftp inbound nodes.
      tags:
      - ftp-inbound-node
    post:
      description: Create a new ftp inbound node.
      operationId: createFTPInboundNode
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ftpinboundnodeapp.NewInboundNode'
              description: New inbound node
              summary: server
        description: New inbound node
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ftpinboundnodeapp.InboundNode'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new ftp inbound node.
      tags:
      - ftp-inbound-node
  /v1/routes/ftp/{route_id}/nodes/inbound/{node_id}:
    delete:
      description: Delete an existing ftp inbound node.
      operationId: deleteFTPInboundNode
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Node ID
        in: path
        name: node_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing ftp inbound node.
      tags:
      - ftp-inbound-node
    get:
      description: Retrieves an existing ftp inbound node given its ID.
      operationId: getFTPInboundNodeByID
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Node ID
        in: path
        name: node_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ftpinboundnodeapp.InboundNode'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing ftp inbound node given its ID.
      tags:
      - ftp-inbound-node
    patch:
      description: Update an existing ftp inbound node.
      operationId: updateFTPInboundNode
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Node ID
        in: path
        name: node_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ftpinboundnodeapp.UpdateInboundNode'
              description: UpdatedAt inbound node
              summary: server
        description: UpdatedAt inbound node
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ftpinboundnodeapp.InboundNode'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing ftp inbound node.
      tags:
      - ftp-inbound-node
  /v1/routes/ftp/{route_id}/nodes/outbound:
    get:
      description: Retrieves all the ftp outbound nodes.
      operationId: queryFTPOutboundNode
      parameters:
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-ftpoutboundnodeapp_OutboundNode'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the ftp outbound nodes.
      tags:
      - ftp-outbound-node
    post:
      description: Create a new ftp outbound node.
      operationId: createFTPOutboundNode
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ftpoutboundnodeapp.NewOutboundNode'
              description: New outbound node
              summary: server
        description: New outbound node
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ftpoutboundnodeapp.OutboundNode'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new ftp outbound node.
      tags:
      - ftp-outbound-node
  /v1/routes/ftp/{route_id}/nodes/outbound/{node_id}:
    delete:
      description: Delete an existing ftp outbound node.
      operationId: deleteFTPOutboundNode
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Node ID
        in: path
        name: node_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing ftp outbound node.
      tags:
      - ftp-outbound-node
    get:
      description: Retrieves an existing ftp outbound node given its ID.
      operationId: getFTPOutboundNodeByID
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Node ID
        in: path
        name: node_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ftpoutboundnodeapp.OutboundNode'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing ftp outbound node given its ID.
      tags:
      - ftp-outbound-node
    patch:
      description: Update an existing ftp outbound node.
      operationId: updateFTPOutboundNode
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Node ID
        in: path
        name: node_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ftpoutboundnodeapp.UpdateOutboundNode'
              description: UpdatedAt outbound node
              summary: server
        description: UpdatedAt outbound node
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ftpoutboundnodeapp.OutboundNode'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing ftp outbound node.
      tags:
      - ftp-outbound-node
  /v1/routes/http:
    get:
      description: Retrieves all the http routes.
      operationId: queryHTTPRoute
      parameters:
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-httprouteapp_Route'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the http routes.
      tags:
      - http-route
    post:
      description: Create a new http route.
      operationId: createHTTPRoute
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/httprouteapp.NewRoute'
              description: New route
              summary: server
        description: New route
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httprouteapp.Route'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new http route.
      tags:
      - http-route
  /v1/routes/http/{route_id}:
    delete:
      description: Delete an existing http route.
      operationId: deleteHTTPRoute
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing http route.
      tags:
      - http-route
    get:
      description: Retrieves an existing http route given its ID.
      operationId: getHTTPRouteByID
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httprouteapp.Route'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing http route given its ID.
      tags:
      - http-route
    patch:
      description: Update an existing http route.
      operationId: updateHTTPRoute
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/httprouteapp.UpdateRoute'
              description: UpdatedAt route
              summary: server
        description: UpdatedAt route
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httprouteapp.Route'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing http route.
      tags:
      - http-route
  /v1/routes/http/{route_id}/nodes/inbound:
    get:
      description: Retrieves all the http inbound nodes.
      operationId: queryHTTPInboundNode
      parameters:
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-httpinboundnodeapp_InboundNode'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the http inbound nodes.
      tags:
      - http-inbound-node
    post:
      description: Create a new http inbound node.
      operationId: createHTTPInboundNode
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/httpinboundnodeapp.NewInboundNode'
              description: New inbound node
              summary: server
        description: New inbound node
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httpinboundnodeapp.InboundNode'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new http inbound node.
      tags:
      - http-inbound-node
  /v1/routes/http/{route_id}/nodes/inbound/{node_id}:
    delete:
      description: Delete an existing http inbound node.
      operationId: deleteHTTPInboundNode
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Node ID
        in: path
        name: node_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing http inbound node.
      tags:
      - http-inbound-node
    get:
      description: Retrieves an existing http inbound node given its ID.
      operationId: getHTTPInboundNodeByID
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Node ID
        in: path
        name: node_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httpinboundnodeapp.InboundNode'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing http inbound node given its ID.
      tags:
      - http-inbound-node
    patch:
      description: Update an existing http inbound node.
      operationId: updateHTTPInboundNode
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Node ID
        in: path
        name: node_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/httpinboundnodeapp.UpdateInboundNode'
              description: UpdatedAt inbound node
              summary: server
        description: UpdatedAt inbound node
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httpinboundnodeapp.InboundNode'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing http inbound node.
      tags:
      - http-inbound-node
  /v1/routes/http/{route_id}/nodes/outbound:
    get:
      description: Retrieves all the http outbound nodes.
      operationId: queryHTTPOutboundNode
      parameters:
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-httpoutboundnodeapp_OutboundNode'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the http outbound nodes.
      tags:
      - http-outbound-node
    post:
      description: Create a new http outbound node.
      operationId: createHTTPOutboundNode
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/httpoutboundnodeapp.NewOutboundNode'
              description: New outbound node
              summary: server
        description: New outbound node
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httpoutboundnodeapp.OutboundNode'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new http outbound node.
      tags:
      - http-outbound-node
  /v1/routes/http/{route_id}/nodes/outbound/{node_id}:
    delete:
      description: Delete an existing http outbound node.
      operationId: deleteHTTPOutboundNode
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Node ID
        in: path
        name: node_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing http outbound node.
      tags:
      - http-outbound-node
    get:
      description: Retrieves an existing http outbound node given its ID.
      operationId: getHTTPOutboundNodeByID
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Node ID
        in: path
        name: node_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httpoutboundnodeapp.OutboundNode'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing http outbound node given its ID.
      tags:
      - http-outbound-node
    patch:
      description: Update an existing http outbound node.
      operationId: updateHTTPOutboundNode
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Node ID
        in: path
        name: node_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/httpoutboundnodeapp.UpdateOutboundNode'
              description: UpdatedAt outbound node
              summary: server
        description: UpdatedAt outbound node
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httpoutboundnodeapp.OutboundNode'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing http outbound node.
      tags:
      - http-outbound-node
  /v1/routes/sftp:
    get:
      description: Retrieves all the sftp routes.
      operationId: querySFTPRoute
      parameters:
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-sftprouteapp_Route'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the sftp routes.
      tags:
      - sftp-route
    post:
      description: Create a new sftp route.
      operationId: createSFTPRoute
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sftprouteapp.NewRoute'
              description: New route
              summary: server
        description: New route
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sftprouteapp.Route'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new sftp route.
      tags:
      - sftp-route
  /v1/routes/sftp/{route_id}:
    delete:
      description: Delete an existing sftp route.
      operationId: deleteSFTPRoute
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing sftp route.
      tags:
      - sftp-route
    get:
      description: Retrieves an existing sftp route given its ID.
      operationId: getSFTPRouteByID
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sftprouteapp.Route'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing sftp route given its ID.
      tags:
      - sftp-route
    patch:
      description: Update an existing sftp route.
      operationId: updateSFTPRoute
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sftprouteapp.UpdateRoute'
              description: UpdatedAt route
              summary: server
        description: UpdatedAt route
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sftprouteapp.Route'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing sftp route.
      tags:
      - sftp-route
  /v1/routes/sftp/{route_id}/nodes/inbound:
    get:
      description: Retrieves all the sftp inbound nodes.
      operationId: querySFTPInboundNode
      parameters:
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-sftpinboundnodeapp_InboundNode'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the sftp inbound nodes.
      tags:
      - sftp-inbound-node
    post:
      description: Create a new sftp inbound node.
      operationId: createSFTPInboundNode
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sftpinboundnodeapp.NewInboundNode'
              description: New inbound node
              summary: server
        description: New inbound node
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sftpinboundnodeapp.InboundNode'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new sftp inbound node.
      tags:
      - sftp-inbound-node
  /v1/routes/sftp/{route_id}/nodes/inbound/{node_id}:
    delete:
      description: Delete an existing sftp inbound node.
      operationId: deleteSFTPInboundNode
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Node ID
        in: path
        name: node_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing sftp inbound node.
      tags:
      - sftp-inbound-node
    get:
      description: Retrieves an existing sftp inbound node given its ID.
      operationId: getSFTPInboundNodeByID
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Node ID
        in: path
        name: node_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sftpinboundnodeapp.InboundNode'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing sftp inbound node given its ID.
      tags:
      - sftp-inbound-node
    patch:
      description: Update an existing sftp inbound node.
      operationId: updateSFTPInboundNode
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Node ID
        in: path
        name: node_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sftpinboundnodeapp.UpdateInboundNode'
              description: UpdatedAt inbound node
              summary: server
        description: UpdatedAt inbound node
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sftpinboundnodeapp.InboundNode'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing sftp inbound node.
      tags:
      - sftp-inbound-node
  /v1/routes/sftp/{route_id}/nodes/outbound:
    get:
      description: Retrieves all the sftp outbound nodes.
      operationId: querySFTPOutboundNode
      parameters:
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-sftpoutboundnodeapp_OutboundNode'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the sftp outbound nodes.
      tags:
      - sftp-outbound-node
    post:
      description: Create a new sftp outbound node.
      operationId: createSFTPOutboundNode
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sftpoutboundnodeapp.NewOutboundNode'
              description: New outbound node
              summary: server
        description: New outbound node
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sftpoutboundnodeapp.OutboundNode'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new sftp outbound node.
      tags:
      - sftp-outbound-node
  /v1/routes/sftp/{route_id}/nodes/outbound/{node_id}:
    delete:
      description: Delete an existing sftp outbound node.
      operationId: deleteSFTPOutboundNode
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Node ID
        in: path
        name: node_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing sftp outbound node.
      tags:
      - sftp-outbound-node
    get:
      description: Retrieves an existing sftp outbound node given its ID.
      operationId: getSFTPOutboundNodeByID
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Node ID
        in: path
        name: node_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sftpoutboundnodeapp.OutboundNode'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing sftp outbound node given its ID.
      tags:
      - sftp-outbound-node
    patch:
      description: Update an existing sftp outbound node.
      operationId: updateSFTPOutboundNode
      parameters:
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Node ID
        in: path
        name: node_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sftpoutboundnodeapp.UpdateOutboundNode'
              description: UpdatedAt outbound node
              summary: server
        description: UpdatedAt outbound node
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sftpoutboundnodeapp.OutboundNode'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing sftp outbound node.
      tags:
      - sftp-outbound-node
  /v1/rules/ftp:
    get:
      description: Retrieves all the ftp rules.
      operationId: queryFTPRule
      parameters:
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-ftpruleapp_Rule'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the ftp rules.
      tags:
      - ftp-rule
    post:
      description: Create a new ftp rule.
      operationId: createFTPRule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ftpruleapp.NewRule'
              description: New rule
              summary: rule
        description: New rule
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ftpruleapp.Rule'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new ftp rule.
      tags:
      - ftp-rule
  /v1/rules/ftp/{rule_id}:
    delete:
      description: Delete an existing ftp rule.
      operationId: deleteFTPRule
      parameters:
      - description: Rule ID
        in: path
        name: rule_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing ftp rule.
      tags:
      - ftp-rule
    get:
      description: Retrieves an existing ftp rule given its ID.
      operationId: getFTPRuleByID
      parameters:
      - description: Rule ID
        in: path
        name: rule_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ftpruleapp.Rule'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing ftp rule given its ID.
      tags:
      - ftp-rule
    patch:
      description: Update an existing ftp rule.
      operationId: updateFTPRule
      parameters:
      - description: Rule ID
        in: path
        name: rule_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ftpruleapp.UpdateRule'
              description: UpdatedAt rule
              summary: rule
        description: UpdatedAt rule
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ftpruleapp.Rule'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing ftp rule.
      tags:
      - ftp-rule
  /v1/rules/http:
    get:
      description: Retrieves all the http rules.
      operationId: queryHTTPRule
      parameters:
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-httpruleapp_Rule'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the http rules.
      tags:
      - http-rule
    post:
      description: Create a new http rule.
      operationId: createHTTPRule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/httpruleapp.NewRule'
              description: New rule
              summary: rule
        description: New rule
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httpruleapp.Rule'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new http rule.
      tags:
      - http-rule
  /v1/rules/http/{rule_id}:
    delete:
      description: Delete an existing http rule.
      operationId: deleteHTTPRule
      parameters:
      - description: Rule ID
        in: path
        name: rule_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing http rule.
      tags:
      - http-rule
    get:
      description: Retrieves an existing http rule given its ID.
      operationId: getHTTPRuleByID
      parameters:
      - description: Rule ID
        in: path
        name: rule_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httpruleapp.Rule'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing http rule given its ID.
      tags:
      - http-rule
    patch:
      description: Update an existing http rule.
      operationId: updateHTTPRule
      parameters:
      - description: Rule ID
        in: path
        name: rule_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/httpruleapp.UpdateRule'
              description: UpdatedAt rule
              summary: rule
        description: UpdatedAt rule
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/httpruleapp.Rule'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing http rule.
      tags:
      - http-rule
  /v1/rules/sftp:
    get:
      description: Retrieves all the sftp rules.
      operationId: querySFTPRule
      parameters:
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-sftpruleapp_Rule'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the sftp rules.
      tags:
      - sftp-rule
    post:
      description: Create a new sftp rule.
      operationId: createSFTPRule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sftpruleapp.NewRule'
              description: New rule
              summary: rule
        description: New rule
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sftpruleapp.Rule'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new sftp rule.
      tags:
      - sftp-rule
  /v1/rules/sftp/{rule_id}:
    delete:
      description: Delete an existing sftp rule.
      operationId: deleteSFTPRule
      parameters:
      - description: Rule ID
        in: path
        name: rule_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing sftp rule.
      tags:
      - sftp-rule
    get:
      description: Retrieves an existing sftp rule given its ID.
      operationId: getSFTPRuleByID
      parameters:
      - description: Rule ID
        in: path
        name: rule_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sftpruleapp.Rule'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing sftp rule given its ID.
      tags:
      - sftp-rule
    patch:
      description: Update an existing sftp rule.
      operationId: updateSFTPRule
      parameters:
      - description: Rule ID
        in: path
        name: rule_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sftpruleapp.UpdateRule'
              description: UpdatedAt rule
              summary: rule
        description: UpdatedAt rule
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sftpruleapp.Rule'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing sftp rule.
      tags:
      - sftp-rule
  /v1/servers:
    get:
      description: Retrieves all the servers.
      operationId: queryServer
      parameters:
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-serverapp_Server'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the servers.
      tags:
      - server
    post:
      description: Create a new server.
      operationId: createServer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/serverapp.NewServer'
              description: New server
              summary: server
        description: New server
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serverapp.Server'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new server.
      tags:
      - server
  /v1/servers/{server_id}:
    delete:
      description: Delete an existing server.
      operationId: deleteServer
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing server.
      tags:
      - server
    get:
      description: Retrieves an existing server given its ID.
      operationId: getServerByID
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serverapp.Server'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing server given its ID.
      tags:
      - server
    patch:
      description: Update an existing server.
      operationId: updateServer
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/serverapp.UpdateServer'
              description: UpdatedAt server
              summary: server
        description: UpdatedAt server
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serverapp.Server'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing server.
      tags:
      - server
  /v1/servers/{server_id}/tunnels:
    get:
      description: Retrieves all the tunnels.
      operationId: queryTunnel
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records by the port number.
        in: query
        name: port
        schema:
          description: Filter records by the port number.
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-tunnelapp_Tunnel'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the tunnels.
      tags:
      - tunnel
    post:
      description: Create a new tunnel.
      operationId: createTunnel
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/tunnelapp.NewTunnel'
              description: New tunnel
              summary: tunnel
        description: New tunnel
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tunnelapp.Tunnel'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new tunnel.
      tags:
      - tunnel
  /v1/servers/{server_id}/tunnels/{tunnel_id}:
    delete:
      description: Delete an existing tunnel.
      operationId: deleteTunnel
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Tunnel ID
        in: path
        name: tunnel_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing tunnel.
      tags:
      - tunnel
    get:
      description: Retrieves an existing tunnel given its ID.
      operationId: getTunnelByID
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Tunnel ID
        in: path
        name: tunnel_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tunnelapp.Tunnel'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing tunnel given its ID.
      tags:
      - tunnel
    patch:
      description: Update an existing tunnel.
      operationId: updateTunnel
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Tunnel ID
        in: path
        name: tunnel_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/tunnelapp.UpdateTunnel'
              description: UpdatedAt tunnel
              summary: tunnel
        description: UpdatedAt tunnel
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tunnelapp.Tunnel'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing tunnel.
      tags:
      - tunnel
  /v1/servers/{server_id}/tunnels/{tunnel_id}/clients:
    get:
      description: Retrieves all the clients.
      operationId: queryClient
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Tunnel ID
        in: path
        name: tunnel_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-clientapp_Client'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the clients.
      tags:
      - client
    post:
      description: Create a new client.
      operationId: createClient
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Tunnel ID
        in: path
        name: tunnel_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/clientapp.NewClient'
              description: New client
              summary: client
        description: New client
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/clientapp.Client'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new client.
      tags:
      - client
  /v1/servers/{server_id}/tunnels/{tunnel_id}/clients/{client_id}:
    delete:
      description: Delete an existing client.
      operationId: deleteClient
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Tunnel ID
        in: path
        name: tunnel_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Client ID
        in: path
        name: client_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing client.
      tags:
      - client
    get:
      description: Retrieves an existing client given its ID.
      operationId: getClientByID
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Tunnel ID
        in: path
        name: tunnel_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Client ID
        in: path
        name: client_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/clientapp.Client'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing client given its ID.
      tags:
      - client
    patch:
      description: Update an existing client.
      operationId: updateClient
      parameters:
      - description: Server ID
        in: path
        name: server_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Tunnel ID
        in: path
        name: tunnel_id
        required: true
        schema:
          format: uuid
          type: string
      - description: Client ID
        in: path
        name: client_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/clientapp.UpdateClient'
              description: UpdatedAt client
              summary: client
        description: UpdatedAt client
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/clientapp.Client'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing client.
      tags:
      - client
  /v1/system/key-usage:
    get:
      description: Retrieves all the encryption key usages.
      parameters:
      - description: Filter records by DEK algorithm.
        in: query
        name: dek_algorithm
        schema:
          description: Filter records by DEK algorithm.
          type: string
      - description: Filter records with an exact match for the usage record name.
        in: query
        name: usage_record_name
        schema:
          description: Filter records with an exact match for the usage record name.
          type: string
      - description: Filter records with a partial match for the usage record name.
        in: query
        name: usage_record_name_contains
        schema:
          description: Filter records with a partial match for the usage record name.
          type: string
      - description: Filter records with usage created on or before the specified
          date.
        in: query
        name: usage_created_to
        schema:
          description: Filter records with usage created on or before the specified
            date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records by DEK scope.
        in: query
        name: dek_scope
        schema:
          description: Filter records by DEK scope.
          type: string
      - description: Filter records with DEK created on or before the specified date.
        in: query
        name: dek_created_to
        schema:
          description: Filter records with DEK created on or before the specified
            date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records with DEK updated on or after the specified date.
        in: query
        name: dek_updated_from
        schema:
          description: Filter records with DEK updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records by usage table name.
        in: query
        name: usage_table_name
        schema:
          description: Filter records by usage table name.
          type: string
      - description: Filter records by usage table ID.
        in: query
        name: usage_table_id
        schema:
          description: Filter records by usage table ID.
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      - description: Filter records by the DEK ID.
        in: query
        name: dek_id
        schema:
          description: Filter records by the DEK ID.
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      - description: Filter records with an exact match for the DEK name.
        in: query
        name: dek_name
        schema:
          description: Filter records with an exact match for the DEK name.
          type: string
      - description: Filter records by DEK status.
        in: query
        name: dek_status
        schema:
          description: Filter records by DEK status.
          type: string
      - description: Filter records with DEK updated on or before the specified date.
        in: query
        name: dek_updated_to
        schema:
          description: Filter records with DEK updated on or before the specified
            date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records with usage created on or after the specified date.
        in: query
        name: usage_created_from
        schema:
          description: Filter records with usage created on or after the specified
            date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records with usage updated on or after the specified date.
        in: query
        name: usage_updated_from
        schema:
          description: Filter records with usage updated on or after the specified
            date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records with usage updated on or before the specified
          date.
        in: query
        name: usage_updated_to
        schema:
          description: Filter records with usage updated on or before the specified
            date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: order_by
        schema:
          example: dek_name+
          format: field(+|-)
          type: string
      - description: Filter records with DEK created on or after the specified date.
        in: query
        name: dek_created_from
        schema:
          description: Filter records with DEK created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records with a partial match for the DEK name.
        in: query
        name: dek_name_contains
        schema:
          description: Filter records with a partial match for the DEK name.
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-vkmsusageapp_EncryptionKeyUsage'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the encryption key usages.
      tags:
      - views
  /v1/system/keys:
    get:
      description: Retrieves all the encryption keys.
      operationId: queryEncryptionKey
      parameters:
      - description: Filter records based on whether they are enabled.
        in: query
        name: enabled
        schema:
          description: Filter records based on whether they are enabled.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-kmsapp_Key'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the encryption keys.
      tags:
      - encryption_key
    post:
      description: Create a new encryption key and rotates the active key for the
        scope.
      operationId: createEncryptionKey
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/kmsapp.NewKey'
              description: New encryption key
              summary: key
        description: New encryption key
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/kmsapp.Key'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new encryption key and rotates the active key for the scope.
      tags:
      - encryption_key
  /v1/system/keys/{key_id}:
    get:
      description: Retrieves an existing encryption key given its ID.
      operationId: getEncryptionKeyByID
      parameters:
      - description: Encryption Key ID
        in: path
        name: key_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/kmsapp.Key'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing encryption key given its ID.
      tags:
      - encryption_key
    patch:
      description: Update an encryption key.
      operationId: updateEncryptionKey
      parameters:
      - description: Encryption Key ID
        in: path
        name: key_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/kmsapp.UpdateKey'
              description: Updated encryption key
              summary: key
        description: Updated encryption key
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/kmsapp.Key'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an encryption key.
      tags:
      - encryption_key
  /v1/system/ldap:
    delete:
      description: Delete an existing system LDAP configuration.
      operationId: deleteLDAPAuthMethod
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing system LDAP configuration.
      tags:
      - system-ldap-configuration
    get:
      description: Retrieves the existing system LDAP configuration.
      operationId: queryLDAPAuthMethod
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ldapauthmethodapp.LDAPConfiguration'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves the existing system LDAP configuration.
      tags:
      - system-ldap-configuration
    patch:
      description: Update an existing system LDAP configuration.
      operationId: updateLDAPAuthMethod
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ldapauthmethodapp.UpdateLDAPConfiguration'
              description: System LDAP configuration
              summary: connection
        description: System LDAP configuration
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ldapauthmethodapp.LDAPConfiguration'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing system LDAP configuration.
      tags:
      - system-ldap-configuration
    post:
      description: Create a new system LDAP configuration.
      operationId: createLDAPAuthMethod
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ldapauthmethodapp.NewLDAPConfiguration'
              description: New configuration
              summary: connection
        description: New configuration
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ldapauthmethodapp.LDAPConfiguration'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new system LDAP configuration.
      tags:
      - system-ldap-configuration
  /v1/system/oidc:
    get:
      description: Retrieves all the OIDC authentication method configurations.
      operationId: queryOIDCAuthMethod
      parameters:
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records to these specific IDs. Repeat the parameter for
          multiple values.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs. Repeat the parameter
            for multiple values.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-oidcauthmethodapp_AuthMethod'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the OIDC authentication method configurations.
      tags:
      - oidc-auth-method
    post:
      description: Create a new OIDC authentication method configuration.
      operationId: createOIDCAuthMethod
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/oidcauthmethodapp.NewAuthMethod'
              description: New authentication method
              summary: query
        description: New authentication method
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oidcauthmethodapp.AuthMethod'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new OIDC authentication method configuration.
      tags:
      - oidc-auth-method
  /v1/system/oidc/{auth_method_id}:
    delete:
      description: Delete an existing OIDC authentication method configuration.
      operationId: deleteOIDCAuthMethod
      parameters:
      - description: OIDC authentication method configuration ID
        in: path
        name: auth_method_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing OIDC authentication method configuration.
      tags:
      - oidc-auth-method
    get:
      description: Retrieves an existing OIDC authentication method configuration
        given its ID.
      operationId: getOIDCAuthMethodByID
      parameters:
      - description: OIDC authentication method configuration ID
        in: path
        name: auth_method_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oidcauthmethodapp.AuthMethod'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing OIDC authentication method configuration given
        its ID.
      tags:
      - oidc-auth-method
    patch:
      description: Update an existing OIDC authentication method configuration.
      operationId: updateOIDCAuthMethod
      parameters:
      - description: OIDC authentication method configuration ID
        in: path
        name: auth_method_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/oidcauthmethodapp.UpdateAuthMethod'
              description: Updated OIDC authentication method configuration
              summary: query
        description: Updated OIDC authentication method configuration
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oidcauthmethodapp.AuthMethod'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing OIDC authentication method configuration.
      tags:
      - oidc-auth-method
  /v1/system/saml:
    get:
      description: Retrieves all the SAML authentication method configurations.
      operationId: querySAMLAuthMethod
      parameters:
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records to these specific IDs. Repeat the parameter for
          multiple values.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs. Repeat the parameter
            for multiple values.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-samlauthmethodapp_AuthMethod'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the SAML authentication method configurations.
      tags:
      - saml-auth-method
    post:
      description: Create a new SAML authentication method configuration.
      operationId: createSAMLAuthMethod
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/samlauthmethodapp.NewAuthMethod'
              description: New authentication method
              summary: query
        description: New authentication method
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/samlauthmethodapp.AuthMethod'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new SAML authentication method configuration.
      tags:
      - saml-auth-method
  /v1/system/saml/{auth_method_id}:
    delete:
      description: Delete an existing SAML authentication method configuration.
      operationId: deleteSAMLAuthMethod
      parameters:
      - description: SAML authentication method configuration ID
        in: path
        name: auth_method_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing SAML authentication method configuration.
      tags:
      - saml-auth-method
    get:
      description: Retrieves an existing SAML authentication method configuration
        given its ID.
      operationId: getSAMLAuthMethodByID
      parameters:
      - description: SAML authentication method configuration ID
        in: path
        name: auth_method_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/samlauthmethodapp.AuthMethod'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing SAML authentication method configuration given
        its ID.
      tags:
      - saml-auth-method
    patch:
      description: Update an existing SAML authentication method configuration.
      operationId: updateSAMLAuthMethod
      parameters:
      - description: SAML authentication method configuration ID
        in: path
        name: auth_method_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/samlauthmethodapp.UpdateAuthMethod'
              description: Updated SAML authentication method configuration
              summary: query
        description: Updated SAML authentication method configuration
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/samlauthmethodapp.AuthMethod'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing SAML authentication method configuration.
      tags:
      - saml-auth-method
  /v1/system/security:
    get:
      description: Retrieves the existing system security configuration.
      operationId: querySecurity
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/securityapp.Security'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves the existing system security configuration.
      tags:
      - system-security-configuration
    patch:
      description: Update an existing system security configuration.
      operationId: updateSecurity
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/securityapp.UpdateSecurity'
              description: System security configuration
              summary: security
        description: System security configuration
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/securityapp.Security'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing system security configuration.
      tags:
      - system-security-configuration
  /v1/users:
    get:
      description: Retrieves all the users.
      parameters:
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - description: Filter records with an exact match for the username.
        in: query
        name: username
        schema:
          description: Filter records with an exact match for the username.
          type: string
      - description: Filter records with a partial match for the username.
        in: query
        name: username_contains
        schema:
          description: Filter records with a partial match for the username.
          type: string
      - description: Filter records with an exact match for the email.
        in: query
        name: email
        schema:
          description: Filter records with an exact match for the email.
          example: john.doe@example.com
          format: email
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records to these specific IDs.
        in: query
        name: id
        schema:
          description: Filter records to these specific IDs.
          items:
            type: string
          type: array
          uniqueItems: false
      - description: Filter records with a partial match for the name.
        in: query
        name: name
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records with an exact match for the login method.
        in: query
        name: login_method
        schema:
          description: Filter records with an exact match for the login method.
          enum:
          - standard
          - ldap
          - saml
          - oidc
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-userapp_User'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the users.
      tags:
      - user
    post:
      description: Create a new user.
      operationId: createUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/userapp.NewUser'
              description: New user
              summary: user
        description: New user
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/userapp.User'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Create a new user.
      tags:
      - user
  /v1/users/{user_id}:
    delete:
      description: Delete an existing user.
      parameters:
      - description: User ID
        in: path
        name: user_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "204":
          description: No Content
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Delete an existing user.
      tags:
      - user
    get:
      description: Retrieves an existing user given its ID.
      parameters:
      - description: User ID
        in: path
        name: user_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/userapp.User'
          description: OK
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves an existing user given its ID.
      tags:
      - user
    patch:
      description: Update an existing user.
      parameters:
      - description: User ID
        in: path
        name: user_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/userapp.UpdateUser'
              description: UpdatedAt user
              summary: user
        description: UpdatedAt user
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/userapp.User'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing user.
      tags:
      - user
  /v1/users/{user_id}/role:
    patch:
      description: Update an existing user's role.
      operationId: updateUserRole
      parameters:
      - description: User ID
        in: path
        name: user_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/userapp.UpdateUserRole'
              description: UpdatedAt role
              summary: user
        description: UpdatedAt role
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/userapp.User'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Update an existing user's role.
      tags:
      - user
  /v1/x/listeners/sftp:
    get:
      description: Retrieves all the sftp listeners.
      parameters:
      - description: Filter records with an exact match for the route name.
        in: query
        name: route_name
        schema:
          description: Filter records with an exact match for the route name.
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records by the route ID.
        in: query
        name: route_id
        schema:
          description: Filter records by the route ID.
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records with a partial match for the default outbound
          node name.
        in: query
        name: default_outbound_node_name_contains
        schema:
          description: Filter records with a partial match for the default outbound
            node name.
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records with a partial match for the route name.
        in: query
        name: route_name_contains
        schema:
          description: Filter records with a partial match for the route name.
          type: string
      - description: Filter records by the default outbound node ID.
        in: query
        name: default_outbound_node_id
        schema:
          description: Filter records by the default outbound node ID.
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      - description: Filter records with an exact match for the default outbound node
          name.
        in: query
        name: default_outbound_node_name
        schema:
          description: Filter records with an exact match for the default outbound
            node name.
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-vsftplistenerapp_Listener'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the sftp listeners.
      tags:
      - views
  /v1/x/listeners/sftp/{listener_id}/deployments:
    get:
      description: Retrieves all the sftp deployments.
      operationId: querySFTPDeploymentView
      parameters:
      - description: SFTP Listener ID
        in: path
        name: listener_id
        required: true
        schema:
          format: uuid
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records by the server ID.
        in: query
        name: server_id
        schema:
          description: Filter records by the server ID.
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      - description: Filter records with an exact match for the tunnel name.
        in: query
        name: tunnel_name
        schema:
          description: Filter records with an exact match for the tunnel name.
          type: string
      - description: Filter records with an exact match for the client name.
        in: query
        name: client_name
        schema:
          description: Filter records with an exact match for the client name.
          type: string
      - description: Filter records with a partial match for the LDAP tunnel name.
        in: query
        name: ldap_tunnel_name_contains
        schema:
          description: Filter records with a partial match for the LDAP tunnel name.
          type: string
      - description: Filter records with a partial match for the LDAP client name.
        in: query
        name: ldap_client_name_contains
        schema:
          description: Filter records with a partial match for the LDAP client name.
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records with a partial match for the tunnel name.
        in: query
        name: tunnel_name_contains
        schema:
          description: Filter records with a partial match for the tunnel name.
          type: string
      - description: Filter records by the client ID.
        in: query
        name: client_id
        schema:
          description: Filter records by the client ID.
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      - description: Filter records with a partial match for the client name.
        in: query
        name: client_name_contains
        schema:
          description: Filter records with a partial match for the client name.
          type: string
      - description: Filter records by the LDAP tunnel ID.
        in: query
        name: ldap_tunnel_id
        schema:
          description: Filter records by the LDAP tunnel ID.
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records with a partial match for the server name.
        in: query
        name: server_name_contains
        schema:
          description: Filter records with a partial match for the server name.
          type: string
      - description: Filter records by the tunnel ID.
        in: query
        name: tunnel_id
        schema:
          description: Filter records by the tunnel ID.
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      - description: Filter records with an exact match for the LDAP tunnel name.
        in: query
        name: ldap_tunnel_name
        schema:
          description: Filter records with an exact match for the LDAP tunnel name.
          type: string
      - description: Filter records by the LDAP client ID.
        in: query
        name: ldap_client_id
        schema:
          description: Filter records by the LDAP client ID.
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records with an exact match for the server name.
        in: query
        name: server_name
        schema:
          description: Filter records with an exact match for the server name.
          type: string
      - description: Filter records with an exact match for the LDAP client name.
        in: query
        name: ldap_client_name
        schema:
          description: Filter records with an exact match for the LDAP client name.
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-vsftpdeploymentapp_Deployment'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the sftp deployments.
      tags:
      - views
  /v1/x/routes/sftp/{route_id}/nodes/inbound:
    get:
      description: Retrieves all the sftp inbound nodes.
      parameters:
      - in: query
        name: page_size
        schema:
          default: "10"
          example: "10"
          type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        schema:
          description: Filter records with an exact match for the name.
          maxLength: 255
          minLength: 1
          type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        schema:
          description: Filter records with a partial match for the name.
          type: string
      - description: Filter records with an exact match for the rule name.
        in: query
        name: rule_name
        schema:
          description: Filter records with an exact match for the rule name.
          type: string
      - description: Filter records with a partial match for the host private key
          name.
        in: query
        name: host_private_key_name_contains
        schema:
          description: Filter records with a partial match for the host private key
            name.
          type: string
      - description: Filter records created on or after the specified date.
        in: query
        name: created_from
        schema:
          description: Filter records created on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: page
        schema:
          default: "1"
          example: "1"
          type: string
      - description: Filter records with a partial match for the IP filter name.
        in: query
        name: ip_filter_name_contains
        schema:
          description: Filter records with a partial match for the IP filter name.
          type: string
      - description: Filter records with a partial match for the rule name.
        in: query
        name: rule_name_contains
        schema:
          description: Filter records with a partial match for the rule name.
          type: string
      - description: Filter records created on or before the specified date.
        in: query
        name: created_to
        schema:
          description: Filter records created on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or after the specified date.
        in: query
        name: updated_from
        schema:
          description: Filter records updated on or after the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - description: Filter records updated on or before the specified date.
        in: query
        name: updated_to
        schema:
          description: Filter records updated on or before the specified date.
          example: "2010-01-20T15:04:05.999999999+07:00"
          format: date-time
          type: string
      - in: query
        name: order_by
        schema:
          example: id+
          format: field(+|-)
          type: string
      - description: Filter records by the IP filter ID.
        in: query
        name: ip_filter_id
        schema:
          description: Filter records by the IP filter ID.
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      - description: Filter records by the rule ID.
        in: query
        name: rule_id
        schema:
          description: Filter records by the rule ID.
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      - description: Filter records with an exact match for the IP filter name.
        in: query
        name: ip_filter_name
        schema:
          description: Filter records with an exact match for the IP filter name.
          type: string
      - description: Filter records by the host private key ID.
        in: query
        name: host_private_key_id
        schema:
          description: Filter records by the host private key ID.
          example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
          format: uuid
          type: string
      - description: Filter records with an exact match for the host private key name.
        in: query
        name: host_private_key_name
        schema:
          description: Filter records with an exact match for the host private key
            name.
          type: string
      - description: Route ID
        in: path
        name: route_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/query.Result-vsftpinboundnodeapp_InboundNode'
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errs.Error'
          description: Internal Server Error
      security:
      - Bearer: []
      summary: Retrieves all the sftp inbound nodes.
      tags:
      - views
