// This file is auto-generated by @hey-api/openapi-ts

import { oc } from '@orpc/contract'
import * as z from 'zod'

import {
  zDeleteApiKeyAuthDataSourceByBindingIdPath,
  zDeleteApiKeyAuthDataSourceByBindingIdResponse,
  zGetApiKeyAuthDataSourceResponse,
  zPostApiKeyAuthDataSourceBindingBody,
  zPostApiKeyAuthDataSourceBindingResponse,
} from './zod.gen'

export const post = oc
  .route({
    inputStructure: 'detailed',
    method: 'POST',
    operationId: 'postApiKeyAuthDataSourceBinding',
    path: '/api-key-auth/data-source/binding',
    tags: ['console'],
  })
  .input(z.object({ body: zPostApiKeyAuthDataSourceBindingBody }))
  .output(zPostApiKeyAuthDataSourceBindingResponse)

export const binding = {
  post,
}

export const delete_ = oc
  .route({
    inputStructure: 'detailed',
    method: 'DELETE',
    operationId: 'deleteApiKeyAuthDataSourceByBindingId',
    path: '/api-key-auth/data-source/{binding_id}',
    successStatus: 204,
    tags: ['console'],
  })
  .input(z.object({ params: zDeleteApiKeyAuthDataSourceByBindingIdPath }))
  .output(zDeleteApiKeyAuthDataSourceByBindingIdResponse)

export const byBindingId = {
  delete: delete_,
}

export const get = oc
  .route({
    inputStructure: 'detailed',
    method: 'GET',
    operationId: 'getApiKeyAuthDataSource',
    path: '/api-key-auth/data-source',
    tags: ['console'],
  })
  .output(zGetApiKeyAuthDataSourceResponse)

export const dataSource = {
  get,
  binding,
  byBindingId,
}

export const apiKeyAuth = {
  dataSource,
}

export const contract = {
  apiKeyAuth,
}
