import { BaseResource } from '@gitbeaker/requester-utils'; import { RequestHelper } from '../infrastructure'; import type { Camelize, GitlabAPIResponse, ShowExpanded, Sudo } from '../infrastructure'; export interface ApplicationPlanLimitSchema extends Record { ci_pipeline_size: number; ci_active_jobs: number; ci_active_pipelines: number; ci_project_subscriptions: number; ci_pipeline_schedules: number; ci_needs_size_limit: number; ci_registered_group_runners: number; ci_registered_project_runners: number; conan_max_file_size: number; generic_packages_max_file_size: number; helm_max_file_size: number; maven_max_file_size: number; npm_max_file_size: number; nuget_max_file_size: number; pypi_max_file_size: number; terraform_module_max_file_size: number; storage_size_limit: number; } export type ApplicationPlanLimitOptions = Partial>; export class ApplicationPlanLimits extends BaseResource { show( options?: { planName?: string } & Sudo & ShowExpanded, ): Promise> { return RequestHelper.get()( this, 'application/plan_limits', options, ); } edit( planName: string, options: ApplicationPlanLimitOptions & Sudo & ShowExpanded = {}, ): Promise> { const { ciPipelineSize, ciActiveJobs, ciActivePipelines, ciProjectSubscriptions, ciPipelineSchedules, ciNeedsSizeLimit, ciRegisteredGroupRunners, ciRegisteredProjectRunners, conanMaxFileSize, genericPackagesMaxFileSize, helmMaxFileSize, mavenMaxFileSize, npmMaxFileSize, nugetMaxFileSize, pypiMaxFileSize, terraformModuleMaxFileSize, storageSizeLimit, ...opts } = options; return RequestHelper.put()(this, 'application/plan_limits', { ...opts, searchParams: { planName, ciPipelineSize, ciActiveJobs, ciActivePipelines, ciProjectSubscriptions, ciPipelineSchedules, ciNeedsSizeLimit, ciRegisteredGroupRunners, ciRegisteredProjectRunners, conanMaxFileSize, genericPackagesMaxFileSize, helmMaxFileSize, mavenMaxFileSize, npmMaxFileSize, nugetMaxFileSize, pypiMaxFileSize, terraformModuleMaxFileSize, storageSizeLimit, }, }); } }