definitions:
  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
        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
        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
        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: '#/definitions/authmethodapp.Method'
      oidc:
        items:
          $ref: '#/definitions/authmethodapp.Method'
        type: array
      saml:
        items:
          $ref: '#/definitions/authmethodapp.Method'
        type: array
      standard:
        $ref: '#/definitions/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
        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
        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
        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
        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: '#/definitions/configapp.Account'
        type: array
      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: '#/definitions/configapp.AccountRepository'
        type: array
      caCertificates:
        items:
          $ref: '#/definitions/configapp.CACertificate'
        type: array
      ftp:
        $ref: '#/definitions/configapp.FTP'
      hsmConnections:
        items:
          $ref: '#/definitions/configapp.HSMConnection'
        type: array
      http:
        $ref: '#/definitions/configapp.HTTP'
      icapScanners:
        items:
          $ref: '#/definitions/configapp.ICAPScanner'
        type: array
      ipFilters:
        items:
          $ref: '#/definitions/configapp.IPFilter'
        type: array
      ldapConnections:
        items:
          $ref: '#/definitions/configapp.LDAPConnection'
        type: array
      ldapQueries:
        items:
          $ref: '#/definitions/configapp.LDAPQuery'
        type: array
      privateKeys:
        items:
          $ref: '#/definitions/configapp.PrivateKey'
        type: array
      publicKeys:
        items:
          $ref: '#/definitions/configapp.PublicKey'
        type: array
      security:
        $ref: '#/definitions/configapp.Security'
      server:
        $ref: '#/definitions/configapp.Server'
      sftp:
        $ref: '#/definitions/configapp.SFTP'
      tcp:
        $ref: '#/definitions/configapp.TCP'
      tlsCertificates:
        items:
          $ref: '#/definitions/configapp.TLSCertificate'
        type: array
    type: object
  configapp.FTP:
    properties:
      deployments:
        items:
          $ref: '#/definitions/configapp.FTPDeployment'
        type: array
      listeners:
        items:
          $ref: '#/definitions/configapp.FTPListener'
        type: array
      routes:
        items:
          $ref: '#/definitions/configapp.FTPRoute'
        type: array
      rules:
        items:
          $ref: '#/definitions/configapp.FTPRule'
        type: array
    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: '#/definitions/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: '#/definitions/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
      curvePreferences:
        items:
          type: string
        type: array
      maxVersion:
        type: string
      minVersion:
        type: string
    type: object
  configapp.FTPListener:
    properties:
      defaultOutboundNodeID:
        type: string
      description:
        example: Configuration entry
        maxLength: 255
        type: string
      healthcheckConfiguration:
        $ref: '#/definitions/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: '#/definitions/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: '#/definitions/configapp.FTPOutboundNodeTLSConfig'
    type: object
  configapp.FTPOutboundNodeFTPConfig:
    properties:
      encryptionMode:
        example: none
        type: string
    type: object
  configapp.FTPOutboundNodeTLSConfig:
    properties:
      cipherSuites:
        items:
          type: string
        type: array
      curvePreferences:
        items:
          type: string
        type: array
      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: '#/definitions/configapp.FTPInboundNode'
        type: array
      name:
        maxLength: 255
        minLength: 1
        type: string
      outboundNodes:
        items:
          $ref: '#/definitions/configapp.FTPOutboundNode'
        type: array
    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.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: '#/definitions/configapp.HTTPDeployment'
        type: array
      listeners:
        items:
          $ref: '#/definitions/configapp.HTTPListener'
        type: array
      routes:
        items:
          $ref: '#/definitions/configapp.HTTPRoute'
        type: array
      rules:
        items:
          $ref: '#/definitions/configapp.HTTPRule'
        type: array
    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: '#/definitions/configapp.HTTPInboundNodeTLSConfig'
    type: object
  configapp.HTTPInboundNodeTLSConfig:
    properties:
      cipherSuites:
        items:
          type: string
        type: array
      curvePreferences:
        items:
          type: string
        type: array
      maxVersion:
        type: string
      minVersion:
        type: string
    type: object
  configapp.HTTPListener:
    properties:
      defaultOutboundNodeID:
        type: string
      description:
        example: Configuration entry
        maxLength: 255
        type: string
      healthcheckConfiguration:
        $ref: '#/definitions/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: '#/definitions/configapp.HTTPOutboundNodeTLSConfig'
    type: object
  configapp.HTTPOutboundNodeTLSConfig:
    properties:
      cipherSuites:
        items:
          type: string
        type: array
      curvePreferences:
        items:
          type: string
        type: array
      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: '#/definitions/configapp.HTTPInboundNode'
        type: array
      name:
        maxLength: 255
        minLength: 1
        type: string
      outboundNodes:
        items:
          $ref: '#/definitions/configapp.HTTPOutboundNode'
        type: array
    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
    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: '#/definitions/configapp.IPRule'
        type: array
    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: '#/definitions/configapp.SFTPDeployment'
        type: array
      listeners:
        items:
          $ref: '#/definitions/configapp.SFTPListener'
        type: array
      routes:
        items:
          $ref: '#/definitions/configapp.SFTPRoute'
        type: array
      rules:
        items:
          $ref: '#/definitions/configapp.SFTPRule'
        type: array
    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: '#/definitions/configapp.SFTPInboundNodeSSHConfig'
    type: object
  configapp.SFTPInboundNodeSSHConfig:
    properties:
      banner:
        type: string
      ciphers:
        items:
          type: string
        type: array
      keyExchanges:
        items:
          type: string
        type: array
      macs:
        items:
          type: string
        type: array
      serverVersion:
        type: string
    type: object
  configapp.SFTPListener:
    properties:
      defaultOutboundNodeID:
        type: string
      description:
        example: Configuration entry
        maxLength: 255
        type: string
      healthcheckConfiguration:
        $ref: '#/definitions/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: '#/definitions/configapp.SFTPOutboundNodeSSHConfig'
    type: object
  configapp.SFTPOutboundNodeSSHConfig:
    properties:
      ciphers:
        items:
          type: string
        type: array
      clientVersion:
        type: string
      keyExchanges:
        items:
          type: string
        type: array
      macs:
        items:
          type: string
        type: array
    type: object
  configapp.SFTPRoute:
    properties:
      description:
        example: Configuration entry
        maxLength: 255
        type: string
      id:
        format: uuid
        type: string
      inboundNodes:
        items:
          $ref: '#/definitions/configapp.SFTPInboundNode'
        type: array
      name:
        maxLength: 255
        minLength: 1
        type: string
      outboundNodes:
        items:
          $ref: '#/definitions/configapp.SFTPOutboundNode'
        type: array
    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: '#/definitions/configapp.AuthBlockConfig'
      addressAuthBlockConfig:
        $ref: '#/definitions/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: '#/definitions/configapp.Tunnel'
        type: array
    type: object
  configapp.TCP:
    properties:
      deployments:
        items:
          $ref: '#/definitions/configapp.TCPDeployment'
        type: array
      listeners:
        items:
          $ref: '#/definitions/configapp.TCPListener'
        type: array
    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: '#/definitions/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: '#/definitions/configapp.Client'
        type: array
      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: '#/definitions/errs.FieldError'
        type: array
      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: '#/definitions/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: '#/definitions/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: '#/definitions/ftpinboundnodeapp.NewFTPConfiguration'
      ipFilterID:
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        type: string
      name:
        example: ftp-inboundnode-01
        maxLength: 255
        minLength: 1
        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: '#/definitions/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
      curvePreferences:
        example:
        - CurveP256
        - X25519
        items:
          enum:
          - CurveP256
          - CurveP384
          - CurveP521
          - X25519
          - X25519MLKEM768
          type: string
        type: array
      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: '#/definitions/ftpinboundnodeapp.UpdateFTPConfiguration'
      ipFilterID:
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        type: string
      name:
        example: ftp-inboundnode-01
        maxLength: 255
        minLength: 1
        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: '#/definitions/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
      curvePreferences:
        example:
        - CurveP256
        - X25519
        items:
          enum:
          - CurveP256
          - CurveP384
          - CurveP521
          - X25519
          - X25519MLKEM768
          type: string
        type: array
      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: '#/definitions/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: '#/definitions/gitlab_udmg_stonebranch_com_mft_udmg-proxy_internal_app_types_healthcheck.Configuration'
      name:
        example: ftp-listener-01
        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
    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: '#/definitions/gitlab_udmg_stonebranch_com_mft_udmg-proxy_internal_app_types_healthcheck.UpdateConfiguration'
      name:
        example: ftp-listener-01
        maxLength: 255
        minLength: 1
        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: '#/definitions/ftpoutboundnodeapp.NewFTPConfiguration'
      hostname:
        example: localhost
        type: string
      name:
        example: ftp-outboundnode-01
        maxLength: 255
        minLength: 1
        type: string
      port:
        example: "8443"
        type: string
      tlsCertificateID:
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        type: string
      tlsConfiguration:
        $ref: '#/definitions/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: '#/definitions/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: '#/definitions/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
      curvePreferences:
        example:
        - CurveP256
        - X25519
        items:
          enum:
          - CurveP256
          - CurveP384
          - CurveP521
          - X25519
          - X25519MLKEM768
          type: string
        type: array
      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: '#/definitions/ftpoutboundnodeapp.UpdateFTPConfiguration'
      hostname:
        type: string
      name:
        maxLength: 255
        minLength: 1
        type: string
      port:
        type: string
      tlsCertificateID:
        type: string
      tlsConfiguration:
        $ref: '#/definitions/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
      curvePreferences:
        example:
        - CurveP256
        - X25519
        items:
          type: string
        type: array
      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
        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
        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
        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
        type: string
      outboundCredentialsSource:
        enum:
        - passthrough
        - dedicated
        example: passthrough
        type: string
      password:
        example: johnpassword
        type: string
      username:
        example: johndoe
        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
        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
        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: '#/definitions/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
        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: '#/definitions/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
      curvePreferences:
        example:
        - CurveP256
        - X25519
        items:
          enum:
          - CurveP256
          - CurveP384
          - CurveP521
          - X25519
          - X25519MLKEM768
          type: string
        type: array
      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
        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: '#/definitions/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
      curvePreferences:
        example:
        - CurveP256
        - X25519
        items:
          enum:
          - CurveP256
          - CurveP384
          - CurveP521
          - X25519
          - X25519MLKEM768
          type: string
        type: array
      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: '#/definitions/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: '#/definitions/gitlab_udmg_stonebranch_com_mft_udmg-proxy_internal_app_types_healthcheck.Configuration'
      name:
        example: http-listener-01
        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
    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: '#/definitions/gitlab_udmg_stonebranch_com_mft_udmg-proxy_internal_app_types_healthcheck.UpdateConfiguration'
      name:
        example: http-listener-01
        maxLength: 255
        minLength: 1
        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
        type: string
      port:
        example: "8443"
        type: string
      tlsCertificateID:
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        type: string
      tlsConfiguration:
        $ref: '#/definitions/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: '#/definitions/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
      curvePreferences:
        example:
        - CurveP256
        - X25519
        items:
          enum:
          - CurveP256
          - CurveP384
          - CurveP521
          - X25519
          - X25519MLKEM768
          type: string
        type: array
      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: '#/definitions/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
      curvePreferences:
        example:
        - CurveP256
        - X25519
        items:
          type: string
        type: array
      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
        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
        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
        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
        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
    required:
    - errorPolicy
    - hostname
    - maxFileSize
    - name
    - port
    type: object
  icapscannerapp.Options:
    properties:
      allow:
        type: string
      isTag:
        type: string
      methods:
        items:
          type: string
        type: array
      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
      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: '#/definitions/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
    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
        type: string
    required:
    - defaultAction
    - name
    type: object
  ipfilterapp.TestResult:
    properties:
      allowed:
        type: boolean
      message:
        type: string
      rule:
        $ref: '#/definitions/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
        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
        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
        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
        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
        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.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:
      ftpListeners:
        items:
          $ref: '#/definitions/monitorapp.FTPListener'
        type: array
      hostname:
        type: string
      httpListeners:
        items:
          $ref: '#/definitions/monitorapp.HTTPListener'
        type: array
      name:
        maxLength: 255
        minLength: 1
        type: string
      port:
        type: string
      sftpListeners:
        items:
          $ref: '#/definitions/monitorapp.SFTPListener'
        type: array
      tcpListeners:
        items:
          $ref: '#/definitions/monitorapp.TCPListener'
        type: array
      tunnels:
        items:
          $ref: '#/definitions/monitorapp.Tunnel'
        type: array
    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: '#/definitions/monitorapp.Client'
        type: array
      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
        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
        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
        type: string
      scopes:
        items:
          type: string
        type: array
      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
      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
        type: string
      scopes:
        items:
          type: string
        type: array
      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
        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
        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
        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
        type: string
    type: object
  query.Result-accountapp_Account:
    properties:
      items:
        items:
          $ref: '#/definitions/accountapp.Account'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-accountrepositoryapp_AccountRepository:
    properties:
      items:
        items:
          $ref: '#/definitions/accountrepositoryapp.AccountRepository'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-cacertapp_Certificate:
    properties:
      items:
        items:
          $ref: '#/definitions/cacertapp.Certificate'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-clientapp_Client:
    properties:
      items:
        items:
          $ref: '#/definitions/clientapp.Client'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-configapp_Configuration:
    properties:
      items:
        items:
          $ref: '#/definitions/configapp.Configuration'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-ftpdeploymentapp_Deployment:
    properties:
      items:
        items:
          $ref: '#/definitions/ftpdeploymentapp.Deployment'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-ftpinboundnodeapp_InboundNode:
    properties:
      items:
        items:
          $ref: '#/definitions/ftpinboundnodeapp.InboundNode'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-ftplistenerapp_Listener:
    properties:
      items:
        items:
          $ref: '#/definitions/ftplistenerapp.Listener'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-ftpoutboundnodeapp_OutboundNode:
    properties:
      items:
        items:
          $ref: '#/definitions/ftpoutboundnodeapp.OutboundNode'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-ftprouteapp_Route:
    properties:
      items:
        items:
          $ref: '#/definitions/ftprouteapp.Route'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-ftpruleapp_Rule:
    properties:
      items:
        items:
          $ref: '#/definitions/ftpruleapp.Rule'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-hsmconnectionapp_HSMConnection:
    properties:
      items:
        items:
          $ref: '#/definitions/hsmconnectionapp.HSMConnection'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-httpdeploymentapp_Deployment:
    properties:
      items:
        items:
          $ref: '#/definitions/httpdeploymentapp.Deployment'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-httpinboundnodeapp_InboundNode:
    properties:
      items:
        items:
          $ref: '#/definitions/httpinboundnodeapp.InboundNode'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-httplistenerapp_Listener:
    properties:
      items:
        items:
          $ref: '#/definitions/httplistenerapp.Listener'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-httpoutboundnodeapp_OutboundNode:
    properties:
      items:
        items:
          $ref: '#/definitions/httpoutboundnodeapp.OutboundNode'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-httprouteapp_Route:
    properties:
      items:
        items:
          $ref: '#/definitions/httprouteapp.Route'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-httpruleapp_Rule:
    properties:
      items:
        items:
          $ref: '#/definitions/httpruleapp.Rule'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-icapscannerapp_Scanner:
    properties:
      items:
        items:
          $ref: '#/definitions/icapscannerapp.Scanner'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-ipfilterapp_Filter:
    properties:
      items:
        items:
          $ref: '#/definitions/ipfilterapp.Filter'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-ipruleapp_Rule:
    properties:
      items:
        items:
          $ref: '#/definitions/ipruleapp.Rule'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-kmsapp_Key:
    properties:
      items:
        items:
          $ref: '#/definitions/kmsapp.Key'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-ldapconnectionapp_LDAPConnection:
    properties:
      items:
        items:
          $ref: '#/definitions/ldapconnectionapp.LDAPConnection'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-ldapqueryapp_LDAPQuery:
    properties:
      items:
        items:
          $ref: '#/definitions/ldapqueryapp.LDAPQuery'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-oidcauthmethodapp_AuthMethod:
    properties:
      items:
        items:
          $ref: '#/definitions/oidcauthmethodapp.AuthMethod'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-oidcproviderapp_Provider:
    properties:
      items:
        items:
          $ref: '#/definitions/oidcproviderapp.Provider'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-privkeyapp_Key:
    properties:
      items:
        items:
          $ref: '#/definitions/privkeyapp.Key'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-pubkeyapp_Key:
    properties:
      items:
        items:
          $ref: '#/definitions/pubkeyapp.Key'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-samlauthmethodapp_AuthMethod:
    properties:
      items:
        items:
          $ref: '#/definitions/samlauthmethodapp.AuthMethod'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-samlproviderapp_Provider:
    properties:
      items:
        items:
          $ref: '#/definitions/samlproviderapp.Provider'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-serverapp_Server:
    properties:
      items:
        items:
          $ref: '#/definitions/serverapp.Server'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-sftpdeploymentapp_Deployment:
    properties:
      items:
        items:
          $ref: '#/definitions/sftpdeploymentapp.Deployment'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-sftpinboundnodeapp_InboundNode:
    properties:
      items:
        items:
          $ref: '#/definitions/sftpinboundnodeapp.InboundNode'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-sftplistenerapp_Listener:
    properties:
      items:
        items:
          $ref: '#/definitions/sftplistenerapp.Listener'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-sftpoutboundnodeapp_OutboundNode:
    properties:
      items:
        items:
          $ref: '#/definitions/sftpoutboundnodeapp.OutboundNode'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-sftprouteapp_Route:
    properties:
      items:
        items:
          $ref: '#/definitions/sftprouteapp.Route'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-sftpruleapp_Rule:
    properties:
      items:
        items:
          $ref: '#/definitions/sftpruleapp.Rule'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-tcpdeploymentapp_Deployment:
    properties:
      items:
        items:
          $ref: '#/definitions/tcpdeploymentapp.Deployment'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-tcplistenerapp_Listener:
    properties:
      items:
        items:
          $ref: '#/definitions/tcplistenerapp.Listener'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-tlscertapp_Certificate:
    properties:
      items:
        items:
          $ref: '#/definitions/tlscertapp.Certificate'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-tunnelapp_Tunnel:
    properties:
      items:
        items:
          $ref: '#/definitions/tunnelapp.Tunnel'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-userapp_User:
    properties:
      items:
        items:
          $ref: '#/definitions/userapp.User'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-vkmsusageapp_EncryptionKeyUsage:
    properties:
      items:
        items:
          $ref: '#/definitions/vkmsusageapp.EncryptionKeyUsage'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-vsftpdeploymentapp_Deployment:
    properties:
      items:
        items:
          $ref: '#/definitions/vsftpdeploymentapp.Deployment'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-vsftpinboundnodeapp_InboundNode:
    properties:
      items:
        items:
          $ref: '#/definitions/vsftpinboundnodeapp.InboundNode'
        type: array
      page:
        type: integer
      pageSize:
        type: integer
      totalItems:
        type: integer
    type: object
  query.Result-vsftplistenerapp_Listener:
    properties:
      items:
        items:
          $ref: '#/definitions/vsftplistenerapp.Listener'
        type: array
      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
        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
        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
        type: string
      signedRequests:
        type: boolean
      signedRequestsCanonicalizer:
        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
      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
        type: string
      signedRequests:
        type: boolean
      signedRequestsCanonicalizer:
        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: '#/definitions/securityapp.AuthBlockConfig'
      addressAuthBlockConfig:
        $ref: '#/definitions/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: '#/definitions/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: '#/definitions/securityapp.UpdateAuthBlockConfig'
      addressAuthBlockConfig:
        $ref: '#/definitions/securityapp.UpdateAuthBlockConfig'
      ipFilterID:
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        type: string
      userAuthBlockConfig:
        $ref: '#/definitions/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
        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
        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: '#/definitions/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
        type: string
      priority:
        example: 10
        maximum: 100000
        minimum: 1
        type: integer
      ruleID:
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        type: string
      sshConfiguration:
        $ref: '#/definitions/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
      keyExchanges:
        example:
        - curve25519-sha256
        - diffie-hellman-group14-sha256
        items:
          type: string
        type: array
      macs:
        example:
        - hmac-sha2-256
        - hmac-sha2-512
        items:
          type: string
        type: array
      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
        type: string
      priority:
        example: 10
        maximum: 100000
        minimum: 1
        type: integer
      ruleID:
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        type: string
      sshConfiguration:
        $ref: '#/definitions/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
      keyExchanges:
        example:
        - curve25519-sha256
        - diffie-hellman-group14-sha256
        items:
          type: string
        type: array
      macs:
        example:
        - hmac-sha2-256
        - hmac-sha2-512
        items:
          type: string
        type: array
      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: '#/definitions/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: '#/definitions/gitlab_udmg_stonebranch_com_mft_udmg-proxy_internal_app_types_healthcheck.Configuration'
      name:
        example: sftp-listener-01
        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
    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: '#/definitions/gitlab_udmg_stonebranch_com_mft_udmg-proxy_internal_app_types_healthcheck.UpdateConfiguration'
      name:
        example: sftp-listener-01
        maxLength: 255
        minLength: 1
        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
        type: string
      port:
        example: "2222"
        type: string
      sshConfiguration:
        $ref: '#/definitions/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: '#/definitions/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
      clientVersion:
        example: SSH-2.0-UDMG-Proxy-1.0
        type: string
      keyExchanges:
        example:
        - curve25519-sha256
        - diffie-hellman-group14-sha256
        items:
          type: string
        type: array
      macs:
        example:
        - hmac-sha2-256
        - hmac-sha2-512
        items:
          type: string
        type: array
    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: '#/definitions/sftpoutboundnodeapp.UpdateSSHConfiguration'
    type: object
  sftpoutboundnodeapp.UpdateSSHConfiguration:
    properties:
      ciphers:
        example:
        - aes256-gcm@openssh.com
        - chacha20-poly1305@openssh.com
        items:
          type: string
        type: array
      clientVersion:
        example: SSH-2.0-UDMG-Proxy-1.0
        type: string
      keyExchanges:
        example:
        - curve25519-sha256
        - diffie-hellman-group14-sha256
        items:
          type: string
        type: array
      macs:
        example:
        - hmac-sha2-256
        - hmac-sha2-512
        items:
          type: string
        type: array
    type: object
  sftprouteapp.NewRoute:
    properties:
      description:
        example: Route configuration
        maxLength: 255
        type: string
      name:
        example: sftp-route-01
        maxLength: 255
        minLength: 1
        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
        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
        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
        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: '#/definitions/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: '#/definitions/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
        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: '#/definitions/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
        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
        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
        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
        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
        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
      username:
        example: john.doe
        maxLength: 255
        minLength: 1
        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
    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
      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: '#/definitions/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
      keyExchanges:
        example:
        - curve25519-sha256
        - diffie-hellman-group14-sha256
        items:
          type: string
        type: array
      macs:
        example:
        - hmac-sha2-256
        - hmac-sha2-512
        items:
          type: string
        type: array
      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
