import {z} from 'zod' export type GetApiV1ProjectsProjectsIdLocationsLocationsIdHyperparameterTuningJobsArgs = {projectsId: string, locationsId: string, filter?: string | undefined, pageSize?: number | undefined, pageToken?: string | undefined, readMask?: unknown | undefined}; export type GetApiV1ProjectsProjectsIdLocationsLocationsIdHyperparameterTuningJobsOptions = {baseUrl?: string | undefined, Oauth2?: string | undefined, Oauth2c?: string | undefined, fetch?: typeof fetch | undefined}; export const googleCloudAiplatformV1EncryptionSpec = z.object({kmsKeyName: z.string().optional()}); export const googleRpcStatus = z.object({code: z.number().int().optional(), details: z.array(z.record(z.string(), z.unknown())).optional(), message: z.string().optional()}); export const googleCloudAiplatformV1StudySpecConvexAutomatedStoppingSpec = z.object({learningRateParameterName: z.string().optional(), maxStepCount: z.string().optional(), minMeasurementCount: z.string().optional(), minStepCount: z.string().optional(), updateAllStoppedTrials: z.boolean().optional(), useElapsedDuration: z.boolean().optional()}); export const googleCloudAiplatformV1StudySpecDecayCurveAutomatedStoppingSpec = z.object({useElapsedDuration: z.boolean().optional()}); export const googleCloudAiplatformV1StudySpecMedianAutomatedStoppingSpec = z.object({useElapsedDuration: z.boolean().optional()}); export const googleCloudAiplatformV1StudySpecMetricSpecSafetyMetricConfig = z.object({desiredMinSafeTrialsFraction: z.number().optional(), safetyThreshold: z.number().optional()}); export const googleCloudAiplatformV1StudySpecMetricSpec = z.object({goal: z.enum(["GOAL_TYPE_UNSPECIFIED", "MAXIMIZE", "MINIMIZE"]).optional(), metricId: z.string().optional(), safetyConfig: googleCloudAiplatformV1StudySpecMetricSpecSafetyMetricConfig.optional()}); export const googleCloudAiplatformV1StudySpecParameterSpecCategoricalValueSpec = z.object({defaultValue: z.string().optional(), values: z.array(z.string()).optional()}); export const googleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecCategoricalValueCondition = z.object({values: z.array(z.string()).optional()}); export const googleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecDiscreteValueCondition = z.object({values: z.array(z.number()).optional()}); export const googleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecIntValueCondition = z.object({values: z.array(z.string()).optional()}); export const googleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpec = z.object({parameterSpec: z.lazy(() => googleCloudAiplatformV1StudySpecParameterSpec.optional()), parentCategoricalValues: googleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecCategoricalValueCondition.optional(), parentDiscreteValues: googleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecDiscreteValueCondition.optional(), parentIntValues: googleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecIntValueCondition.optional()}); export const googleCloudAiplatformV1StudySpecParameterSpecDiscreteValueSpec = z.object({defaultValue: z.number().optional(), values: z.array(z.number()).optional()}); export const googleCloudAiplatformV1StudySpecParameterSpecDoubleValueSpec = z.object({defaultValue: z.number().optional(), maxValue: z.number().optional(), minValue: z.number().optional()}); export const googleCloudAiplatformV1StudySpecParameterSpecIntegerValueSpec = z.object({defaultValue: z.string().optional(), maxValue: z.string().optional(), minValue: z.string().optional()}); export const googleCloudAiplatformV1StudySpecParameterSpec: z.ZodType = z.object({categoricalValueSpec: googleCloudAiplatformV1StudySpecParameterSpecCategoricalValueSpec.optional(), conditionalParameterSpecs: z.array(googleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpec).optional(), discreteValueSpec: googleCloudAiplatformV1StudySpecParameterSpecDiscreteValueSpec.optional(), doubleValueSpec: googleCloudAiplatformV1StudySpecParameterSpecDoubleValueSpec.optional(), integerValueSpec: googleCloudAiplatformV1StudySpecParameterSpecIntegerValueSpec.optional(), parameterId: z.string().optional(), scaleType: z.enum(["SCALE_TYPE_UNSPECIFIED", "UNIT_LINEAR_SCALE", "UNIT_LOG_SCALE", "UNIT_REVERSE_LOG_SCALE"]).optional()}); export const googleCloudAiplatformV1StudyTimeConstraint = z.object({endTime: z.string().optional(), maxDuration: z.string().optional()}); export const googleCloudAiplatformV1StudySpecStudyStoppingConfig = z.object({maxDurationNoProgress: z.string().optional(), maxNumTrials: z.number().int().optional(), maxNumTrialsNoProgress: z.number().int().optional(), maximumRuntimeConstraint: googleCloudAiplatformV1StudyTimeConstraint.optional(), minNumTrials: z.number().int().optional(), minimumRuntimeConstraint: googleCloudAiplatformV1StudyTimeConstraint.optional(), shouldStopAsap: z.boolean().optional()}); export const googleCloudAiplatformV1StudySpec = z.object({algorithm: z.enum(["ALGORITHM_UNSPECIFIED", "GRID_SEARCH", "RANDOM_SEARCH"]).optional(), convexAutomatedStoppingSpec: googleCloudAiplatformV1StudySpecConvexAutomatedStoppingSpec.optional(), decayCurveStoppingSpec: googleCloudAiplatformV1StudySpecDecayCurveAutomatedStoppingSpec.optional(), measurementSelectionType: z.enum(["MEASUREMENT_SELECTION_TYPE_UNSPECIFIED", "LAST_MEASUREMENT", "BEST_MEASUREMENT"]).optional(), medianAutomatedStoppingSpec: googleCloudAiplatformV1StudySpecMedianAutomatedStoppingSpec.optional(), metrics: z.array(googleCloudAiplatformV1StudySpecMetricSpec).optional(), observationNoise: z.enum(["OBSERVATION_NOISE_UNSPECIFIED", "LOW", "HIGH"]).optional(), parameters: z.array(googleCloudAiplatformV1StudySpecParameterSpec).optional(), studyStoppingConfig: googleCloudAiplatformV1StudySpecStudyStoppingConfig.optional()}); export const googleCloudAiplatformV1GcsDestination = z.object({outputUriPrefix: z.string().optional()}); export const googleCloudAiplatformV1DnsPeeringConfig = z.object({domain: z.string().optional(), targetNetwork: z.string().optional(), targetProject: z.string().optional()}); export const googleCloudAiplatformV1PscInterfaceConfig = z.object({dnsPeeringConfigs: z.array(googleCloudAiplatformV1DnsPeeringConfig).optional(), networkAttachment: z.string().optional()}); export const googleCloudAiplatformV1Scheduling = z.object({disableRetries: z.boolean().optional(), maxWaitDuration: z.string().optional(), restartJobOnWorkerRestart: z.boolean().optional(), strategy: z.enum(["STRATEGY_UNSPECIFIED", "ON_DEMAND", "LOW_COST", "STANDARD", "SPOT", "FLEX_START"]).optional(), timeout: z.string().optional()}); export const googleCloudAiplatformV1EnvVar = z.object({name: z.string().optional(), value: z.string().optional()}); export const googleCloudAiplatformV1ContainerSpec = z.object({args: z.array(z.string()).optional(), command: z.array(z.string()).optional(), env: z.array(googleCloudAiplatformV1EnvVar).optional(), imageUri: z.string().optional()}); export const googleCloudAiplatformV1DiskSpec = z.object({bootDiskSizeGb: z.number().int().optional(), bootDiskType: z.string().optional()}); export const googleCloudAiplatformV1LustreMount = z.object({filesystem: z.string().optional(), instanceIp: z.string().optional(), mountPoint: z.string().optional(), volumeHandle: z.string().optional()}); export const googleCloudAiplatformV1ReservationAffinity = z.object({key: z.string().optional(), reservationAffinityType: z.enum(["TYPE_UNSPECIFIED", "NO_RESERVATION", "ANY_RESERVATION", "SPECIFIC_RESERVATION"]).optional(), values: z.array(z.string()).optional()}); export const googleCloudAiplatformV1MachineSpec = z.object({acceleratorCount: z.number().int().optional(), acceleratorType: z.enum(["ACCELERATOR_TYPE_UNSPECIFIED", "NVIDIA_TESLA_K80", "NVIDIA_TESLA_P100", "NVIDIA_TESLA_V100", "NVIDIA_TESLA_P4", "NVIDIA_TESLA_T4", "NVIDIA_TESLA_A100", "NVIDIA_A100_80GB", "NVIDIA_L4", "NVIDIA_H100_80GB", "NVIDIA_H100_MEGA_80GB", "NVIDIA_H200_141GB", "NVIDIA_B200", "NVIDIA_GB200", "NVIDIA_RTX_PRO_6000", "TPU_V2", "TPU_V3", "TPU_V4_POD", "TPU_V5_LITEPOD"]).optional(), gpuPartitionSize: z.string().optional(), machineType: z.string().optional(), reservationAffinity: googleCloudAiplatformV1ReservationAffinity.optional(), tpuTopology: z.string().optional()}); export const googleCloudAiplatformV1NfsMount = z.object({mountPoint: z.string().optional(), path: z.string().optional(), server: z.string().optional()}); export const googleCloudAiplatformV1PythonPackageSpec = z.object({args: z.array(z.string()).optional(), env: z.array(googleCloudAiplatformV1EnvVar).optional(), executorImageUri: z.string().optional(), packageUris: z.array(z.string()).optional(), pythonModule: z.string().optional()}); export const googleCloudAiplatformV1WorkerPoolSpec = z.object({containerSpec: googleCloudAiplatformV1ContainerSpec.optional(), diskSpec: googleCloudAiplatformV1DiskSpec.optional(), lustreMounts: z.array(googleCloudAiplatformV1LustreMount).optional(), machineSpec: googleCloudAiplatformV1MachineSpec.optional(), nfsMounts: z.array(googleCloudAiplatformV1NfsMount).optional(), pythonPackageSpec: googleCloudAiplatformV1PythonPackageSpec.optional(), replicaCount: z.string().optional()}); export const googleCloudAiplatformV1CustomJobSpec = z.object({baseOutputDirectory: googleCloudAiplatformV1GcsDestination.optional(), enableDashboardAccess: z.boolean().optional(), enableWebAccess: z.boolean().optional(), experiment: z.string().optional(), experimentRun: z.string().optional(), models: z.array(z.string()).optional(), network: z.string().optional(), persistentResourceId: z.string().optional(), protectedArtifactLocationId: z.string().optional(), pscInterfaceConfig: googleCloudAiplatformV1PscInterfaceConfig.optional(), reservedIpRanges: z.array(z.string()).optional(), scheduling: googleCloudAiplatformV1Scheduling.optional(), serviceAccount: z.string().optional(), tensorboard: z.string().optional(), workerPoolSpecs: z.array(googleCloudAiplatformV1WorkerPoolSpec).optional()}); export const googleCloudAiplatformV1MeasurementMetric = z.object({metricId: z.string().optional(), value: z.number().optional()}); export const googleCloudAiplatformV1Measurement = z.object({elapsedDuration: z.string().optional(), metrics: z.array(googleCloudAiplatformV1MeasurementMetric).optional(), stepCount: z.string().optional()}); export const googleCloudAiplatformV1TrialParameter = z.object({parameterId: z.string().optional(), value: z.unknown()}); export const googleCloudAiplatformV1Trial = z.object({clientId: z.string().optional(), customJob: z.string().optional(), endTime: z.string().optional(), finalMeasurement: googleCloudAiplatformV1Measurement.optional(), id: z.string().optional(), infeasibleReason: z.string().optional(), measurements: z.array(googleCloudAiplatformV1Measurement).optional(), name: z.string().optional(), parameters: z.array(googleCloudAiplatformV1TrialParameter).optional(), startTime: z.string().optional(), state: z.enum(["STATE_UNSPECIFIED", "REQUESTED", "ACTIVE", "STOPPING", "SUCCEEDED", "INFEASIBLE"]).optional(), webAccessUris: z.record(z.string(), z.string()).optional()}); export const googleCloudAiplatformV1HyperparameterTuningJob = z.object({createTime: z.string().optional(), displayName: z.string().optional(), encryptionSpec: googleCloudAiplatformV1EncryptionSpec.optional(), endTime: z.string().optional(), error: googleRpcStatus.optional(), labels: z.record(z.string(), z.string()).optional(), maxFailedTrialCount: z.number().int().optional(), maxTrialCount: z.number().int().optional(), name: z.string().optional(), parallelTrialCount: z.number().int().optional(), satisfiesPzi: z.boolean().optional(), satisfiesPzs: z.boolean().optional(), startTime: z.string().optional(), state: z.enum(["JOB_STATE_UNSPECIFIED", "JOB_STATE_QUEUED", "JOB_STATE_PENDING", "JOB_STATE_RUNNING", "JOB_STATE_SUCCEEDED", "JOB_STATE_FAILED", "JOB_STATE_CANCELLING", "JOB_STATE_CANCELLED", "JOB_STATE_PAUSED", "JOB_STATE_EXPIRED", "JOB_STATE_UPDATING", "JOB_STATE_PARTIALLY_SUCCEEDED"]).optional(), studySpec: googleCloudAiplatformV1StudySpec.optional(), trialJobSpec: googleCloudAiplatformV1CustomJobSpec.optional(), trials: z.array(googleCloudAiplatformV1Trial).optional(), updateTime: z.string().optional()}); export const googleCloudAiplatformV1ListHyperparameterTuningJobsResponse = z.object({hyperparameterTuningJobs: z.array(googleCloudAiplatformV1HyperparameterTuningJob).optional(), nextPageToken: z.string().optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Lists HyperparameterTuningJobs in a Location. * * GET /v1/projects/{projectsId}/locations/{locationsId}/hyperparameterTuningJobs */ export const getApiV1ProjectsProjectsIdLocationsLocationsIdHyperparameterTuningJobs = async (args: GetApiV1ProjectsProjectsIdLocationsLocationsIdHyperparameterTuningJobsArgs, options?: GetApiV1ProjectsProjectsIdLocationsLocationsIdHyperparameterTuningJobsOptions) => { const {baseUrl = "https://aiplatform.googleapis.com", fetch: fetchFn = fetch, Oauth2, Oauth2c} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (args.filter != null) query.append("filter", String(args.filter)) if (args.pageSize != null) query.append("pageSize", String(args.pageSize)) if (args.pageToken != null) query.append("pageToken", String(args.pageToken)) if (args.readMask != null) query.append("readMask", String(args.readMask)) if (Oauth2 !== undefined) headers.set('authorization', `Bearer ${Oauth2}`) if (Oauth2c !== undefined) headers.set('authorization', `Bearer ${Oauth2c}`) const url = `${baseUrl.replace(/\/+$/, '')}/v1/projects/${encodeURIComponent(String(args.projectsId))}/locations/${encodeURIComponent(String(args.locationsId))}/hyperparameterTuningJobs${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(googleCloudAiplatformV1ListHyperparameterTuningJobsResponse, await res.json()) };