host: localhost:8800
info:
  contact: {}
  description: UDMG Secure Proxy Manager is used to manage UDMG Proxy.
  title: UDMG Secure Proxy Manager API
  version: "3.3.0"
paths:
  /v1/account-repositories:
    get:
      consumes:
      - application/json
      description: Retrieves all the account repositories.
      operationId: queryAccountRepository
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-accountrepositoryapp_AccountRepository'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the account repositories.
      tags:
      - account_repository
    post:
      consumes:
      - application/json
      description: Create a new account repository.
      operationId: createAccountRepository
      parameters:
      - description: New account repository
        in: body
        name: account
        required: true
        schema:
          $ref: '#/definitions/accountrepositoryapp.NewAccountRepository'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/accountrepositoryapp.AccountRepository'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new account repository.
      tags:
      - account_repository
  /v1/account-repositories/{account_repository_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing account repository.
      operationId: deleteAccountRepository
      parameters:
      - description: Account Repository ID
        format: uuid
        in: path
        name: account_repository_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Delete an existing account repository.
      tags:
      - account_repository
    get:
      consumes:
      - application/json
      description: Retrieves an existing account repository given its ID.
      operationId: getAccountRepositoryByID
      parameters:
      - description: Account Repository ID
        format: uuid
        in: path
        name: account_repository_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/accountrepositoryapp.AccountRepository'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing account repository given its ID.
      tags:
      - account_repository
    patch:
      consumes:
      - application/json
      description: Update an existing account repository.
      operationId: updateAccountRepository
      parameters:
      - description: Account Repository ID
        format: uuid
        in: path
        name: account_repository_id
        required: true
        type: string
      - description: UpdatedAt account repository
        in: body
        name: account
        required: true
        schema:
          $ref: '#/definitions/accountrepositoryapp.UpdateAccountRepository'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/accountrepositoryapp.AccountRepository'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing account repository.
      tags:
      - account_repository
  /v1/account-repositories/{account_repository_id}/accounts:
    get:
      consumes:
      - application/json
      description: Retrieves all the accounts.
      operationId: queryAccount
      parameters:
      - description: Account Repository ID
        format: uuid
        in: path
        name: account_repository_id
        required: true
        type: string
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records based on whether they are enabled.
        in: query
        name: enabled
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      - description: Filter records with an exact match for the username.
        in: query
        name: username
        type: string
      - description: Filter records with a partial match for the username.
        in: query
        name: username_contains
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-accountapp_Account'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the accounts.
      tags:
      - account
    post:
      consumes:
      - application/json
      description: Create a new account.
      operationId: createAccount
      parameters:
      - description: Account Repository ID
        format: uuid
        in: path
        name: account_repository_id
        required: true
        type: string
      - description: New account
        in: body
        name: account
        required: true
        schema:
          $ref: '#/definitions/accountapp.NewAccount'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/accountapp.Account'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new account.
      tags:
      - account
  /v1/account-repositories/{account_repository_id}/accounts/{account_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing account.
      operationId: deleteAccount
      parameters:
      - description: Account Repository ID
        format: uuid
        in: path
        name: account_repository_id
        required: true
        type: string
      - description: Account ID
        format: uuid
        in: path
        name: account_id
        required: true
        type: string
      - description: UpdatedAt account
        in: body
        name: account
        required: true
        schema:
          $ref: '#/definitions/accountapp.UpdateAccount'
      produces:
      - application/json
      responses:
        "204":
          description: No Content
          schema:
            $ref: '#/definitions/accountapp.Account'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Delete an existing account.
      tags:
      - account
    get:
      consumes:
      - application/json
      description: Retrieves an existing account given its ID.
      operationId: getAccountByID
      parameters:
      - description: Account Repository ID
        format: uuid
        in: path
        name: account_repository_id
        required: true
        type: string
      - description: Account ID
        format: uuid
        in: path
        name: account_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/accountapp.Account'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing account given its ID.
      tags:
      - account
    patch:
      consumes:
      - application/json
      description: Update an existing account.
      operationId: updateAccount
      parameters:
      - description: Account Repository ID
        format: uuid
        in: path
        name: account_repository_id
        required: true
        type: string
      - description: Account ID
        format: uuid
        in: path
        name: account_id
        required: true
        type: string
      - description: UpdatedAt account
        in: body
        name: account
        required: true
        schema:
          $ref: '#/definitions/accountapp.UpdateAccount'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/accountapp.Account'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/authapp.TokenResponse'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        type: string
      produces:
      - application/json
      responses:
        "302":
          description: Found
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      summary: OIDC Callback.
      tags:
      - auth
  /v1/auth/refresh:
    post:
      description: Refresh.
      operationId: refreshToken
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/authapp.TokenResponse'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        type: string
      produces:
      - application/json
      responses:
        "302":
          description: Found
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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 after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records based on whether they are enabled.
        in: query
        name: enabled
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-cacertapp_Certificate'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the certificates of a certificate repository.
      tags:
      - ca_certificate
    post:
      consumes:
      - application/json
      description: Create a new certificate.
      operationId: createCACertificate
      parameters:
      - description: New certificate
        in: body
        name: certificate
        required: true
        schema:
          $ref: '#/definitions/cacertapp.NewCertificate'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cacertapp.Certificate'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: certificate_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: certificate_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cacertapp.Certificate'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing certificate given its ID.
      tags:
      - ca_certificate
    patch:
      consumes:
      - application/json
      description: Update an existing certificate.
      operationId: updateCACertificate
      parameters:
      - description: Certificate ID
        format: uuid
        in: path
        name: certificate_id
        required: true
        type: string
      - description: UpdatedAt certificate
        in: body
        name: certificate
        required: true
        schema:
          $ref: '#/definitions/cacertapp.UpdateCertificate'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cacertapp.Certificate'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records based on whether they are enabled.
        in: query
        name: enabled
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-tlscertapp_Certificate'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the certificates of a certificate repository.
      tags:
      - tls_certificate
    post:
      consumes:
      - application/json
      description: Create a new certificate.
      operationId: createTLSCertificate
      parameters:
      - description: New certificate
        in: body
        name: certificate
        required: true
        schema:
          $ref: '#/definitions/tlscertapp.NewCertificate'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tlscertapp.Certificate'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: certificate_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: certificate_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tlscertapp.Certificate'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing certificate given its ID.
      tags:
      - tls_certificate
    patch:
      consumes:
      - application/json
      description: Update an existing certificate.
      operationId: updateTLSCertificate
      parameters:
      - description: Certificate ID
        format: uuid
        in: path
        name: certificate_id
        required: true
        type: string
      - description: UpdatedAt certificate
        in: body
        name: certificate
        required: true
        schema:
          $ref: '#/definitions/tlscertapp.UpdateCertificate'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tlscertapp.Certificate'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing certificate.
      tags:
      - tls_certificate
  /v1/hsm/connections:
    get:
      consumes:
      - application/json
      description: Retrieves all the HSM connections.
      operationId: queryHSMConnection
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-hsmconnectionapp_HSMConnection'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the HSM connections.
      tags:
      - hsm-connection
    post:
      consumes:
      - application/json
      description: Create a new HSM connection.
      operationId: createHSMConnection
      parameters:
      - description: New connection
        in: body
        name: connection
        required: true
        schema:
          $ref: '#/definitions/hsmconnectionapp.NewHSMConnection'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/hsmconnectionapp.HSMConnection'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new HSM connection.
      tags:
      - hsm-connection
  /v1/hsm/connections/{connection_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing HSM connection.
      operationId: deleteHSMConnection
      parameters:
      - description: HSM Connection ID
        format: uuid
        in: path
        name: connection_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: connection_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/hsmconnectionapp.HSMConnection'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing HSM connection given its ID.
      tags:
      - hsm-connection
    patch:
      consumes:
      - application/json
      description: Update an existing HSM connection.
      operationId: updateHSMConnection
      parameters:
      - description: HSM Connection ID
        format: uuid
        in: path
        name: connection_id
        required: true
        type: string
      - description: Updated HSM connection
        in: body
        name: connection
        schema:
          $ref: '#/definitions/hsmconnectionapp.UpdateHSMConnection'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/hsmconnectionapp.HSMConnection'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing HSM connection.
      tags:
      - hsm-connection
  /v1/icap/scanner/{scanner_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing ICAP scanner.
      operationId: deleteICAPScanner
      parameters:
      - description: ICAP scanner ID
        format: uuid
        in: path
        name: scanner_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Delete an existing ICAP scanner.
      tags:
      - icap-scanner
  /v1/icap/scanners:
    get:
      consumes:
      - application/json
      description: Retrieves all the ICAP scanners.
      operationId: queryICAPScanner
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-icapscannerapp_Scanner'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the ICAP scanners.
      tags:
      - icap-scanner
    post:
      consumes:
      - application/json
      description: Create a new ICAP scanner.
      operationId: createICAPScanner
      parameters:
      - description: New scanner
        in: body
        name: scanner
        required: true
        schema:
          $ref: '#/definitions/icapscannerapp.NewScanner'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/icapscannerapp.Scanner'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: scanner_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/icapscannerapp.Scanner'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing ICAP scanner given its ID.
      tags:
      - icap-scanner
    patch:
      consumes:
      - application/json
      description: Update an existing ICAP scanner.
      operationId: updateICAPScanner
      parameters:
      - description: ICAP scanner ID
        format: uuid
        in: path
        name: scanner_id
        required: true
        type: string
      - description: Updated ICAP scanner
        in: body
        name: scanner
        schema:
          $ref: '#/definitions/icapscannerapp.UpdateScanner'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/icapscannerapp.Scanner'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: scanner_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/icapscannerapp.Test'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Perform a connection test to an ICAP server.
      tags:
      - icap-scanner
  /v1/ip-filters:
    get:
      consumes:
      - application/json
      description: Retrieves all the IP filters.
      operationId: queryIPFilter
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-ipfilterapp_Filter'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the IP filters.
      tags:
      - ip_filter
    post:
      consumes:
      - application/json
      description: Create a new IP filter.
      operationId: createIPFilter
      parameters:
      - description: New IP filter
        in: body
        name: ip_filter
        required: true
        schema:
          $ref: '#/definitions/ipfilterapp.NewFilter'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ipfilterapp.Filter'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new IP filter.
      tags:
      - ip_filter
  /v1/ip-filters/{ip_filter_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing IP filter.
      operationId: deleteIPFilter
      parameters:
      - description: IP filter ID
        format: uuid
        in: path
        name: ip_filter_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Delete an existing IP filter.
      tags:
      - ip_filter
    get:
      consumes:
      - application/json
      description: Retrieves an existing IP filter given its ID.
      operationId: getIPFilterByID
      parameters:
      - description: IP filter ID
        format: uuid
        in: path
        name: ip_filter_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ipfilterapp.Filter'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing IP filter given its ID.
      tags:
      - ip_filter
    patch:
      consumes:
      - application/json
      description: Update an existing IP filter.
      operationId: updateIPFilter
      parameters:
      - description: IP filter ID
        format: uuid
        in: path
        name: ip_filter_id
        required: true
        type: string
      - description: Updated IP filter
        in: body
        name: ip_filter
        required: true
        schema:
          $ref: '#/definitions/ipfilterapp.UpdateFilter'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ipfilterapp.Filter'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing IP filter.
      tags:
      - ip_filter
  /v1/ip-filters/{ip_filter_id}/rules:
    get:
      consumes:
      - application/json
      description: Retrieves all the IP rules.
      operationId: queryIPRule
      parameters:
      - description: IP filter ID
        format: uuid
        in: path
        name: ip_filter_id
        required: true
        type: string
      - description: Filter records based on the action.
        enum:
        - allow
        - block
        in: query
        name: action
        type: string
      - description: Filter records with an exact match for the address.
        in: query
        name: address
        type: string
      - description: Filter records with a partial match for the address.
        in: query
        name: address_contains
        type: string
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-ipruleapp_Rule'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the IP rules.
      tags:
      - ip_rule
    post:
      consumes:
      - application/json
      description: Create a new IP rule.
      operationId: createIPRule
      parameters:
      - description: IP filter ID
        format: uuid
        in: path
        name: ip_filter_id
        required: true
        type: string
      - description: New IP rule
        in: body
        name: ip_rule
        required: true
        schema:
          $ref: '#/definitions/ipruleapp.NewRule'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ipruleapp.Rule'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new IP rule.
      tags:
      - ip_rule
  /v1/ip-filters/{ip_filter_id}/rules/{ip_rule_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing IP rule.
      operationId: deleteIPRule
      parameters:
      - description: IP filter ID
        format: uuid
        in: path
        name: ip_filter_id
        required: true
        type: string
      - description: IP rule ID
        format: uuid
        in: path
        name: ip_rule_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Delete an existing IP rule.
      tags:
      - ip_rule
    get:
      consumes:
      - application/json
      description: Retrieves an existing IP rule given its ID.
      operationId: getIPRuleByID
      parameters:
      - description: IP filter ID
        format: uuid
        in: path
        name: ip_filter_id
        required: true
        type: string
      - description: IP rule ID
        format: uuid
        in: path
        name: ip_rule_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ipruleapp.Rule'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing IP rule given its ID.
      tags:
      - ip_rule
    patch:
      consumes:
      - application/json
      description: Update an existing IP rule.
      operationId: updateIPRule
      parameters:
      - description: IP filter ID
        format: uuid
        in: path
        name: ip_filter_id
        required: true
        type: string
      - description: IP rule ID
        format: uuid
        in: path
        name: ip_rule_id
        required: true
        type: string
      - description: Updated IP rule
        in: body
        name: ip_rule
        required: true
        schema:
          $ref: '#/definitions/ipruleapp.UpdateRule'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ipruleapp.Rule'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing IP rule.
      tags:
      - ip_rule
  /v1/ip-filters/{ip_filter_id}/test:
    post:
      consumes:
      - application/json
      description: Perform a IP filtering test.
      operationId: testIPFilter
      parameters:
      - description: IP filter ID
        format: uuid
        in: path
        name: ip_filter_id
        required: true
        type: string
      - description: IP address
        format: ip
        in: query
        name: ip
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ipfilterapp.TestResult'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records based on whether they are enabled.
        in: query
        name: enabled
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-privkeyapp_Key'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the private keys of a private key repository.
      tags:
      - private_key
    post:
      consumes:
      - application/json
      description: Create a new private key.
      operationId: createPrivateKey
      parameters:
      - description: New private key
        in: body
        name: key
        required: true
        schema:
          $ref: '#/definitions/privkeyapp.NewKey'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/privkeyapp.Key'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: key_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: key_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/privkeyapp.Key'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing private key given its ID.
      tags:
      - private_key
    patch:
      consumes:
      - application/json
      description: Update an existing private key.
      operationId: updatePrivateKey
      parameters:
      - description: Private key ID
        format: uuid
        in: path
        name: key_id
        required: true
        type: string
      - description: UpdatedAt private key
        in: body
        name: key
        required: true
        schema:
          $ref: '#/definitions/privkeyapp.UpdateKey'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/privkeyapp.Key'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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 created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records based on whether they are enabled.
        in: query
        name: enabled
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-pubkeyapp_Key'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the public keys of a public key repository.
      tags:
      - public_key
    post:
      consumes:
      - application/json
      description: Create a new public key.
      operationId: createPublicKey
      parameters:
      - description: New public key
        in: body
        name: key
        required: true
        schema:
          $ref: '#/definitions/pubkeyapp.NewKey'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/pubkeyapp.Key'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: key_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: key_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/pubkeyapp.Key'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing public key given its ID.
      tags:
      - public_key
    patch:
      consumes:
      - application/json
      description: Update an existing public key.
      operationId: updatePublicKey
      parameters:
      - description: Public key ID
        format: uuid
        in: path
        name: key_id
        required: true
        type: string
      - description: UpdatedAt public key
        in: body
        name: key
        required: true
        schema:
          $ref: '#/definitions/pubkeyapp.UpdateKey'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/pubkeyapp.Key'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing public key.
      tags:
      - public_key
  /v1/ldap/connections:
    get:
      consumes:
      - application/json
      description: Retrieves all the LDAP connections.
      operationId: queryLDAPConnection
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-ldapconnectionapp_LDAPConnection'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the LDAP connections.
      tags:
      - ldap-connection
    post:
      consumes:
      - application/json
      description: Create a new LDAP connection.
      operationId: createLDAPConnection
      parameters:
      - description: New connection
        in: body
        name: connection
        required: true
        schema:
          $ref: '#/definitions/ldapconnectionapp.NewLDAPConnection'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ldapconnectionapp.LDAPConnection'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new LDAP connection.
      tags:
      - ldap-connection
  /v1/ldap/connections/{connection_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing LDAP connection.
      operationId: deleteLDAPConnection
      parameters:
      - description: LDAP Connection ID
        format: uuid
        in: path
        name: connection_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: connection_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ldapconnectionapp.LDAPConnection'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing LDAP connection given its ID.
      tags:
      - ldap-connection
    patch:
      consumes:
      - application/json
      description: Update an existing LDAP connection.
      operationId: updateLDAPConnection
      parameters:
      - description: LDAP Connection ID
        format: uuid
        in: path
        name: connection_id
        required: true
        type: string
      - description: UpdatedAt LDAP connection
        in: body
        name: connection
        schema:
          $ref: '#/definitions/ldapconnectionapp.UpdateLDAPConnection'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ldapconnectionapp.LDAPConnection'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing LDAP connection.
      tags:
      - ldap-connection
  /v1/ldap/connections/{connection_id}/test:
    post:
      consumes:
      - application/json
      description: Perform a connection test to an LDAP server.
      parameters:
      - description: LDAP Connection ID
        format: uuid
        in: path
        name: connection_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ldaptestapp.TestResult'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Perform a connection test to an LDAP server.
      tags:
      - ldap-connection
  /v1/ldap/queries:
    get:
      consumes:
      - application/json
      description: Retrieves all the LDAP querys.
      operationId: queryLDAPQuery
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-ldapqueryapp_LDAPQuery'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the LDAP querys.
      tags:
      - ldap-query
    post:
      consumes:
      - application/json
      description: Create a new LDAP query.
      operationId: createLDAPQuery
      parameters:
      - description: New query
        in: body
        name: query
        required: true
        schema:
          $ref: '#/definitions/ldapqueryapp.NewLDAPQuery'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ldapqueryapp.LDAPQuery'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new LDAP query.
      tags:
      - ldap-query
  /v1/ldap/queries/{query_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing LDAP query.
      operationId: deleteLDAPQuery
      parameters:
      - description: LDAP Query ID
        format: uuid
        in: path
        name: query_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: query_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ldapqueryapp.LDAPQuery'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing LDAP query given its ID.
      tags:
      - ldap-query
    patch:
      consumes:
      - application/json
      description: Update an existing LDAP query.
      operationId: updateLDAPQuery
      parameters:
      - description: LDAP Query ID
        format: uuid
        in: path
        name: query_id
        required: true
        type: string
      - description: UpdatedAt LDAP query
        in: body
        name: query
        schema:
          $ref: '#/definitions/ldapqueryapp.UpdateLDAPQuery'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ldapqueryapp.LDAPQuery'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing LDAP query.
      tags:
      - ldap-query
  /v1/ldap/queries/{query_id}/test:
    post:
      consumes:
      - application/json
      description: Perform a credentials test to an LDAP server.
      parameters:
      - description: LDAP Connection ID
        format: uuid
        in: query
        name: ldap_connection_id
        required: true
        type: string
      - description: LDAP Query ID
        format: uuid
        in: path
        name: query_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ldaptestapp.TestResult'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Perform a credentials test to an LDAP server.
      tags:
      - ldap-query
  /v1/listeners/ftp:
    get:
      consumes:
      - application/json
      description: Retrieves all the ftp listeners.
      operationId: queryFTPListener
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-ftplistenerapp_Listener'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the ftp listeners.
      tags:
      - ftp-listener
    post:
      consumes:
      - application/json
      description: Create a new ftp listener.
      operationId: createFTPListener
      parameters:
      - description: New listener
        in: body
        name: server
        required: true
        schema:
          $ref: '#/definitions/ftplistenerapp.NewListener'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ftplistenerapp.Listener'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new ftp listener.
      tags:
      - ftp-listener
  /v1/listeners/ftp/{listener_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing ftp listener.
      operationId: deleteFTPListener
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ftplistenerapp.Listener'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing ftp listener given its ID.
      tags:
      - ftp-listener
    patch:
      consumes:
      - application/json
      description: Update an existing ftp listener.
      operationId: updateFTPListener
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: UpdatedAt listener
        in: body
        name: server
        schema:
          $ref: '#/definitions/ftplistenerapp.UpdateListener'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ftplistenerapp.Listener'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing ftp listener.
      tags:
      - ftp-listener
  /v1/listeners/ftp/{listener_id}/deployments:
    get:
      consumes:
      - application/json
      description: Retrieves all the ftp deployments.
      operationId: queryFTPDeployment
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records by the Server ID.
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        in: query
        name: serverID
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-ftpdeploymentapp_Deployment'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the ftp deployments.
      tags:
      - ftp-deployment
    post:
      consumes:
      - application/json
      description: Create a new ftp deployment.
      operationId: createFTPDeployment
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: New deployment
        in: body
        name: deployment
        required: true
        schema:
          $ref: '#/definitions/ftpdeploymentapp.NewDeployment'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ftpdeploymentapp.Deployment'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new ftp deployment.
      tags:
      - ftp-deployment
  /v1/listeners/ftp/{listener_id}/deployments/{server_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing ftp deployment.
      operationId: deleteFTPDeployment
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ftpdeploymentapp.Deployment'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing ftp deployment given its server ID.
      tags:
      - ftp-deployment
    patch:
      consumes:
      - application/json
      description: Update an existing ftp deployment.
      operationId: updateFTPDeployment
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: UpdatedAt deployment
        in: body
        name: deployment
        schema:
          $ref: '#/definitions/ftpdeploymentapp.UpdateDeployment'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ftpdeploymentapp.Deployment'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing ftp deployment.
      tags:
      - ftp-deployment
  /v1/listeners/http:
    get:
      consumes:
      - application/json
      description: Retrieves all the http listeners.
      operationId: queryHTTPListener
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-httplistenerapp_Listener'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the http listeners.
      tags:
      - http-listener
    post:
      consumes:
      - application/json
      description: Create a new http listener.
      operationId: createHTTPListener
      parameters:
      - description: New listener
        in: body
        name: server
        required: true
        schema:
          $ref: '#/definitions/httplistenerapp.NewListener'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/httplistenerapp.Listener'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new http listener.
      tags:
      - http-listener
  /v1/listeners/http/{listener_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing http listener.
      operationId: deleteHTTPListener
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/httplistenerapp.Listener'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing http listener given its ID.
      tags:
      - http-listener
    patch:
      consumes:
      - application/json
      description: Update an existing http listener.
      operationId: updateHTTPListener
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: UpdatedAt listener
        in: body
        name: server
        schema:
          $ref: '#/definitions/httplistenerapp.UpdateListener'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/httplistenerapp.Listener'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing http listener.
      tags:
      - http-listener
  /v1/listeners/http/{listener_id}/deployments:
    get:
      consumes:
      - application/json
      description: Retrieves all the http deployments.
      operationId: queryHTTPDeployment
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records by the Server ID.
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        in: query
        name: serverID
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-httpdeploymentapp_Deployment'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the http deployments.
      tags:
      - http-deployment
    post:
      consumes:
      - application/json
      description: Create a new http deployment.
      operationId: createHTTPDeployment
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: New deployment
        in: body
        name: deployment
        required: true
        schema:
          $ref: '#/definitions/httpdeploymentapp.NewDeployment'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/httpdeploymentapp.Deployment'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new http deployment.
      tags:
      - http-deployment
  /v1/listeners/http/{listener_id}/deployments/{server_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing http deployment.
      operationId: deleteHTTPDeployment
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/httpdeploymentapp.Deployment'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing http deployment given its server ID.
      tags:
      - http-deployment
    patch:
      consumes:
      - application/json
      description: Update an existing http deployment.
      operationId: updateHTTPDeployment
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: UpdatedAt deployment
        in: body
        name: deployment
        schema:
          $ref: '#/definitions/httpdeploymentapp.UpdateDeployment'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/httpdeploymentapp.Deployment'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing http deployment.
      tags:
      - http-deployment
  /v1/listeners/sftp:
    get:
      consumes:
      - application/json
      description: Retrieves all the sftp listeners.
      operationId: querySFTPListener
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-sftplistenerapp_Listener'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the sftp listeners.
      tags:
      - sftp-listener
    post:
      consumes:
      - application/json
      description: Create a new sftp listener.
      operationId: createSFTPListener
      parameters:
      - description: New listener
        in: body
        name: server
        required: true
        schema:
          $ref: '#/definitions/sftplistenerapp.NewListener'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/sftplistenerapp.Listener'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new sftp listener.
      tags:
      - sftp-listener
  /v1/listeners/sftp/{listener_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing sftp listener.
      operationId: deleteSFTPListener
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/sftplistenerapp.Listener'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing sftp listener given its ID.
      tags:
      - sftp-listener
    patch:
      consumes:
      - application/json
      description: Update an existing sftp listener.
      operationId: updateSFTPListener
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: UpdatedAt listener
        in: body
        name: server
        schema:
          $ref: '#/definitions/sftplistenerapp.UpdateListener'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/sftplistenerapp.Listener'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing sftp listener.
      tags:
      - sftp-listener
  /v1/listeners/sftp/{listener_id}/deployments:
    get:
      consumes:
      - application/json
      description: Retrieves all the sftp deployments.
      operationId: querySFTPDeployment
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records by the Server ID.
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        in: query
        name: serverID
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-sftpdeploymentapp_Deployment'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the sftp deployments.
      tags:
      - sftp-deployment
    post:
      consumes:
      - application/json
      description: Create a new sftp deployment.
      operationId: createSFTPDeployment
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: New deployment
        in: body
        name: deployment
        required: true
        schema:
          $ref: '#/definitions/sftpdeploymentapp.NewDeployment'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/sftpdeploymentapp.Deployment'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new sftp deployment.
      tags:
      - sftp-deployment
  /v1/listeners/sftp/{listener_id}/deployments/{server_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing sftp deployment.
      operationId: deleteSFTPDeployment
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/sftpdeploymentapp.Deployment'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing sftp deployment given its server ID.
      tags:
      - sftp-deployment
    patch:
      consumes:
      - application/json
      description: Update an existing sftp deployment.
      operationId: updateSFTPDeployment
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: UpdatedAt deployment
        in: body
        name: deployment
        schema:
          $ref: '#/definitions/sftpdeploymentapp.UpdateDeployment'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/sftpdeploymentapp.Deployment'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-tcplistenerapp_Listener'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the tcp listeners.
      tags:
      - tcp-listener
    post:
      consumes:
      - application/json
      description: Create a new tcp listener.
      operationId: createTCPListener
      parameters:
      - description: New listener
        in: body
        name: server
        required: true
        schema:
          $ref: '#/definitions/tcplistenerapp.NewListener'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tcplistenerapp.Listener'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tcplistenerapp.Listener'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing tcp listener given its ID.
      tags:
      - tcp-listener
    patch:
      consumes:
      - application/json
      description: Update an existing tcp listener.
      operationId: updateTCPListener
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: UpdatedAt listener
        in: body
        name: server
        schema:
          $ref: '#/definitions/tcplistenerapp.UpdateListener'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tcplistenerapp.Listener'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing tcp listener.
      tags:
      - tcp-listener
  /v1/listeners/tcp/{listener_id}/deployments:
    get:
      consumes:
      - application/json
      description: Retrieves all the tcp deployments.
      operationId: queryTCPDeployment
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records by the Server ID.
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        in: query
        name: serverID
        type: string
      - description: Filter records by startup mode.
        enum:
        - auto
        - manual
        example: auto
        in: query
        name: startupMode
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-tcpdeploymentapp_Deployment'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the tcp deployments.
      tags:
      - tcp-deployment
    post:
      consumes:
      - application/json
      description: Create a new tcp deployment.
      operationId: createTCPDeployment
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: New deployment
        in: body
        name: deployment
        required: true
        schema:
          $ref: '#/definitions/tcpdeploymentapp.NewDeployment'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tcpdeploymentapp.Deployment'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new tcp deployment.
      tags:
      - tcp-deployment
  /v1/listeners/tcp/{listener_id}/deployments/{server_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing tcp deployment.
      operationId: deleteTCPDeployment
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tcpdeploymentapp.Deployment'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing tcp deployment given its server ID.
      tags:
      - tcp-deployment
    patch:
      consumes:
      - application/json
      description: Update an existing tcp deployment.
      operationId: updateTCPDeployment
      parameters:
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: UpdatedAt deployment
        in: body
        name: deployment
        schema:
          $ref: '#/definitions/tcpdeploymentapp.UpdateDeployment'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tcpdeploymentapp.Deployment'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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.
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/checkapp.Info'
      summary: Returns simple status info if the service is alive.
      tags:
      - healthcheck
  /v1/login:
    post:
      description: Login.
      operationId: login
      parameters:
      - description: User credentials
        in: body
        name: credentials
        required: true
        schema:
          $ref: '#/definitions/authapp.Credentials'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/authapp.TokenResponse'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      summary: Login.
      tags:
      - auth
  /v1/login-methods:
    get:
      description: Returns the available authentication methods.
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/authmethodapp.AuthMethods'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      summary: Returns the available authentication methods.
      tags:
      - auth
  /v1/login/ldap:
    post:
      description: LDAP Login.
      operationId: loginLDAP
      parameters:
      - description: User credentials
        in: body
        name: credentials
        required: true
        schema:
          $ref: '#/definitions/ldapauthapp.Credentials'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ldapauthapp.TokenResponse'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        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
        type: string
      responses:
        "302":
          description: Found
      summary: SAML Login.
      tags:
      - auth
  /v1/logout:
    post:
      description: Logout.
      operationId: logout
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Logout.
      tags:
      - auth
  /v1/metrics:
    get:
      description: Retrieve prometheus metrics.
      produces:
      - application/json
      responses:
        "200":
          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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/configapp.Configuration'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update the configuration of a proxy server.
      tags:
      - monitoring
  /v1/monitoring/servers/{server_id}/configuration/history:
    get:
      consumes:
      - application/json
      description: Retrieves all the past server configurations.
      operationId: queryServerConfigurationHistory
      parameters:
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-configapp_Configuration'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/configapp.Configuration'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/configapp.Configuration'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/pshsmapp.HSMObject'
            type: array
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Private Key ID
        format: uuid
        in: path
        name: private_key_id
        required: true
        type: string
      responses:
        "204":
          description: Private key found
        "400":
          description: Private key not referencing HSM object
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Server/Private key not found or not found in HSM
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      responses:
        "204":
          description: HSM connection started
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/pshsmapp.HSMStatus'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      responses:
        "204":
          description: HSM connection stopped
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/hsmmonitorapp.HSMTestResult'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/pshsmapp.HSMObject'
            type: array
        "400":
          description: Server has no HSM configuration
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: TLS Certificate ID
        format: uuid
        in: path
        name: certificate_id
        required: true
        type: string
      responses:
        "204":
          description: TLS certificate found
        "400":
          description: TLS certificate not referencing HSM object
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Server/TLS certificate not found or not found in HSM
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Check TLS certificate presence in HSM for a proxy server.
      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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/monitorapp.FTPListenerStatus'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/monitorapp.HTTPListenerStatus'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/monitorapp.SFTPListenerStatus'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/monitorapp.TCPListenerStatus'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/monitorapp.Status'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Tunnel ID
        format: uuid
        in: path
        name: tunnel_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Tunnel ID
        format: uuid
        in: path
        name: tunnel_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/monitorapp.TunnelStatus'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Tunnel ID
        format: uuid
        in: path
        name: tunnel_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Stops a proxy server tunnel.
      tags:
      - monitoring
  /v1/profile:
    get:
      description: Retrieves the authenticated user's data.
      operationId: getUserProfile
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/userapp.User'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves the authenticated user's data.
      tags:
      - user
  /v1/providers/oidc:
    get:
      consumes:
      - application/json
      description: Retrieves all the OIDC providers.
      operationId: queryOIDCProvider
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-oidcproviderapp_Provider'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the OIDC providers.
      tags:
      - oidc-provider
    post:
      consumes:
      - application/json
      description: Create a new OIDC provider.
      operationId: createOIDCProvider
      parameters:
      - description: New provider
        in: body
        name: query
        required: true
        schema:
          $ref: '#/definitions/oidcproviderapp.NewProvider'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/oidcproviderapp.Provider'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new OIDC provider.
      tags:
      - oidc-provider
  /v1/providers/oidc/{provider_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing OIDC provider.
      operationId: deleteOIDCProvider
      parameters:
      - description: OIDC provider ID
        format: uuid
        in: path
        name: provider_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: provider_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/oidcproviderapp.Provider'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing OIDC provider given its ID.
      tags:
      - oidc-provider
    patch:
      consumes:
      - application/json
      description: Update an existing OIDC provider.
      operationId: updateOIDCProvider
      parameters:
      - description: OIDC provider ID
        format: uuid
        in: path
        name: provider_id
        required: true
        type: string
      - description: Updated OIDC provider
        in: body
        name: query
        schema:
          $ref: '#/definitions/oidcproviderapp.UpdateProvider'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/oidcproviderapp.Provider'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing OIDC provider.
      tags:
      - oidc-provider
  /v1/providers/saml:
    get:
      consumes:
      - application/json
      description: Retrieves all the SAML providers.
      operationId: querySAMLProvider
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-samlproviderapp_Provider'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the SAML providers.
      tags:
      - saml-provider
    post:
      consumes:
      - application/json
      description: Create a new SAML provider.
      operationId: createSAMLProvider
      parameters:
      - description: New provider
        in: body
        name: query
        required: true
        schema:
          $ref: '#/definitions/samlproviderapp.NewProvider'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/samlproviderapp.Provider'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new SAML provider.
      tags:
      - saml-provider
  /v1/providers/saml/{provider_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing SAML provider.
      operationId: deleteSAMLProvider
      parameters:
      - description: SAML provider ID
        format: uuid
        in: path
        name: provider_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: provider_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/samlproviderapp.Provider'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing SAML provider given its ID.
      tags:
      - saml-provider
    patch:
      consumes:
      - application/json
      description: Update an existing SAML provider.
      operationId: updateSAMLProvider
      parameters:
      - description: SAML provider ID
        format: uuid
        in: path
        name: provider_id
        required: true
        type: string
      - description: Updated SAML provider
        in: body
        name: query
        schema:
          $ref: '#/definitions/samlproviderapp.UpdateProvider'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/samlproviderapp.Provider'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing SAML provider.
      tags:
      - saml-provider
  /v1/readiness:
    get:
      description: Checks if the database is ready.
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/checkapp.Ready'
        "503":
          description: Service Unavailable
          schema:
            $ref: '#/definitions/errs.Error'
      summary: Checks if the database is ready.
      tags:
      - healthcheck
  /v1/routes/ftp:
    get:
      consumes:
      - application/json
      description: Retrieves all the ftp routes.
      operationId: queryFTPRoute
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-ftprouteapp_Route'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the ftp routes.
      tags:
      - ftp-route
    post:
      consumes:
      - application/json
      description: Create a new ftp route.
      operationId: createFTPRoute
      parameters:
      - description: New route
        in: body
        name: server
        required: true
        schema:
          $ref: '#/definitions/ftprouteapp.NewRoute'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ftprouteapp.Route'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new ftp route.
      tags:
      - ftp-route
  /v1/routes/ftp/{route_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing ftp route.
      operationId: deleteFTPRoute
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ftprouteapp.Route'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing ftp route given its ID.
      tags:
      - ftp-route
    patch:
      consumes:
      - application/json
      description: Update an existing ftp route.
      operationId: updateFTPRoute
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: UpdatedAt route
        in: body
        name: server
        schema:
          $ref: '#/definitions/ftprouteapp.UpdateRoute'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ftprouteapp.Route'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing ftp route.
      tags:
      - ftp-route
  /v1/routes/ftp/{route_id}/nodes/inbound:
    get:
      consumes:
      - application/json
      description: Retrieves all the ftp inbound nodes.
      operationId: queryFTPInboundNode
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-ftpinboundnodeapp_InboundNode'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the ftp inbound nodes.
      tags:
      - ftp-inbound-node
    post:
      consumes:
      - application/json
      description: Create a new ftp inbound node.
      operationId: createFTPInboundNode
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: New inbound node
        in: body
        name: server
        required: true
        schema:
          $ref: '#/definitions/ftpinboundnodeapp.NewInboundNode'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ftpinboundnodeapp.InboundNode'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new ftp inbound node.
      tags:
      - ftp-inbound-node
  /v1/routes/ftp/{route_id}/nodes/inbound/{node_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing ftp inbound node.
      operationId: deleteFTPInboundNode
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: Node ID
        format: uuid
        in: path
        name: node_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: Node ID
        format: uuid
        in: path
        name: node_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ftpinboundnodeapp.InboundNode'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing ftp inbound node given its ID.
      tags:
      - ftp-inbound-node
    patch:
      consumes:
      - application/json
      description: Update an existing ftp inbound node.
      operationId: updateFTPInboundNode
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: Node ID
        format: uuid
        in: path
        name: node_id
        required: true
        type: string
      - description: UpdatedAt inbound node
        in: body
        name: server
        schema:
          $ref: '#/definitions/ftpinboundnodeapp.UpdateInboundNode'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ftpinboundnodeapp.InboundNode'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing ftp inbound node.
      tags:
      - ftp-inbound-node
  /v1/routes/ftp/{route_id}/nodes/outbound:
    get:
      consumes:
      - application/json
      description: Retrieves all the ftp outbound nodes.
      operationId: queryFTPOutboundNode
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-ftpoutboundnodeapp_OutboundNode'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the ftp outbound nodes.
      tags:
      - ftp-outbound-node
    post:
      consumes:
      - application/json
      description: Create a new ftp outbound node.
      operationId: createFTPOutboundNode
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: New outbound node
        in: body
        name: server
        required: true
        schema:
          $ref: '#/definitions/ftpoutboundnodeapp.NewOutboundNode'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ftpoutboundnodeapp.OutboundNode'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new ftp outbound node.
      tags:
      - ftp-outbound-node
  /v1/routes/ftp/{route_id}/nodes/outbound/{node_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing ftp outbound node.
      operationId: deleteFTPOutboundNode
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: Node ID
        format: uuid
        in: path
        name: node_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: Node ID
        format: uuid
        in: path
        name: node_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ftpoutboundnodeapp.OutboundNode'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing ftp outbound node given its ID.
      tags:
      - ftp-outbound-node
    patch:
      consumes:
      - application/json
      description: Update an existing ftp outbound node.
      operationId: updateFTPOutboundNode
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: Node ID
        format: uuid
        in: path
        name: node_id
        required: true
        type: string
      - description: UpdatedAt outbound node
        in: body
        name: server
        schema:
          $ref: '#/definitions/ftpoutboundnodeapp.UpdateOutboundNode'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ftpoutboundnodeapp.OutboundNode'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing ftp outbound node.
      tags:
      - ftp-outbound-node
  /v1/routes/http:
    get:
      consumes:
      - application/json
      description: Retrieves all the http routes.
      operationId: queryHTTPRoute
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-httprouteapp_Route'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the http routes.
      tags:
      - http-route
    post:
      consumes:
      - application/json
      description: Create a new http route.
      operationId: createHTTPRoute
      parameters:
      - description: New route
        in: body
        name: server
        required: true
        schema:
          $ref: '#/definitions/httprouteapp.NewRoute'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/httprouteapp.Route'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new http route.
      tags:
      - http-route
  /v1/routes/http/{route_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing http route.
      operationId: deleteHTTPRoute
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/httprouteapp.Route'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing http route given its ID.
      tags:
      - http-route
    patch:
      consumes:
      - application/json
      description: Update an existing http route.
      operationId: updateHTTPRoute
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: UpdatedAt route
        in: body
        name: server
        schema:
          $ref: '#/definitions/httprouteapp.UpdateRoute'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/httprouteapp.Route'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing http route.
      tags:
      - http-route
  /v1/routes/http/{route_id}/nodes/inbound:
    get:
      consumes:
      - application/json
      description: Retrieves all the http inbound nodes.
      operationId: queryHTTPInboundNode
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-httpinboundnodeapp_InboundNode'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the http inbound nodes.
      tags:
      - http-inbound-node
    post:
      consumes:
      - application/json
      description: Create a new http inbound node.
      operationId: createHTTPInboundNode
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: New inbound node
        in: body
        name: server
        required: true
        schema:
          $ref: '#/definitions/httpinboundnodeapp.NewInboundNode'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/httpinboundnodeapp.InboundNode'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new http inbound node.
      tags:
      - http-inbound-node
  /v1/routes/http/{route_id}/nodes/inbound/{node_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing http inbound node.
      operationId: deleteHTTPInboundNode
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: Node ID
        format: uuid
        in: path
        name: node_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: Node ID
        format: uuid
        in: path
        name: node_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/httpinboundnodeapp.InboundNode'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing http inbound node given its ID.
      tags:
      - http-inbound-node
    patch:
      consumes:
      - application/json
      description: Update an existing http inbound node.
      operationId: updateHTTPInboundNode
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: Node ID
        format: uuid
        in: path
        name: node_id
        required: true
        type: string
      - description: UpdatedAt inbound node
        in: body
        name: server
        schema:
          $ref: '#/definitions/httpinboundnodeapp.UpdateInboundNode'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/httpinboundnodeapp.InboundNode'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing http inbound node.
      tags:
      - http-inbound-node
  /v1/routes/http/{route_id}/nodes/outbound:
    get:
      consumes:
      - application/json
      description: Retrieves all the http outbound nodes.
      operationId: queryHTTPOutboundNode
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-httpoutboundnodeapp_OutboundNode'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the http outbound nodes.
      tags:
      - http-outbound-node
    post:
      consumes:
      - application/json
      description: Create a new http outbound node.
      operationId: createHTTPOutboundNode
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: New outbound node
        in: body
        name: server
        required: true
        schema:
          $ref: '#/definitions/httpoutboundnodeapp.NewOutboundNode'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/httpoutboundnodeapp.OutboundNode'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new http outbound node.
      tags:
      - http-outbound-node
  /v1/routes/http/{route_id}/nodes/outbound/{node_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing http outbound node.
      operationId: deleteHTTPOutboundNode
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: Node ID
        format: uuid
        in: path
        name: node_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: Node ID
        format: uuid
        in: path
        name: node_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/httpoutboundnodeapp.OutboundNode'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing http outbound node given its ID.
      tags:
      - http-outbound-node
    patch:
      consumes:
      - application/json
      description: Update an existing http outbound node.
      operationId: updateHTTPOutboundNode
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: Node ID
        format: uuid
        in: path
        name: node_id
        required: true
        type: string
      - description: UpdatedAt outbound node
        in: body
        name: server
        schema:
          $ref: '#/definitions/httpoutboundnodeapp.UpdateOutboundNode'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/httpoutboundnodeapp.OutboundNode'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing http outbound node.
      tags:
      - http-outbound-node
  /v1/routes/sftp:
    get:
      consumes:
      - application/json
      description: Retrieves all the sftp routes.
      operationId: querySFTPRoute
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-sftprouteapp_Route'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the sftp routes.
      tags:
      - sftp-route
    post:
      consumes:
      - application/json
      description: Create a new sftp route.
      operationId: createSFTPRoute
      parameters:
      - description: New route
        in: body
        name: server
        required: true
        schema:
          $ref: '#/definitions/sftprouteapp.NewRoute'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/sftprouteapp.Route'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new sftp route.
      tags:
      - sftp-route
  /v1/routes/sftp/{route_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing sftp route.
      operationId: deleteSFTPRoute
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/sftprouteapp.Route'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing sftp route given its ID.
      tags:
      - sftp-route
    patch:
      consumes:
      - application/json
      description: Update an existing sftp route.
      operationId: updateSFTPRoute
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: UpdatedAt route
        in: body
        name: server
        schema:
          $ref: '#/definitions/sftprouteapp.UpdateRoute'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/sftprouteapp.Route'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing sftp route.
      tags:
      - sftp-route
  /v1/routes/sftp/{route_id}/nodes/inbound:
    get:
      consumes:
      - application/json
      description: Retrieves all the sftp inbound nodes.
      operationId: querySFTPInboundNode
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-sftpinboundnodeapp_InboundNode'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the sftp inbound nodes.
      tags:
      - sftp-inbound-node
    post:
      consumes:
      - application/json
      description: Create a new sftp inbound node.
      operationId: createSFTPInboundNode
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: New inbound node
        in: body
        name: server
        required: true
        schema:
          $ref: '#/definitions/sftpinboundnodeapp.NewInboundNode'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/sftpinboundnodeapp.InboundNode'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new sftp inbound node.
      tags:
      - sftp-inbound-node
  /v1/routes/sftp/{route_id}/nodes/inbound/{node_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing sftp inbound node.
      operationId: deleteSFTPInboundNode
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: Node ID
        format: uuid
        in: path
        name: node_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: Node ID
        format: uuid
        in: path
        name: node_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/sftpinboundnodeapp.InboundNode'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing sftp inbound node given its ID.
      tags:
      - sftp-inbound-node
    patch:
      consumes:
      - application/json
      description: Update an existing sftp inbound node.
      operationId: updateSFTPInboundNode
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: Node ID
        format: uuid
        in: path
        name: node_id
        required: true
        type: string
      - description: UpdatedAt inbound node
        in: body
        name: server
        schema:
          $ref: '#/definitions/sftpinboundnodeapp.UpdateInboundNode'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/sftpinboundnodeapp.InboundNode'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing sftp inbound node.
      tags:
      - sftp-inbound-node
  /v1/routes/sftp/{route_id}/nodes/outbound:
    get:
      consumes:
      - application/json
      description: Retrieves all the sftp outbound nodes.
      operationId: querySFTPOutboundNode
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-sftpoutboundnodeapp_OutboundNode'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the sftp outbound nodes.
      tags:
      - sftp-outbound-node
    post:
      consumes:
      - application/json
      description: Create a new sftp outbound node.
      operationId: createSFTPOutboundNode
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: New outbound node
        in: body
        name: server
        required: true
        schema:
          $ref: '#/definitions/sftpoutboundnodeapp.NewOutboundNode'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/sftpoutboundnodeapp.OutboundNode'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new sftp outbound node.
      tags:
      - sftp-outbound-node
  /v1/routes/sftp/{route_id}/nodes/outbound/{node_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing sftp outbound node.
      operationId: deleteSFTPOutboundNode
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: Node ID
        format: uuid
        in: path
        name: node_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: Node ID
        format: uuid
        in: path
        name: node_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/sftpoutboundnodeapp.OutboundNode'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing sftp outbound node given its ID.
      tags:
      - sftp-outbound-node
    patch:
      consumes:
      - application/json
      description: Update an existing sftp outbound node.
      operationId: updateSFTPOutboundNode
      parameters:
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      - description: Node ID
        format: uuid
        in: path
        name: node_id
        required: true
        type: string
      - description: UpdatedAt outbound node
        in: body
        name: server
        schema:
          $ref: '#/definitions/sftpoutboundnodeapp.UpdateOutboundNode'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/sftpoutboundnodeapp.OutboundNode'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing sftp outbound node.
      tags:
      - sftp-outbound-node
  /v1/rules/ftp:
    get:
      consumes:
      - application/json
      description: Retrieves all the ftp rules.
      operationId: queryFTPRule
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-ftpruleapp_Rule'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the ftp rules.
      tags:
      - ftp-rule
    post:
      consumes:
      - application/json
      description: Create a new ftp rule.
      operationId: createFTPRule
      parameters:
      - description: New rule
        in: body
        name: rule
        required: true
        schema:
          $ref: '#/definitions/ftpruleapp.NewRule'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ftpruleapp.Rule'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new ftp rule.
      tags:
      - ftp-rule
  /v1/rules/ftp/{rule_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing ftp rule.
      operationId: deleteFTPRule
      parameters:
      - description: Rule ID
        format: uuid
        in: path
        name: rule_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: rule_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ftpruleapp.Rule'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing ftp rule given its ID.
      tags:
      - ftp-rule
    patch:
      consumes:
      - application/json
      description: Update an existing ftp rule.
      operationId: updateFTPRule
      parameters:
      - description: Rule ID
        format: uuid
        in: path
        name: rule_id
        required: true
        type: string
      - description: UpdatedAt rule
        in: body
        name: rule
        schema:
          $ref: '#/definitions/ftpruleapp.UpdateRule'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ftpruleapp.Rule'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing ftp rule.
      tags:
      - ftp-rule
  /v1/rules/http:
    get:
      consumes:
      - application/json
      description: Retrieves all the http rules.
      operationId: queryHTTPRule
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-httpruleapp_Rule'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the http rules.
      tags:
      - http-rule
    post:
      consumes:
      - application/json
      description: Create a new http rule.
      operationId: createHTTPRule
      parameters:
      - description: New rule
        in: body
        name: rule
        required: true
        schema:
          $ref: '#/definitions/httpruleapp.NewRule'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/httpruleapp.Rule'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new http rule.
      tags:
      - http-rule
  /v1/rules/http/{rule_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing http rule.
      operationId: deleteHTTPRule
      parameters:
      - description: Rule ID
        format: uuid
        in: path
        name: rule_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: rule_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/httpruleapp.Rule'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing http rule given its ID.
      tags:
      - http-rule
    patch:
      consumes:
      - application/json
      description: Update an existing http rule.
      operationId: updateHTTPRule
      parameters:
      - description: Rule ID
        format: uuid
        in: path
        name: rule_id
        required: true
        type: string
      - description: UpdatedAt rule
        in: body
        name: rule
        schema:
          $ref: '#/definitions/httpruleapp.UpdateRule'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/httpruleapp.Rule'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing http rule.
      tags:
      - http-rule
  /v1/rules/sftp:
    get:
      consumes:
      - application/json
      description: Retrieves all the sftp rules.
      operationId: querySFTPRule
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-sftpruleapp_Rule'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the sftp rules.
      tags:
      - sftp-rule
    post:
      consumes:
      - application/json
      description: Create a new sftp rule.
      operationId: createSFTPRule
      parameters:
      - description: New rule
        in: body
        name: rule
        required: true
        schema:
          $ref: '#/definitions/sftpruleapp.NewRule'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/sftpruleapp.Rule'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new sftp rule.
      tags:
      - sftp-rule
  /v1/rules/sftp/{rule_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing sftp rule.
      operationId: deleteSFTPRule
      parameters:
      - description: Rule ID
        format: uuid
        in: path
        name: rule_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: rule_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/sftpruleapp.Rule'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing sftp rule given its ID.
      tags:
      - sftp-rule
    patch:
      consumes:
      - application/json
      description: Update an existing sftp rule.
      operationId: updateSFTPRule
      parameters:
      - description: Rule ID
        format: uuid
        in: path
        name: rule_id
        required: true
        type: string
      - description: UpdatedAt rule
        in: body
        name: rule
        schema:
          $ref: '#/definitions/sftpruleapp.UpdateRule'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/sftpruleapp.Rule'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing sftp rule.
      tags:
      - sftp-rule
  /v1/servers:
    get:
      consumes:
      - application/json
      description: Retrieves all the servers.
      operationId: queryServer
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-serverapp_Server'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the servers.
      tags:
      - server
    post:
      consumes:
      - application/json
      description: Create a new server.
      operationId: createServer
      parameters:
      - description: New server
        in: body
        name: server
        required: true
        schema:
          $ref: '#/definitions/serverapp.NewServer'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/serverapp.Server'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new server.
      tags:
      - server
  /v1/servers/{server_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing server.
      operationId: deleteServer
      parameters:
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Delete an existing server.
      tags:
      - server
    get:
      consumes:
      - application/json
      description: Retrieves an existing server given its ID.
      operationId: getServerByID
      parameters:
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/serverapp.Server'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing server given its ID.
      tags:
      - server
    patch:
      consumes:
      - application/json
      description: Update an existing server.
      operationId: updateServer
      parameters:
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: UpdatedAt server
        in: body
        name: server
        schema:
          $ref: '#/definitions/serverapp.UpdateServer'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/serverapp.Server'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing server.
      tags:
      - server
  /v1/servers/{server_id}/tunnels:
    get:
      consumes:
      - application/json
      description: Retrieves all the tunnels.
      operationId: queryTunnel
      parameters:
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records by the port number.
        in: query
        name: port
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-tunnelapp_Tunnel'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the tunnels.
      tags:
      - tunnel
    post:
      consumes:
      - application/json
      description: Create a new tunnel.
      operationId: createTunnel
      parameters:
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: New tunnel
        in: body
        name: tunnel
        required: true
        schema:
          $ref: '#/definitions/tunnelapp.NewTunnel'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tunnelapp.Tunnel'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new tunnel.
      tags:
      - tunnel
  /v1/servers/{server_id}/tunnels/{tunnel_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing tunnel.
      operationId: deleteTunnel
      parameters:
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Tunnel ID
        format: uuid
        in: path
        name: tunnel_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Delete an existing tunnel.
      tags:
      - tunnel
    get:
      consumes:
      - application/json
      description: Retrieves an existing tunnel given its ID.
      operationId: getTunnelByID
      parameters:
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Tunnel ID
        format: uuid
        in: path
        name: tunnel_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tunnelapp.Tunnel'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing tunnel given its ID.
      tags:
      - tunnel
    patch:
      consumes:
      - application/json
      description: Update an existing tunnel.
      operationId: updateTunnel
      parameters:
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Tunnel ID
        format: uuid
        in: path
        name: tunnel_id
        required: true
        type: string
      - description: UpdatedAt tunnel
        in: body
        name: tunnel
        schema:
          $ref: '#/definitions/tunnelapp.UpdateTunnel'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tunnelapp.Tunnel'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing tunnel.
      tags:
      - tunnel
  /v1/servers/{server_id}/tunnels/{tunnel_id}/clients:
    get:
      consumes:
      - application/json
      description: Retrieves all the clients.
      operationId: queryClient
      parameters:
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Tunnel ID
        format: uuid
        in: path
        name: tunnel_id
        required: true
        type: string
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-clientapp_Client'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the clients.
      tags:
      - client
    post:
      consumes:
      - application/json
      description: Create a new client.
      operationId: createClient
      parameters:
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Tunnel ID
        format: uuid
        in: path
        name: tunnel_id
        required: true
        type: string
      - description: New client
        in: body
        name: client
        required: true
        schema:
          $ref: '#/definitions/clientapp.NewClient'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/clientapp.Client'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new client.
      tags:
      - client
  /v1/servers/{server_id}/tunnels/{tunnel_id}/clients/{client_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing client.
      operationId: deleteClient
      parameters:
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Tunnel ID
        format: uuid
        in: path
        name: tunnel_id
        required: true
        type: string
      - description: Client ID
        format: uuid
        in: path
        name: client_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Delete an existing client.
      tags:
      - client
    get:
      consumes:
      - application/json
      description: Retrieves an existing client given its ID.
      operationId: getClientByID
      parameters:
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Tunnel ID
        format: uuid
        in: path
        name: tunnel_id
        required: true
        type: string
      - description: Client ID
        format: uuid
        in: path
        name: client_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/clientapp.Client'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing client given its ID.
      tags:
      - client
    patch:
      consumes:
      - application/json
      description: Update an existing client.
      operationId: updateClient
      parameters:
      - description: Server ID
        format: uuid
        in: path
        name: server_id
        required: true
        type: string
      - description: Tunnel ID
        format: uuid
        in: path
        name: tunnel_id
        required: true
        type: string
      - description: Client ID
        format: uuid
        in: path
        name: client_id
        required: true
        type: string
      - description: UpdatedAt client
        in: body
        name: client
        schema:
          $ref: '#/definitions/clientapp.UpdateClient'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/clientapp.Client'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing client.
      tags:
      - client
  /v1/system/key-usage:
    get:
      consumes:
      - application/json
      description: Retrieves all the encryption key usages.
      parameters:
      - description: Filter records by DEK algorithm.
        in: query
        name: dek_algorithm
        type: string
      - description: Filter records with DEK created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: dek_created_from
        type: string
      - description: Filter records with DEK created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: dek_created_to
        type: string
      - description: Filter records by the DEK ID.
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        in: query
        name: dek_id
        type: string
      - description: Filter records with an exact match for the DEK name.
        in: query
        name: dek_name
        type: string
      - description: Filter records with a partial match for the DEK name.
        in: query
        name: dek_name_contains
        type: string
      - description: Filter records by DEK scope.
        in: query
        name: dek_scope
        type: string
      - description: Filter records by DEK status.
        in: query
        name: dek_status
        type: string
      - description: Filter records with DEK updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: dek_updated_from
        type: string
      - description: Filter records with DEK updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: dek_updated_to
        type: string
      - example: dek_name+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records with usage created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: usage_created_from
        type: string
      - description: Filter records with usage created on or before the specified
          date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: usage_created_to
        type: string
      - description: Filter records with an exact match for the usage record name.
        in: query
        name: usage_record_name
        type: string
      - description: Filter records with a partial match for the usage record name.
        in: query
        name: usage_record_name_contains
        type: string
      - description: Filter records by usage table ID.
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        in: query
        name: usage_table_id
        type: string
      - description: Filter records by usage table name.
        in: query
        name: usage_table_name
        type: string
      - description: Filter records with usage updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: usage_updated_from
        type: string
      - description: Filter records with usage updated on or before the specified
          date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: usage_updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-vkmsusageapp_EncryptionKeyUsage'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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 created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records based on whether they are enabled.
        in: query
        name: enabled
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-kmsapp_Key'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the encryption keys.
      tags:
      - encryption_key
    post:
      consumes:
      - application/json
      description: Create a new encryption key and rotates the active key for the
        scope.
      operationId: createEncryptionKey
      parameters:
      - description: New encryption key
        in: body
        name: key
        required: true
        schema:
          $ref: '#/definitions/kmsapp.NewKey'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/kmsapp.Key'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: key_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/kmsapp.Key'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing encryption key given its ID.
      tags:
      - encryption_key
    patch:
      consumes:
      - application/json
      description: Update an encryption key.
      operationId: updateEncryptionKey
      parameters:
      - description: Encryption Key ID
        format: uuid
        in: path
        name: key_id
        required: true
        type: string
      - description: Updated encryption key
        in: body
        name: key
        required: true
        schema:
          $ref: '#/definitions/kmsapp.UpdateKey'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/kmsapp.Key'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an encryption key.
      tags:
      - encryption_key
  /v1/system/ldap:
    delete:
      consumes:
      - application/json
      description: Delete an existing system LDAP configuration.
      operationId: deleteLDAPAuthMethod
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Delete an existing system LDAP configuration.
      tags:
      - system-ldap-configuration
    get:
      description: Retrieves the existing system LDAP configuration.
      operationId: queryLDAPAuthMethod
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ldapauthmethodapp.LDAPConfiguration'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves the existing system LDAP configuration.
      tags:
      - system-ldap-configuration
    patch:
      consumes:
      - application/json
      description: Update an existing system LDAP configuration.
      operationId: updateLDAPAuthMethod
      parameters:
      - description: System LDAP configuration
        in: body
        name: connection
        schema:
          $ref: '#/definitions/ldapauthmethodapp.UpdateLDAPConfiguration'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ldapauthmethodapp.LDAPConfiguration'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing system LDAP configuration.
      tags:
      - system-ldap-configuration
    post:
      consumes:
      - application/json
      description: Create a new system LDAP configuration.
      operationId: createLDAPAuthMethod
      parameters:
      - description: New configuration
        in: body
        name: connection
        required: true
        schema:
          $ref: '#/definitions/ldapauthmethodapp.NewLDAPConfiguration'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/ldapauthmethodapp.LDAPConfiguration'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new system LDAP configuration.
      tags:
      - system-ldap-configuration
  /v1/system/oidc:
    get:
      consumes:
      - application/json
      description: Retrieves all the OIDC authentication method configurations.
      operationId: queryOIDCAuthMethod
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-oidcauthmethodapp_AuthMethod'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the OIDC authentication method configurations.
      tags:
      - oidc-auth-method
    post:
      consumes:
      - application/json
      description: Create a new OIDC authentication method configuration.
      operationId: createOIDCAuthMethod
      parameters:
      - description: New authentication method
        in: body
        name: query
        required: true
        schema:
          $ref: '#/definitions/oidcauthmethodapp.NewAuthMethod'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/oidcauthmethodapp.AuthMethod'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new OIDC authentication method configuration.
      tags:
      - oidc-auth-method
  /v1/system/oidc/{auth_method_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing OIDC authentication method configuration.
      operationId: deleteOIDCAuthMethod
      parameters:
      - description: OIDC authentication method configuration ID
        format: uuid
        in: path
        name: auth_method_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: auth_method_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/oidcauthmethodapp.AuthMethod'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing OIDC authentication method configuration given
        its ID.
      tags:
      - oidc-auth-method
    patch:
      consumes:
      - application/json
      description: Update an existing OIDC authentication method configuration.
      operationId: updateOIDCAuthMethod
      parameters:
      - description: OIDC authentication method configuration ID
        format: uuid
        in: path
        name: auth_method_id
        required: true
        type: string
      - description: Updated OIDC authentication method configuration
        in: body
        name: query
        schema:
          $ref: '#/definitions/oidcauthmethodapp.UpdateAuthMethod'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/oidcauthmethodapp.AuthMethod'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing OIDC authentication method configuration.
      tags:
      - oidc-auth-method
  /v1/system/saml:
    get:
      consumes:
      - application/json
      description: Retrieves all the SAML authentication method configurations.
      operationId: querySAMLAuthMethod
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-samlauthmethodapp_AuthMethod'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the SAML authentication method configurations.
      tags:
      - saml-auth-method
    post:
      consumes:
      - application/json
      description: Create a new SAML authentication method configuration.
      operationId: createSAMLAuthMethod
      parameters:
      - description: New authentication method
        in: body
        name: query
        required: true
        schema:
          $ref: '#/definitions/samlauthmethodapp.NewAuthMethod'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/samlauthmethodapp.AuthMethod'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new SAML authentication method configuration.
      tags:
      - saml-auth-method
  /v1/system/saml/{auth_method_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing SAML authentication method configuration.
      operationId: deleteSAMLAuthMethod
      parameters:
      - description: SAML authentication method configuration ID
        format: uuid
        in: path
        name: auth_method_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
        format: uuid
        in: path
        name: auth_method_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/samlauthmethodapp.AuthMethod'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing SAML authentication method configuration given
        its ID.
      tags:
      - saml-auth-method
    patch:
      consumes:
      - application/json
      description: Update an existing SAML authentication method configuration.
      operationId: updateSAMLAuthMethod
      parameters:
      - description: SAML authentication method configuration ID
        format: uuid
        in: path
        name: auth_method_id
        required: true
        type: string
      - description: Updated SAML authentication method configuration
        in: body
        name: query
        schema:
          $ref: '#/definitions/samlauthmethodapp.UpdateAuthMethod'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/samlauthmethodapp.AuthMethod'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.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
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/securityapp.Security'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves the existing system security configuration.
      tags:
      - system-security-configuration
    patch:
      consumes:
      - application/json
      description: Update an existing system security configuration.
      operationId: updateSecurity
      parameters:
      - description: System security configuration
        in: body
        name: security
        schema:
          $ref: '#/definitions/securityapp.UpdateSecurity'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/securityapp.Security'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing system security configuration.
      tags:
      - system-security-configuration
  /v1/users:
    get:
      consumes:
      - application/json
      description: Retrieves all the users.
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records with an exact match for the email.
        example: john.doe@example.com
        format: email
        in: query
        name: email
        type: string
      - description: Filter records with an exact match for the login method.
        enum:
        - standard
        - ldap
        - saml
        - oidc
        in: query
        name: login_method
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      - description: Filter records with an exact match for the username.
        in: query
        name: username
        type: string
      - description: Filter records with a partial match for the username.
        in: query
        name: username_contains
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-userapp_User'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the users.
      tags:
      - user
    post:
      consumes:
      - application/json
      description: Create a new user.
      operationId: createUser
      parameters:
      - description: New user
        in: body
        name: user
        required: true
        schema:
          $ref: '#/definitions/userapp.NewUser'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/userapp.User'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Create a new user.
      tags:
      - user
  /v1/users/{user_id}:
    delete:
      consumes:
      - application/json
      description: Delete an existing user.
      parameters:
      - description: User ID
        format: uuid
        in: path
        name: user_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Delete an existing user.
      tags:
      - user
    get:
      consumes:
      - application/json
      description: Retrieves an existing user given its ID.
      parameters:
      - description: User ID
        format: uuid
        in: path
        name: user_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/userapp.User'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves an existing user given its ID.
      tags:
      - user
    patch:
      consumes:
      - application/json
      description: Update an existing user.
      parameters:
      - description: User ID
        format: uuid
        in: path
        name: user_id
        required: true
        type: string
      - description: UpdatedAt user
        in: body
        name: user
        schema:
          $ref: '#/definitions/userapp.UpdateUser'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/userapp.User'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing user.
      tags:
      - user
  /v1/users/{user_id}/role:
    patch:
      consumes:
      - application/json
      description: Update an existing user's role.
      operationId: updateUserRole
      parameters:
      - description: User ID
        format: uuid
        in: path
        name: user_id
        required: true
        type: string
      - description: UpdatedAt role
        in: body
        name: user
        schema:
          $ref: '#/definitions/userapp.UpdateUserRole'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/userapp.User'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Update an existing user's role.
      tags:
      - user
  /v1/x/listeners/sftp:
    get:
      consumes:
      - application/json
      description: Retrieves all the sftp listeners.
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records by the default outbound node ID.
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        in: query
        name: default_outbound_node_id
        type: string
      - description: Filter records with an exact match for the default outbound node
          name.
        in: query
        name: default_outbound_node_name
        type: string
      - description: Filter records with a partial match for the default outbound
          node name.
        in: query
        name: default_outbound_node_name_contains
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records by the route ID.
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        in: query
        name: route_id
        type: string
      - description: Filter records with an exact match for the route name.
        in: query
        name: route_name
        type: string
      - description: Filter records with a partial match for the route name.
        in: query
        name: route_name_contains
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-vsftplistenerapp_Listener'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the sftp listeners.
      tags:
      - views
  /v1/x/listeners/sftp/{listener_id}/deployments:
    get:
      consumes:
      - application/json
      description: Retrieves all the sftp deployments.
      operationId: querySFTPDeploymentView
      parameters:
      - description: SFTP Listener ID
        format: uuid
        in: path
        name: listener_id
        required: true
        type: string
      - description: Filter records by the client ID.
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        in: query
        name: client_id
        type: string
      - description: Filter records with an exact match for the client name.
        in: query
        name: client_name
        type: string
      - description: Filter records with a partial match for the client name.
        in: query
        name: client_name_contains
        type: string
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records by the LDAP client ID.
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        in: query
        name: ldap_client_id
        type: string
      - description: Filter records with an exact match for the LDAP client name.
        in: query
        name: ldap_client_name
        type: string
      - description: Filter records with a partial match for the LDAP client name.
        in: query
        name: ldap_client_name_contains
        type: string
      - description: Filter records by the LDAP tunnel ID.
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        in: query
        name: ldap_tunnel_id
        type: string
      - description: Filter records with an exact match for the LDAP tunnel name.
        in: query
        name: ldap_tunnel_name
        type: string
      - description: Filter records with a partial match for the LDAP tunnel name.
        in: query
        name: ldap_tunnel_name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records by the server ID.
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        in: query
        name: server_id
        type: string
      - description: Filter records with an exact match for the server name.
        in: query
        name: server_name
        type: string
      - description: Filter records with a partial match for the server name.
        in: query
        name: server_name_contains
        type: string
      - description: Filter records by the tunnel ID.
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        in: query
        name: tunnel_id
        type: string
      - description: Filter records with an exact match for the tunnel name.
        in: query
        name: tunnel_name
        type: string
      - description: Filter records with a partial match for the tunnel name.
        in: query
        name: tunnel_name_contains
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-vsftpdeploymentapp_Deployment'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the sftp deployments.
      tags:
      - views
  /v1/x/routes/sftp/{route_id}/nodes/inbound:
    get:
      consumes:
      - application/json
      description: Retrieves all the sftp inbound nodes.
      parameters:
      - description: Filter records created on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_from
        type: string
      - description: Filter records created on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: created_to
        type: string
      - description: Filter records by the host private key ID.
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        in: query
        name: host_private_key_id
        type: string
      - description: Filter records with an exact match for the host private key name.
        in: query
        name: host_private_key_name
        type: string
      - description: Filter records with a partial match for the host private key
          name.
        in: query
        name: host_private_key_name_contains
        type: string
      - description: Filter records by the IP filter ID.
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        in: query
        name: ip_filter_id
        type: string
      - description: Filter records with an exact match for the IP filter name.
        in: query
        name: ip_filter_name
        type: string
      - description: Filter records with a partial match for the IP filter name.
        in: query
        name: ip_filter_name_contains
        type: string
      - description: Filter records with an exact match for the name.
        in: query
        maxLength: 255
        minLength: 1
        name: name
        type: string
      - description: Filter records with a partial match for the name.
        in: query
        name: name_contains
        type: string
      - example: id+
        format: field(+|-)
        in: query
        name: order_by
        type: string
      - default: "1"
        example: "1"
        in: query
        name: page
        type: string
      - default: "10"
        example: "10"
        in: query
        name: page_size
        type: string
      - description: Filter records by the rule ID.
        example: 512b05ea-361a-40cf-a848-3afd7a6d9d70
        format: uuid
        in: query
        name: rule_id
        type: string
      - description: Filter records with an exact match for the rule name.
        in: query
        name: rule_name
        type: string
      - description: Filter records with a partial match for the rule name.
        in: query
        name: rule_name_contains
        type: string
      - description: Filter records updated on or after the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_from
        type: string
      - description: Filter records updated on or before the specified date.
        example: "2010-01-20T15:04:05.999999999+07:00"
        format: date-time
        in: query
        name: updated_to
        type: string
      - description: Route ID
        format: uuid
        in: path
        name: route_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/query.Result-vsftpinboundnodeapp_InboundNode'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/errs.Error'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/errs.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/errs.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/errs.Error'
      security:
      - Bearer: []
      summary: Retrieves all the sftp inbound nodes.
      tags:
      - views
securityDefinitions:
  Bearer:
    in: header
    name: Authorization
    scopes:
      write: Grants write access
    type: apiKey
swagger: "2.0"
