From 08649013609e9ba39de734f8a496dd082d3cf76d Mon Sep 17 00:00:00 2001 From: Patti Shin Date: Tue, 6 Dec 2022 11:53:04 -0800 Subject: [PATCH] fix: removing migrated samples (to nodejs-docs-samples) from repo (#555) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor: removing migrated samples (to nodejs-docs-samples) from repo * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: clean up samples ref * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: clean up * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: clean up samples-test ref in kokoro * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: trigger snippets-bot * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: trigger snippets-bot * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .kokoro/continuous/node12/samples-test.cfg | 5 - .kokoro/pre-samples-test.sh | 18 - .kokoro/presubmit/node12/samples-test.cfg | 5 - README.md | 134 +- owlbot.py | 3 - package.json | 1 - samples/README.md | 2015 ---- samples/batch-create-features-sample.js | 124 - samples/batch-read-feature-values-sample.js | 136 - samples/cancel-batch-prediction-job.js | 62 - samples/cancel-custom-job.js | 61 - ...atch-prediction-job-text-classification.js | 93 - ...h-prediction-job-text-entity-extraction.js | 93 - ...-prediction-job-text-sentiment-analysis.js | 93 - ...prediction-job-video-action-recognition.js | 106 - ...tch-prediction-job-video-classification.js | 108 - ...ch-prediction-job-video-object-tracking.js | 104 - samples/create-custom-job.js | 86 - samples/create-dataset-image.js | 79 - samples/create-dataset-tabular-bigquery.js | 108 - samples/create-dataset-tabular-gcs.js | 108 - samples/create-dataset-text.js | 79 - samples/create-dataset-video.js | 79 - samples/create-dataset.js | 89 - samples/create-endpoint.js | 77 - .../create-entity-type-monitoring-sample.js | 106 - samples/create-entity-type-sample.js | 96 - samples/create-feature-sample.js | 100 - .../create-featurestore-fixed-nodes-sample.js | 94 - samples/create-featurestore-sample.js | 102 - samples/create-hyperparameter-tuning-job.js | 113 - ...-training-pipeline-image-classification.js | 103 - ...raining-pipeline-image-object-detection.js | 100 - ...raining-pipeline-tabular-classification.js | 114 - ...te-training-pipeline-tabular-regression.js | 139 - ...e-training-pipeline-text-classification.js | 95 - ...raining-pipeline-text-entity-extraction.js | 93 - ...aining-pipeline-text-sentiment-analysis.js | 95 - ...ining-pipeline-video-action-recognition.js | 97 - ...-training-pipeline-video-classification.js | 95 - ...training-pipeline-video-object-tracking.js | 97 - samples/delete-batch-prediction-job.js | 62 - samples/delete-custom-job.js | 62 - samples/delete-dataset.js | 65 - samples/delete-endpoint.js | 66 - samples/delete-entity-type-sample.js | 90 - samples/delete-export-model.js | 56 - samples/delete-feature-sample.js | 88 - samples/delete-featurestore-sample.js | 88 - samples/delete-model.js | 64 - samples/deploy-model-custom-trained-model.js | 100 - samples/deploy-model.js | 154 - .../create-data-labeling-job-image.test.js | 69 - .../create-data-labeling-job-video.test.js | 70 - .../create-data-labeling-job.test.js | 73 - .../get-training-pipeline.test.js | 42 - ...import-data-text-entity-extraction.test.js | 46 - ...mport-data-text-sentiment-analysis.test.js | 46 - .../import-data-video-object-tracking.test.js | 46 - samples/export-feature-values-sample.js | 105 - .../export-feature-values-snapshot-sample.js | 113 - .../export-model-tabular-classification.js | 80 - samples/export-model.js | 84 - .../v1/dataset_service.create_dataset.js | 68 - .../v1/dataset_service.delete_dataset.js | 64 - .../v1/dataset_service.export_data.js | 69 - .../v1/dataset_service.get_annotation_spec.js | 67 - .../v1/dataset_service.get_dataset.js | 65 - .../v1/dataset_service.import_data.js | 70 - .../v1/dataset_service.list_annotations.js | 86 - .../v1/dataset_service.list_data_items.js | 86 - .../v1/dataset_service.list_datasets.js | 99 - .../v1/dataset_service.list_saved_queries.js | 86 - .../v1/dataset_service.update_dataset.js | 71 - .../v1/endpoint_service.create_endpoint.js | 79 - .../v1/endpoint_service.delete_endpoint.js | 64 - .../v1/endpoint_service.deploy_model.js | 84 - .../v1/endpoint_service.get_endpoint.js | 63 - .../v1/endpoint_service.list_endpoints.js | 105 - .../v1/endpoint_service.undeploy_model.js | 79 - .../v1/endpoint_service.update_endpoint.js | 66 - ...ine_serving_service.read_feature_values.js | 77 - ...g_service.streaming_read_feature_values.js | 81 - ...turestore_service.batch_create_features.js | 72 - ...store_service.batch_read_feature_values.js | 111 - ...featurestore_service.create_entity_type.js | 77 - .../v1/featurestore_service.create_feature.js | 78 - ...eaturestore_service.create_featurestore.js | 78 - ...featurestore_service.delete_entity_type.js | 69 - .../v1/featurestore_service.delete_feature.js | 64 - ...eaturestore_service.delete_featurestore.js | 70 - ...turestore_service.export_feature_values.js | 88 - .../featurestore_service.get_entity_type.js | 63 - .../v1/featurestore_service.get_feature.js | 63 - .../featurestore_service.get_featurestore.js | 61 - ...turestore_service.import_feature_values.js | 114 - .../featurestore_service.list_entity_types.js | 112 - .../v1/featurestore_service.list_features.js | 122 - ...featurestore_service.list_featurestores.js | 113 - .../featurestore_service.search_features.js | 132 - ...featurestore_service.update_entity_type.js | 84 - .../v1/featurestore_service.update_feature.js | 78 - ...eaturestore_service.update_featurestore.js | 79 - ..._endpoint_service.create_index_endpoint.js | 68 - ..._endpoint_service.delete_index_endpoint.js | 64 - .../v1/index_endpoint_service.deploy_index.js | 69 - ...dex_endpoint_service.get_index_endpoint.js | 63 - ...x_endpoint_service.list_index_endpoints.js | 98 - ..._endpoint_service.mutate_deployed_index.js | 71 - .../index_endpoint_service.undeploy_index.js | 69 - ..._endpoint_service.update_index_endpoint.js | 66 - .../v1/index_service.create_index.js | 68 - .../v1/index_service.delete_index.js | 64 - .../generated/v1/index_service.get_index.js | 63 - .../v1/index_service.list_indexes.js | 83 - .../v1/index_service.remove_datapoints.js | 67 - .../v1/index_service.update_index.js | 67 - .../v1/index_service.upsert_datapoints.js | 67 - ...job_service.cancel_batch_prediction_job.js | 63 - .../v1/job_service.cancel_custom_job.js | 63 - .../job_service.cancel_data_labeling_job.js | 63 - ...ervice.cancel_hyperparameter_tuning_job.js | 63 - ...job_service.create_batch_prediction_job.js | 67 - .../v1/job_service.create_custom_job.js | 67 - .../job_service.create_data_labeling_job.js | 67 - ...ervice.create_hyperparameter_tuning_job.js | 67 - ....create_model_deployment_monitoring_job.js | 67 - ...job_service.delete_batch_prediction_job.js | 64 - .../v1/job_service.delete_custom_job.js | 64 - .../job_service.delete_data_labeling_job.js | 64 - ...ervice.delete_hyperparameter_tuning_job.js | 64 - ....delete_model_deployment_monitoring_job.js | 64 - .../job_service.get_batch_prediction_job.js | 63 - .../v1/job_service.get_custom_job.js | 63 - .../v1/job_service.get_data_labeling_job.js | 63 - ...b_service.get_hyperparameter_tuning_job.js | 63 - ...ice.get_model_deployment_monitoring_job.js | 63 - .../job_service.list_batch_prediction_jobs.js | 99 - .../v1/job_service.list_custom_jobs.js | 98 - .../v1/job_service.list_data_labeling_jobs.js | 104 - ...service.list_hyperparameter_tuning_jobs.js | 98 - ...e.list_model_deployment_monitoring_jobs.js | 95 - ...e.pause_model_deployment_monitoring_job.js | 63 - ....resume_model_deployment_monitoring_job.js | 63 - ...l_deployment_monitoring_stats_anomalies.js | 103 - ....update_model_deployment_monitoring_job.js | 92 - ...ce.add_context_artifacts_and_executions.js | 77 - .../metadata_service.add_context_children.js | 67 - .../metadata_service.add_execution_events.js | 68 - .../v1/metadata_service.create_artifact.js | 79 - .../v1/metadata_service.create_context.js | 79 - .../v1/metadata_service.create_execution.js | 80 - ...metadata_service.create_metadata_schema.js | 80 - .../metadata_service.create_metadata_store.js | 80 - .../v1/metadata_service.delete_artifact.js | 70 - .../v1/metadata_service.delete_context.js | 75 - .../v1/metadata_service.delete_execution.js | 70 - .../metadata_service.delete_metadata_store.js | 64 - .../v1/metadata_service.get_artifact.js | 63 - .../v1/metadata_service.get_context.js | 63 - .../v1/metadata_service.get_execution.js | 63 - .../metadata_service.get_metadata_schema.js | 63 - .../v1/metadata_service.get_metadata_store.js | 63 - .../v1/metadata_service.list_artifacts.js | 114 - .../v1/metadata_service.list_contexts.js | 117 - .../v1/metadata_service.list_executions.js | 114 - .../metadata_service.list_metadata_schemas.js | 84 - .../metadata_service.list_metadata_stores.js | 80 - .../v1/metadata_service.purge_artifacts.js | 76 - .../v1/metadata_service.purge_contexts.js | 76 - .../v1/metadata_service.purge_executions.js | 76 - ...service.query_artifact_lineage_subgraph.js | 96 - ..._service.query_context_lineage_subgraph.js | 67 - ...vice.query_execution_inputs_and_outputs.js | 64 - ...etadata_service.remove_context_children.js | 67 - .../v1/metadata_service.update_artifact.js | 75 - .../v1/metadata_service.update_context.js | 75 - .../v1/metadata_service.update_execution.js | 75 - ...gration_service.batch_migrate_resources.js | 70 - ...ion_service.search_migratable_resources.js | 90 - ...ce.batch_import_model_evaluation_slices.js | 68 - .../v1/model_service.delete_model.js | 63 - .../v1/model_service.delete_model_version.js | 64 - .../v1/model_service.export_model.js | 69 - .../generated/v1/model_service.get_model.js | 71 - .../v1/model_service.get_model_evaluation.js | 63 - ...odel_service.get_model_evaluation_slice.js | 63 - .../model_service.import_model_evaluation.js | 67 - ...el_service.list_model_evaluation_slices.js | 85 - .../model_service.list_model_evaluations.js | 83 - .../v1/model_service.list_model_versions.js | 89 - .../generated/v1/model_service.list_models.js | 105 - .../v1/model_service.merge_version_aliases.js | 78 - .../v1/model_service.update_model.js | 84 - .../v1/model_service.upload_model.js | 80 - .../pipeline_service.cancel_pipeline_job.js | 63 - ...peline_service.cancel_training_pipeline.js | 63 - .../pipeline_service.create_pipeline_job.js | 75 - ...peline_service.create_training_pipeline.js | 67 - .../pipeline_service.delete_pipeline_job.js | 64 - ...peline_service.delete_training_pipeline.js | 64 - .../v1/pipeline_service.get_pipeline_job.js | 63 - .../pipeline_service.get_training_pipeline.js | 63 - .../v1/pipeline_service.list_pipeline_jobs.js | 126 - ...ipeline_service.list_training_pipelines.js | 98 - .../v1/prediction_service.explain.js | 99 - .../v1/prediction_service.predict.js | 83 - .../v1/prediction_service.raw_predict.js | 77 - ...t_metadata.google.cloud.aiplatform.v1.json | 8955 ---------------- ...ist_pool_service.create_specialist_pool.js | 68 - ...ist_pool_service.delete_specialist_pool.js | 69 - ...ialist_pool_service.get_specialist_pool.js | 63 - ...list_pool_service.list_specialist_pools.js | 79 - ...ist_pool_service.update_specialist_pool.js | 67 - ...d_service.batch_create_tensorboard_runs.js | 71 - ...ce.batch_create_tensorboard_time_series.js | 73 - ...batch_read_tensorboard_time_series_data.js | 71 - .../tensorboard_service.create_tensorboard.js | 68 - ...d_service.create_tensorboard_experiment.js | 75 - ...sorboard_service.create_tensorboard_run.js | 76 - ..._service.create_tensorboard_time_series.js | 76 - .../tensorboard_service.delete_tensorboard.js | 64 - ...d_service.delete_tensorboard_experiment.js | 64 - ...sorboard_service.delete_tensorboard_run.js | 64 - ..._service.delete_tensorboard_time_series.js | 64 - ...ice.export_tensorboard_time_series_data.js | 90 - .../v1/tensorboard_service.get_tensorboard.js | 63 - ...oard_service.get_tensorboard_experiment.js | 63 - ...tensorboard_service.get_tensorboard_run.js | 63 - ...ard_service.get_tensorboard_time_series.js | 63 - ...rd_service.list_tensorboard_experiments.js | 93 - ...nsorboard_service.list_tensorboard_runs.js | 93 - ...rd_service.list_tensorboard_time_series.js | 93 - .../tensorboard_service.list_tensorboards.js | 93 - ...oard_service.read_tensorboard_blob_data.js | 69 - ...rvice.read_tensorboard_time_series_data.js | 73 - .../tensorboard_service.update_tensorboard.js | 74 - ...d_service.update_tensorboard_experiment.js | 73 - ...sorboard_service.update_tensorboard_run.js | 73 - ..._service.update_tensorboard_time_series.js | 74 - ...rvice.write_tensorboard_experiment_data.js | 68 - ...oard_service.write_tensorboard_run_data.js | 72 - .../vizier_service.add_trial_measurement.js | 68 - ...ervice.check_trial_early_stopping_state.js | 64 - .../v1/vizier_service.complete_trial.js | 79 - .../v1/vizier_service.create_study.js | 67 - .../v1/vizier_service.create_trial.js | 67 - .../v1/vizier_service.delete_study.js | 62 - .../v1/vizier_service.delete_trial.js | 63 - .../generated/v1/vizier_service.get_study.js | 62 - .../generated/v1/vizier_service.get_trial.js | 63 - .../v1/vizier_service.list_optimal_trials.js | 61 - .../v1/vizier_service.list_studies.js | 74 - .../v1/vizier_service.list_trials.js | 74 - .../v1/vizier_service.lookup_study.js | 67 - .../generated/v1/vizier_service.stop_trial.js | 63 - .../v1/vizier_service.suggest_trials.js | 76 - .../v1beta1/dataset_service.create_dataset.js | 68 - .../v1beta1/dataset_service.delete_dataset.js | 64 - .../v1beta1/dataset_service.export_data.js | 69 - .../dataset_service.get_annotation_spec.js | 67 - .../v1beta1/dataset_service.get_dataset.js | 65 - .../v1beta1/dataset_service.import_data.js | 70 - .../dataset_service.list_annotations.js | 86 - .../dataset_service.list_data_items.js | 86 - .../v1beta1/dataset_service.list_datasets.js | 99 - .../dataset_service.list_saved_queries.js | 86 - .../v1beta1/dataset_service.update_dataset.js | 71 - ...service.create_deployment_resource_pool.js | 77 - ...service.delete_deployment_resource_pool.js | 64 - ...ol_service.get_deployment_resource_pool.js | 63 - ..._service.list_deployment_resource_pools.js | 77 - ...urce_pool_service.query_deployed_models.js | 78 - .../endpoint_service.create_endpoint.js | 79 - .../endpoint_service.delete_endpoint.js | 64 - .../v1beta1/endpoint_service.deploy_model.js | 84 - .../v1beta1/endpoint_service.get_endpoint.js | 63 - .../endpoint_service.list_endpoints.js | 95 - .../endpoint_service.undeploy_model.js | 79 - .../endpoint_service.update_endpoint.js | 66 - ...ine_serving_service.read_feature_values.js | 77 - ...g_service.streaming_read_feature_values.js | 81 - ...ne_serving_service.write_feature_values.js | 71 - ...turestore_service.batch_create_features.js | 72 - ...store_service.batch_read_feature_values.js | 111 - ...featurestore_service.create_entity_type.js | 77 - .../featurestore_service.create_feature.js | 78 - ...eaturestore_service.create_featurestore.js | 78 - ...featurestore_service.delete_entity_type.js | 69 - .../featurestore_service.delete_feature.js | 64 - ...turestore_service.delete_feature_values.js | 73 - ...eaturestore_service.delete_featurestore.js | 70 - ...turestore_service.export_feature_values.js | 88 - .../featurestore_service.get_entity_type.js | 63 - .../featurestore_service.get_feature.js | 63 - .../featurestore_service.get_featurestore.js | 61 - ...turestore_service.import_feature_values.js | 114 - .../featurestore_service.list_entity_types.js | 112 - .../featurestore_service.list_features.js | 122 - ...featurestore_service.list_featurestores.js | 113 - .../featurestore_service.search_features.js | 132 - ...featurestore_service.update_entity_type.js | 84 - .../featurestore_service.update_feature.js | 78 - ...eaturestore_service.update_featurestore.js | 79 - ..._endpoint_service.create_index_endpoint.js | 68 - ..._endpoint_service.delete_index_endpoint.js | 64 - .../index_endpoint_service.deploy_index.js | 69 - ...dex_endpoint_service.get_index_endpoint.js | 63 - ...x_endpoint_service.list_index_endpoints.js | 98 - ..._endpoint_service.mutate_deployed_index.js | 71 - .../index_endpoint_service.undeploy_index.js | 69 - ..._endpoint_service.update_index_endpoint.js | 66 - .../v1beta1/index_service.create_index.js | 68 - .../v1beta1/index_service.delete_index.js | 64 - .../v1beta1/index_service.get_index.js | 63 - .../v1beta1/index_service.list_indexes.js | 83 - .../index_service.remove_datapoints.js | 67 - .../v1beta1/index_service.update_index.js | 67 - .../index_service.upsert_datapoints.js | 67 - ...job_service.cancel_batch_prediction_job.js | 63 - .../v1beta1/job_service.cancel_custom_job.js | 63 - .../job_service.cancel_data_labeling_job.js | 63 - ...ervice.cancel_hyperparameter_tuning_job.js | 63 - ...job_service.create_batch_prediction_job.js | 67 - .../v1beta1/job_service.create_custom_job.js | 67 - .../job_service.create_data_labeling_job.js | 67 - ...ervice.create_hyperparameter_tuning_job.js | 67 - ....create_model_deployment_monitoring_job.js | 67 - ...job_service.delete_batch_prediction_job.js | 64 - .../v1beta1/job_service.delete_custom_job.js | 64 - .../job_service.delete_data_labeling_job.js | 64 - ...ervice.delete_hyperparameter_tuning_job.js | 64 - ....delete_model_deployment_monitoring_job.js | 64 - .../job_service.get_batch_prediction_job.js | 63 - .../v1beta1/job_service.get_custom_job.js | 63 - .../job_service.get_data_labeling_job.js | 63 - ...b_service.get_hyperparameter_tuning_job.js | 63 - ...ice.get_model_deployment_monitoring_job.js | 63 - .../job_service.list_batch_prediction_jobs.js | 99 - .../v1beta1/job_service.list_custom_jobs.js | 98 - .../job_service.list_data_labeling_jobs.js | 104 - ...service.list_hyperparameter_tuning_jobs.js | 98 - ...e.list_model_deployment_monitoring_jobs.js | 95 - ...e.pause_model_deployment_monitoring_job.js | 63 - ....resume_model_deployment_monitoring_job.js | 63 - ...l_deployment_monitoring_stats_anomalies.js | 103 - ....update_model_deployment_monitoring_job.js | 92 - ...ce.add_context_artifacts_and_executions.js | 77 - .../metadata_service.add_context_children.js | 67 - .../metadata_service.add_execution_events.js | 68 - .../metadata_service.create_artifact.js | 79 - .../metadata_service.create_context.js | 79 - .../metadata_service.create_execution.js | 80 - ...metadata_service.create_metadata_schema.js | 80 - .../metadata_service.create_metadata_store.js | 80 - .../metadata_service.delete_artifact.js | 70 - .../metadata_service.delete_context.js | 75 - .../metadata_service.delete_execution.js | 70 - .../metadata_service.delete_metadata_store.js | 64 - .../v1beta1/metadata_service.get_artifact.js | 63 - .../v1beta1/metadata_service.get_context.js | 63 - .../v1beta1/metadata_service.get_execution.js | 63 - .../metadata_service.get_metadata_schema.js | 63 - .../metadata_service.get_metadata_store.js | 63 - .../metadata_service.list_artifacts.js | 114 - .../v1beta1/metadata_service.list_contexts.js | 117 - .../metadata_service.list_executions.js | 114 - .../metadata_service.list_metadata_schemas.js | 84 - .../metadata_service.list_metadata_stores.js | 80 - .../metadata_service.purge_artifacts.js | 76 - .../metadata_service.purge_contexts.js | 76 - .../metadata_service.purge_executions.js | 76 - ...service.query_artifact_lineage_subgraph.js | 96 - ..._service.query_context_lineage_subgraph.js | 67 - ...vice.query_execution_inputs_and_outputs.js | 64 - ...etadata_service.remove_context_children.js | 67 - .../metadata_service.update_artifact.js | 75 - .../metadata_service.update_context.js | 75 - .../metadata_service.update_execution.js | 75 - ...gration_service.batch_migrate_resources.js | 70 - ...ion_service.search_migratable_resources.js | 90 - ...ce.batch_import_model_evaluation_slices.js | 68 - .../v1beta1/model_service.delete_model.js | 63 - .../model_service.delete_model_version.js | 64 - .../v1beta1/model_service.export_model.js | 69 - .../v1beta1/model_service.get_model.js | 71 - .../model_service.get_model_evaluation.js | 63 - ...odel_service.get_model_evaluation_slice.js | 63 - .../model_service.import_model_evaluation.js | 67 - ...el_service.list_model_evaluation_slices.js | 85 - .../model_service.list_model_evaluations.js | 83 - .../model_service.list_model_versions.js | 89 - .../v1beta1/model_service.list_models.js | 95 - .../model_service.merge_version_aliases.js | 78 - ...odel_service.update_explanation_dataset.js | 67 - .../v1beta1/model_service.update_model.js | 84 - .../v1beta1/model_service.upload_model.js | 80 - .../pipeline_service.cancel_pipeline_job.js | 63 - ...peline_service.cancel_training_pipeline.js | 63 - .../pipeline_service.create_pipeline_job.js | 75 - ...peline_service.create_training_pipeline.js | 67 - .../pipeline_service.delete_pipeline_job.js | 64 - ...peline_service.delete_training_pipeline.js | 64 - .../pipeline_service.get_pipeline_job.js | 63 - .../pipeline_service.get_training_pipeline.js | 63 - .../pipeline_service.list_pipeline_jobs.js | 126 - ...ipeline_service.list_training_pipelines.js | 98 - .../v1beta1/prediction_service.explain.js | 99 - .../v1beta1/prediction_service.predict.js | 83 - .../v1beta1/prediction_service.raw_predict.js | 77 - ...adata.google.cloud.aiplatform.v1beta1.json | 9307 ----------------- ...ist_pool_service.create_specialist_pool.js | 68 - ...ist_pool_service.delete_specialist_pool.js | 69 - ...ialist_pool_service.get_specialist_pool.js | 63 - ...list_pool_service.list_specialist_pools.js | 79 - ...ist_pool_service.update_specialist_pool.js | 67 - ...d_service.batch_create_tensorboard_runs.js | 71 - ...ce.batch_create_tensorboard_time_series.js | 73 - ...batch_read_tensorboard_time_series_data.js | 71 - .../tensorboard_service.create_tensorboard.js | 68 - ...d_service.create_tensorboard_experiment.js | 75 - ...sorboard_service.create_tensorboard_run.js | 76 - ..._service.create_tensorboard_time_series.js | 76 - .../tensorboard_service.delete_tensorboard.js | 64 - ...d_service.delete_tensorboard_experiment.js | 64 - ...sorboard_service.delete_tensorboard_run.js | 64 - ..._service.delete_tensorboard_time_series.js | 64 - ...ice.export_tensorboard_time_series_data.js | 90 - .../tensorboard_service.get_tensorboard.js | 63 - ...oard_service.get_tensorboard_experiment.js | 63 - ...tensorboard_service.get_tensorboard_run.js | 63 - ...ard_service.get_tensorboard_time_series.js | 63 - ...rd_service.list_tensorboard_experiments.js | 93 - ...nsorboard_service.list_tensorboard_runs.js | 93 - ...rd_service.list_tensorboard_time_series.js | 93 - .../tensorboard_service.list_tensorboards.js | 93 - ...oard_service.read_tensorboard_blob_data.js | 69 - ...rvice.read_tensorboard_time_series_data.js | 73 - .../tensorboard_service.update_tensorboard.js | 74 - ...d_service.update_tensorboard_experiment.js | 73 - ...sorboard_service.update_tensorboard_run.js | 73 - ..._service.update_tensorboard_time_series.js | 74 - ...rvice.write_tensorboard_experiment_data.js | 68 - ...oard_service.write_tensorboard_run_data.js | 72 - .../vizier_service.add_trial_measurement.js | 68 - ...ervice.check_trial_early_stopping_state.js | 64 - .../v1beta1/vizier_service.complete_trial.js | 79 - .../v1beta1/vizier_service.create_study.js | 67 - .../v1beta1/vizier_service.create_trial.js | 67 - .../v1beta1/vizier_service.delete_study.js | 62 - .../v1beta1/vizier_service.delete_trial.js | 63 - .../v1beta1/vizier_service.get_study.js | 62 - .../v1beta1/vizier_service.get_trial.js | 63 - .../vizier_service.list_optimal_trials.js | 61 - .../v1beta1/vizier_service.list_studies.js | 74 - .../v1beta1/vizier_service.list_trials.js | 74 - .../v1beta1/vizier_service.lookup_study.js | 67 - .../v1beta1/vizier_service.stop_trial.js | 63 - .../v1beta1/vizier_service.suggest_trials.js | 76 - samples/get-batch-prediction-job.js | 151 - samples/get-custom-job.js | 62 - samples/get-entity-type-sample.js | 86 - samples/get-feature-sample.js | 88 - samples/get-featurestore-sample.js | 85 - samples/get-hyperparameter-tuning-job.js | 70 - ...t-model-evaluation-image-classification.js | 106 - ...model-evaluation-image-object-detection.js | 110 - samples/get-model-evaluation-slice.js | 86 - ...model-evaluation-tabular-classification.js | 111 - ...get-model-evaluation-tabular-regression.js | 111 - ...et-model-evaluation-text-classification.js | 109 - ...model-evaluation-text-entity-extraction.js | 109 - ...odel-evaluation-text-sentiment-analysis.js | 109 - ...del-evaluation-video-action-recognition.js | 80 - ...t-model-evaluation-video-classification.js | 75 - ...-model-evaluation-video-object-tracking.js | 75 - samples/get-model-evaluation.js | 67 - samples/get-model.js | 129 - samples/get-training-pipeline.js | 67 - samples/import-data-image-classification.js | 82 - samples/import-data-image-object-detection.js | 82 - ...t-data-text-classification-single-label.js | 82 - samples/import-data-text-entity-extraction.js | 81 - .../import-data-text-sentiment-analysis.js | 81 - .../import-data-video-action-recognition.js | 82 - samples/import-data-video-classification.js | 82 - samples/import-data-video-object-tracking.js | 81 - samples/import-data.js | 79 - samples/import-feature-values-sample.js | 108 - samples/list-endpoints.js | 62 - samples/list-entity-types-async-sample.js | 86 - samples/list-entity-types-sample.js | 84 - samples/list-entity-types-stream-sample.js | 94 - samples/list-features-async-sample.js | 90 - samples/list-features-sample.js | 85 - samples/list-features-stream-sample.js | 98 - samples/list-featurestores-async-sample.js | 84 - samples/list-featurestores-sample.js | 82 - samples/list-featurestores-stream-sample.js | 93 - samples/list-model-evaluation-slices.js | 72 - samples/package.json | 25 - samples/predict-custom-trained-model.js | 105 - samples/predict-image-classification.js | 95 - samples/predict-image-object-detection.js | 98 - samples/predict-tabular-classification.js | 93 - samples/predict-tabular-regression.js | 112 - samples/predict-text-classification.js | 89 - samples/predict-text-entity-extraction.js | 97 - samples/predict-text-sentiment-analysis.js | 84 - samples/quickstart.js | 36 - samples/read-feature-values-sample.js | 96 - samples/resources/caprese_salad.jpg | Bin 908707 -> 0 bytes samples/resources/daisy.jpg | Bin 76076 -> 0 bytes samples/search-features-async-sample.js | 88 - samples/search-features-sample.js | 83 - samples/search-features-stream-sample.js | 96 - ...prediction-job-text-classification.test.js | 74 - ...diction-job-text-entity-extraction.test.js | 74 - ...iction-job-text-sentiment-analysis.test.js | 74 - ...ction-job-video-action-recognition.test.js | 77 - ...rediction-job-video-classification.test.js | 83 - ...ediction-job-video-object-tracking.test.js | 83 - samples/test/create-custom-job.test.js | 77 - samples/test/create-dataset-image.test.js | 54 - .../create-dataset-tabular-bigquery.test.js | 56 - .../test/create-dataset-tabular-gcs.test.js | 56 - samples/test/create-dataset-text.test.js | 53 - samples/test/create-dataset-video.test.js | 54 - samples/test/create-dataset.test.js | 56 - samples/test/create-endpoint.test.js | 53 - ...te-featurestore-fixed-nodes-sample.test.js | 67 - .../test/create-featurestore-sample.test.js | 68 - .../create-hyperparameter-tuning-job.test.js | 78 - ...ning-pipeline-image-classification.test.js | 74 - ...ng-pipeline-image-object-detection.test.js | 86 - ...ng-pipeline-tabular-classification.test.js | 88 - ...aining-pipeline-tabular-regression.test.js | 88 - ...ining-pipeline-text-classification.test.js | 85 - ...ng-pipeline-text-entity-extraction.test.js | 85 - ...g-pipeline-text-sentiment-analysis.test.js | 85 - ...-pipeline-video-action-recognition.test.js | 77 - ...ning-pipeline-video-classification.test.js | 85 - ...ing-pipeline-video-object-tracking.test.js | 85 - .../deploy-model-custom-trained-model.test.js | 62 - samples/test/deploy-model.test.js | 63 - samples/test/entity-type-samples.test.js | 132 - ...xport-model-tabular-classification.test.js | 46 - samples/test/feature-samples.test.js | 187 - samples/test/feature-values-samples.test.js | 306 - samples/test/featurestore-samples.test.js | 101 - samples/test/get-custom-job.test.js | 41 - .../get-hyperparameter-tuning-job.test.js | 36 - .../test/get-model-evaluation-slice.test.js | 45 - ...-evaluation-tabular-classification.test.js | 48 - ...odel-evaluation-tabular-regression.test.js | 45 - ...valuation-video-action-recognition.test.js | 43 - ...el-evaluation-video-classification.test.js | 45 - ...l-evaluation-video-object-tracking.test.js | 45 - samples/test/get-model.test.js | 41 - samples/test/get-training-pipeline.test.js | 36 - ...port-data-video-action-recognition.test.js | 75 - .../import-data-video-classification.test.js | 46 - samples/test/list-endpoints.test.js | 37 - .../test/list-model-evaluation-slices.test.js | 46 - .../test/predict-image-classification.test.js | 45 - .../predict-image-object-detection.test.js | 46 - .../predict-tabular-classification.test.js | 44 - .../test/predict-tabular-regression.test.js | 42 - .../test/predict-text-classification.test.js | 44 - .../predict-text-entity-extraction.test.js | 43 - .../predict-text-sentiment-analysis.test.js | 44 - samples/test/quickstart.test.js | 29 - samples/test/upload-model.test.js | 61 - samples/undeploy-model.js | 74 - .../update-entity-type-monitoring-sample.js | 105 - samples/update-entity-type-sample.js | 97 - samples/update-feature-sample.js | 96 - .../update-featurestore-fixed-nodes-sample.js | 93 - samples/update-featurestore-sample.js | 101 - samples/upload-model.js | 94 - 580 files changed, 2 insertions(+), 64416 deletions(-) delete mode 100644 .kokoro/pre-samples-test.sh delete mode 100644 samples/README.md delete mode 100644 samples/batch-create-features-sample.js delete mode 100644 samples/batch-read-feature-values-sample.js delete mode 100644 samples/cancel-batch-prediction-job.js delete mode 100644 samples/cancel-custom-job.js delete mode 100644 samples/create-batch-prediction-job-text-classification.js delete mode 100644 samples/create-batch-prediction-job-text-entity-extraction.js delete mode 100644 samples/create-batch-prediction-job-text-sentiment-analysis.js delete mode 100644 samples/create-batch-prediction-job-video-action-recognition.js delete mode 100644 samples/create-batch-prediction-job-video-classification.js delete mode 100644 samples/create-batch-prediction-job-video-object-tracking.js delete mode 100644 samples/create-custom-job.js delete mode 100644 samples/create-dataset-image.js delete mode 100644 samples/create-dataset-tabular-bigquery.js delete mode 100644 samples/create-dataset-tabular-gcs.js delete mode 100644 samples/create-dataset-text.js delete mode 100644 samples/create-dataset-video.js delete mode 100644 samples/create-dataset.js delete mode 100644 samples/create-endpoint.js delete mode 100644 samples/create-entity-type-monitoring-sample.js delete mode 100644 samples/create-entity-type-sample.js delete mode 100644 samples/create-feature-sample.js delete mode 100644 samples/create-featurestore-fixed-nodes-sample.js delete mode 100644 samples/create-featurestore-sample.js delete mode 100644 samples/create-hyperparameter-tuning-job.js delete mode 100644 samples/create-training-pipeline-image-classification.js delete mode 100644 samples/create-training-pipeline-image-object-detection.js delete mode 100644 samples/create-training-pipeline-tabular-classification.js delete mode 100644 samples/create-training-pipeline-tabular-regression.js delete mode 100644 samples/create-training-pipeline-text-classification.js delete mode 100644 samples/create-training-pipeline-text-entity-extraction.js delete mode 100644 samples/create-training-pipeline-text-sentiment-analysis.js delete mode 100644 samples/create-training-pipeline-video-action-recognition.js delete mode 100644 samples/create-training-pipeline-video-classification.js delete mode 100644 samples/create-training-pipeline-video-object-tracking.js delete mode 100644 samples/delete-batch-prediction-job.js delete mode 100644 samples/delete-custom-job.js delete mode 100644 samples/delete-dataset.js delete mode 100644 samples/delete-endpoint.js delete mode 100644 samples/delete-entity-type-sample.js delete mode 100644 samples/delete-export-model.js delete mode 100644 samples/delete-feature-sample.js delete mode 100644 samples/delete-featurestore-sample.js delete mode 100644 samples/delete-model.js delete mode 100644 samples/deploy-model-custom-trained-model.js delete mode 100644 samples/deploy-model.js delete mode 100644 samples/expensive-test/create-data-labeling-job-image.test.js delete mode 100644 samples/expensive-test/create-data-labeling-job-video.test.js delete mode 100644 samples/expensive-test/create-data-labeling-job.test.js delete mode 100644 samples/expensive-test/get-training-pipeline.test.js delete mode 100644 samples/expensive-test/import-data-text-entity-extraction.test.js delete mode 100644 samples/expensive-test/import-data-text-sentiment-analysis.test.js delete mode 100644 samples/expensive-test/import-data-video-object-tracking.test.js delete mode 100644 samples/export-feature-values-sample.js delete mode 100644 samples/export-feature-values-snapshot-sample.js delete mode 100644 samples/export-model-tabular-classification.js delete mode 100644 samples/export-model.js delete mode 100644 samples/generated/v1/dataset_service.create_dataset.js delete mode 100644 samples/generated/v1/dataset_service.delete_dataset.js delete mode 100644 samples/generated/v1/dataset_service.export_data.js delete mode 100644 samples/generated/v1/dataset_service.get_annotation_spec.js delete mode 100644 samples/generated/v1/dataset_service.get_dataset.js delete mode 100644 samples/generated/v1/dataset_service.import_data.js delete mode 100644 samples/generated/v1/dataset_service.list_annotations.js delete mode 100644 samples/generated/v1/dataset_service.list_data_items.js delete mode 100644 samples/generated/v1/dataset_service.list_datasets.js delete mode 100644 samples/generated/v1/dataset_service.list_saved_queries.js delete mode 100644 samples/generated/v1/dataset_service.update_dataset.js delete mode 100644 samples/generated/v1/endpoint_service.create_endpoint.js delete mode 100644 samples/generated/v1/endpoint_service.delete_endpoint.js delete mode 100644 samples/generated/v1/endpoint_service.deploy_model.js delete mode 100644 samples/generated/v1/endpoint_service.get_endpoint.js delete mode 100644 samples/generated/v1/endpoint_service.list_endpoints.js delete mode 100644 samples/generated/v1/endpoint_service.undeploy_model.js delete mode 100644 samples/generated/v1/endpoint_service.update_endpoint.js delete mode 100644 samples/generated/v1/featurestore_online_serving_service.read_feature_values.js delete mode 100644 samples/generated/v1/featurestore_online_serving_service.streaming_read_feature_values.js delete mode 100644 samples/generated/v1/featurestore_service.batch_create_features.js delete mode 100644 samples/generated/v1/featurestore_service.batch_read_feature_values.js delete mode 100644 samples/generated/v1/featurestore_service.create_entity_type.js delete mode 100644 samples/generated/v1/featurestore_service.create_feature.js delete mode 100644 samples/generated/v1/featurestore_service.create_featurestore.js delete mode 100644 samples/generated/v1/featurestore_service.delete_entity_type.js delete mode 100644 samples/generated/v1/featurestore_service.delete_feature.js delete mode 100644 samples/generated/v1/featurestore_service.delete_featurestore.js delete mode 100644 samples/generated/v1/featurestore_service.export_feature_values.js delete mode 100644 samples/generated/v1/featurestore_service.get_entity_type.js delete mode 100644 samples/generated/v1/featurestore_service.get_feature.js delete mode 100644 samples/generated/v1/featurestore_service.get_featurestore.js delete mode 100644 samples/generated/v1/featurestore_service.import_feature_values.js delete mode 100644 samples/generated/v1/featurestore_service.list_entity_types.js delete mode 100644 samples/generated/v1/featurestore_service.list_features.js delete mode 100644 samples/generated/v1/featurestore_service.list_featurestores.js delete mode 100644 samples/generated/v1/featurestore_service.search_features.js delete mode 100644 samples/generated/v1/featurestore_service.update_entity_type.js delete mode 100644 samples/generated/v1/featurestore_service.update_feature.js delete mode 100644 samples/generated/v1/featurestore_service.update_featurestore.js delete mode 100644 samples/generated/v1/index_endpoint_service.create_index_endpoint.js delete mode 100644 samples/generated/v1/index_endpoint_service.delete_index_endpoint.js delete mode 100644 samples/generated/v1/index_endpoint_service.deploy_index.js delete mode 100644 samples/generated/v1/index_endpoint_service.get_index_endpoint.js delete mode 100644 samples/generated/v1/index_endpoint_service.list_index_endpoints.js delete mode 100644 samples/generated/v1/index_endpoint_service.mutate_deployed_index.js delete mode 100644 samples/generated/v1/index_endpoint_service.undeploy_index.js delete mode 100644 samples/generated/v1/index_endpoint_service.update_index_endpoint.js delete mode 100644 samples/generated/v1/index_service.create_index.js delete mode 100644 samples/generated/v1/index_service.delete_index.js delete mode 100644 samples/generated/v1/index_service.get_index.js delete mode 100644 samples/generated/v1/index_service.list_indexes.js delete mode 100644 samples/generated/v1/index_service.remove_datapoints.js delete mode 100644 samples/generated/v1/index_service.update_index.js delete mode 100644 samples/generated/v1/index_service.upsert_datapoints.js delete mode 100644 samples/generated/v1/job_service.cancel_batch_prediction_job.js delete mode 100644 samples/generated/v1/job_service.cancel_custom_job.js delete mode 100644 samples/generated/v1/job_service.cancel_data_labeling_job.js delete mode 100644 samples/generated/v1/job_service.cancel_hyperparameter_tuning_job.js delete mode 100644 samples/generated/v1/job_service.create_batch_prediction_job.js delete mode 100644 samples/generated/v1/job_service.create_custom_job.js delete mode 100644 samples/generated/v1/job_service.create_data_labeling_job.js delete mode 100644 samples/generated/v1/job_service.create_hyperparameter_tuning_job.js delete mode 100644 samples/generated/v1/job_service.create_model_deployment_monitoring_job.js delete mode 100644 samples/generated/v1/job_service.delete_batch_prediction_job.js delete mode 100644 samples/generated/v1/job_service.delete_custom_job.js delete mode 100644 samples/generated/v1/job_service.delete_data_labeling_job.js delete mode 100644 samples/generated/v1/job_service.delete_hyperparameter_tuning_job.js delete mode 100644 samples/generated/v1/job_service.delete_model_deployment_monitoring_job.js delete mode 100644 samples/generated/v1/job_service.get_batch_prediction_job.js delete mode 100644 samples/generated/v1/job_service.get_custom_job.js delete mode 100644 samples/generated/v1/job_service.get_data_labeling_job.js delete mode 100644 samples/generated/v1/job_service.get_hyperparameter_tuning_job.js delete mode 100644 samples/generated/v1/job_service.get_model_deployment_monitoring_job.js delete mode 100644 samples/generated/v1/job_service.list_batch_prediction_jobs.js delete mode 100644 samples/generated/v1/job_service.list_custom_jobs.js delete mode 100644 samples/generated/v1/job_service.list_data_labeling_jobs.js delete mode 100644 samples/generated/v1/job_service.list_hyperparameter_tuning_jobs.js delete mode 100644 samples/generated/v1/job_service.list_model_deployment_monitoring_jobs.js delete mode 100644 samples/generated/v1/job_service.pause_model_deployment_monitoring_job.js delete mode 100644 samples/generated/v1/job_service.resume_model_deployment_monitoring_job.js delete mode 100644 samples/generated/v1/job_service.search_model_deployment_monitoring_stats_anomalies.js delete mode 100644 samples/generated/v1/job_service.update_model_deployment_monitoring_job.js delete mode 100644 samples/generated/v1/metadata_service.add_context_artifacts_and_executions.js delete mode 100644 samples/generated/v1/metadata_service.add_context_children.js delete mode 100644 samples/generated/v1/metadata_service.add_execution_events.js delete mode 100644 samples/generated/v1/metadata_service.create_artifact.js delete mode 100644 samples/generated/v1/metadata_service.create_context.js delete mode 100644 samples/generated/v1/metadata_service.create_execution.js delete mode 100644 samples/generated/v1/metadata_service.create_metadata_schema.js delete mode 100644 samples/generated/v1/metadata_service.create_metadata_store.js delete mode 100644 samples/generated/v1/metadata_service.delete_artifact.js delete mode 100644 samples/generated/v1/metadata_service.delete_context.js delete mode 100644 samples/generated/v1/metadata_service.delete_execution.js delete mode 100644 samples/generated/v1/metadata_service.delete_metadata_store.js delete mode 100644 samples/generated/v1/metadata_service.get_artifact.js delete mode 100644 samples/generated/v1/metadata_service.get_context.js delete mode 100644 samples/generated/v1/metadata_service.get_execution.js delete mode 100644 samples/generated/v1/metadata_service.get_metadata_schema.js delete mode 100644 samples/generated/v1/metadata_service.get_metadata_store.js delete mode 100644 samples/generated/v1/metadata_service.list_artifacts.js delete mode 100644 samples/generated/v1/metadata_service.list_contexts.js delete mode 100644 samples/generated/v1/metadata_service.list_executions.js delete mode 100644 samples/generated/v1/metadata_service.list_metadata_schemas.js delete mode 100644 samples/generated/v1/metadata_service.list_metadata_stores.js delete mode 100644 samples/generated/v1/metadata_service.purge_artifacts.js delete mode 100644 samples/generated/v1/metadata_service.purge_contexts.js delete mode 100644 samples/generated/v1/metadata_service.purge_executions.js delete mode 100644 samples/generated/v1/metadata_service.query_artifact_lineage_subgraph.js delete mode 100644 samples/generated/v1/metadata_service.query_context_lineage_subgraph.js delete mode 100644 samples/generated/v1/metadata_service.query_execution_inputs_and_outputs.js delete mode 100644 samples/generated/v1/metadata_service.remove_context_children.js delete mode 100644 samples/generated/v1/metadata_service.update_artifact.js delete mode 100644 samples/generated/v1/metadata_service.update_context.js delete mode 100644 samples/generated/v1/metadata_service.update_execution.js delete mode 100644 samples/generated/v1/migration_service.batch_migrate_resources.js delete mode 100644 samples/generated/v1/migration_service.search_migratable_resources.js delete mode 100644 samples/generated/v1/model_service.batch_import_model_evaluation_slices.js delete mode 100644 samples/generated/v1/model_service.delete_model.js delete mode 100644 samples/generated/v1/model_service.delete_model_version.js delete mode 100644 samples/generated/v1/model_service.export_model.js delete mode 100644 samples/generated/v1/model_service.get_model.js delete mode 100644 samples/generated/v1/model_service.get_model_evaluation.js delete mode 100644 samples/generated/v1/model_service.get_model_evaluation_slice.js delete mode 100644 samples/generated/v1/model_service.import_model_evaluation.js delete mode 100644 samples/generated/v1/model_service.list_model_evaluation_slices.js delete mode 100644 samples/generated/v1/model_service.list_model_evaluations.js delete mode 100644 samples/generated/v1/model_service.list_model_versions.js delete mode 100644 samples/generated/v1/model_service.list_models.js delete mode 100644 samples/generated/v1/model_service.merge_version_aliases.js delete mode 100644 samples/generated/v1/model_service.update_model.js delete mode 100644 samples/generated/v1/model_service.upload_model.js delete mode 100644 samples/generated/v1/pipeline_service.cancel_pipeline_job.js delete mode 100644 samples/generated/v1/pipeline_service.cancel_training_pipeline.js delete mode 100644 samples/generated/v1/pipeline_service.create_pipeline_job.js delete mode 100644 samples/generated/v1/pipeline_service.create_training_pipeline.js delete mode 100644 samples/generated/v1/pipeline_service.delete_pipeline_job.js delete mode 100644 samples/generated/v1/pipeline_service.delete_training_pipeline.js delete mode 100644 samples/generated/v1/pipeline_service.get_pipeline_job.js delete mode 100644 samples/generated/v1/pipeline_service.get_training_pipeline.js delete mode 100644 samples/generated/v1/pipeline_service.list_pipeline_jobs.js delete mode 100644 samples/generated/v1/pipeline_service.list_training_pipelines.js delete mode 100644 samples/generated/v1/prediction_service.explain.js delete mode 100644 samples/generated/v1/prediction_service.predict.js delete mode 100644 samples/generated/v1/prediction_service.raw_predict.js delete mode 100644 samples/generated/v1/snippet_metadata.google.cloud.aiplatform.v1.json delete mode 100644 samples/generated/v1/specialist_pool_service.create_specialist_pool.js delete mode 100644 samples/generated/v1/specialist_pool_service.delete_specialist_pool.js delete mode 100644 samples/generated/v1/specialist_pool_service.get_specialist_pool.js delete mode 100644 samples/generated/v1/specialist_pool_service.list_specialist_pools.js delete mode 100644 samples/generated/v1/specialist_pool_service.update_specialist_pool.js delete mode 100644 samples/generated/v1/tensorboard_service.batch_create_tensorboard_runs.js delete mode 100644 samples/generated/v1/tensorboard_service.batch_create_tensorboard_time_series.js delete mode 100644 samples/generated/v1/tensorboard_service.batch_read_tensorboard_time_series_data.js delete mode 100644 samples/generated/v1/tensorboard_service.create_tensorboard.js delete mode 100644 samples/generated/v1/tensorboard_service.create_tensorboard_experiment.js delete mode 100644 samples/generated/v1/tensorboard_service.create_tensorboard_run.js delete mode 100644 samples/generated/v1/tensorboard_service.create_tensorboard_time_series.js delete mode 100644 samples/generated/v1/tensorboard_service.delete_tensorboard.js delete mode 100644 samples/generated/v1/tensorboard_service.delete_tensorboard_experiment.js delete mode 100644 samples/generated/v1/tensorboard_service.delete_tensorboard_run.js delete mode 100644 samples/generated/v1/tensorboard_service.delete_tensorboard_time_series.js delete mode 100644 samples/generated/v1/tensorboard_service.export_tensorboard_time_series_data.js delete mode 100644 samples/generated/v1/tensorboard_service.get_tensorboard.js delete mode 100644 samples/generated/v1/tensorboard_service.get_tensorboard_experiment.js delete mode 100644 samples/generated/v1/tensorboard_service.get_tensorboard_run.js delete mode 100644 samples/generated/v1/tensorboard_service.get_tensorboard_time_series.js delete mode 100644 samples/generated/v1/tensorboard_service.list_tensorboard_experiments.js delete mode 100644 samples/generated/v1/tensorboard_service.list_tensorboard_runs.js delete mode 100644 samples/generated/v1/tensorboard_service.list_tensorboard_time_series.js delete mode 100644 samples/generated/v1/tensorboard_service.list_tensorboards.js delete mode 100644 samples/generated/v1/tensorboard_service.read_tensorboard_blob_data.js delete mode 100644 samples/generated/v1/tensorboard_service.read_tensorboard_time_series_data.js delete mode 100644 samples/generated/v1/tensorboard_service.update_tensorboard.js delete mode 100644 samples/generated/v1/tensorboard_service.update_tensorboard_experiment.js delete mode 100644 samples/generated/v1/tensorboard_service.update_tensorboard_run.js delete mode 100644 samples/generated/v1/tensorboard_service.update_tensorboard_time_series.js delete mode 100644 samples/generated/v1/tensorboard_service.write_tensorboard_experiment_data.js delete mode 100644 samples/generated/v1/tensorboard_service.write_tensorboard_run_data.js delete mode 100644 samples/generated/v1/vizier_service.add_trial_measurement.js delete mode 100644 samples/generated/v1/vizier_service.check_trial_early_stopping_state.js delete mode 100644 samples/generated/v1/vizier_service.complete_trial.js delete mode 100644 samples/generated/v1/vizier_service.create_study.js delete mode 100644 samples/generated/v1/vizier_service.create_trial.js delete mode 100644 samples/generated/v1/vizier_service.delete_study.js delete mode 100644 samples/generated/v1/vizier_service.delete_trial.js delete mode 100644 samples/generated/v1/vizier_service.get_study.js delete mode 100644 samples/generated/v1/vizier_service.get_trial.js delete mode 100644 samples/generated/v1/vizier_service.list_optimal_trials.js delete mode 100644 samples/generated/v1/vizier_service.list_studies.js delete mode 100644 samples/generated/v1/vizier_service.list_trials.js delete mode 100644 samples/generated/v1/vizier_service.lookup_study.js delete mode 100644 samples/generated/v1/vizier_service.stop_trial.js delete mode 100644 samples/generated/v1/vizier_service.suggest_trials.js delete mode 100644 samples/generated/v1beta1/dataset_service.create_dataset.js delete mode 100644 samples/generated/v1beta1/dataset_service.delete_dataset.js delete mode 100644 samples/generated/v1beta1/dataset_service.export_data.js delete mode 100644 samples/generated/v1beta1/dataset_service.get_annotation_spec.js delete mode 100644 samples/generated/v1beta1/dataset_service.get_dataset.js delete mode 100644 samples/generated/v1beta1/dataset_service.import_data.js delete mode 100644 samples/generated/v1beta1/dataset_service.list_annotations.js delete mode 100644 samples/generated/v1beta1/dataset_service.list_data_items.js delete mode 100644 samples/generated/v1beta1/dataset_service.list_datasets.js delete mode 100644 samples/generated/v1beta1/dataset_service.list_saved_queries.js delete mode 100644 samples/generated/v1beta1/dataset_service.update_dataset.js delete mode 100644 samples/generated/v1beta1/deployment_resource_pool_service.create_deployment_resource_pool.js delete mode 100644 samples/generated/v1beta1/deployment_resource_pool_service.delete_deployment_resource_pool.js delete mode 100644 samples/generated/v1beta1/deployment_resource_pool_service.get_deployment_resource_pool.js delete mode 100644 samples/generated/v1beta1/deployment_resource_pool_service.list_deployment_resource_pools.js delete mode 100644 samples/generated/v1beta1/deployment_resource_pool_service.query_deployed_models.js delete mode 100644 samples/generated/v1beta1/endpoint_service.create_endpoint.js delete mode 100644 samples/generated/v1beta1/endpoint_service.delete_endpoint.js delete mode 100644 samples/generated/v1beta1/endpoint_service.deploy_model.js delete mode 100644 samples/generated/v1beta1/endpoint_service.get_endpoint.js delete mode 100644 samples/generated/v1beta1/endpoint_service.list_endpoints.js delete mode 100644 samples/generated/v1beta1/endpoint_service.undeploy_model.js delete mode 100644 samples/generated/v1beta1/endpoint_service.update_endpoint.js delete mode 100644 samples/generated/v1beta1/featurestore_online_serving_service.read_feature_values.js delete mode 100644 samples/generated/v1beta1/featurestore_online_serving_service.streaming_read_feature_values.js delete mode 100644 samples/generated/v1beta1/featurestore_online_serving_service.write_feature_values.js delete mode 100644 samples/generated/v1beta1/featurestore_service.batch_create_features.js delete mode 100644 samples/generated/v1beta1/featurestore_service.batch_read_feature_values.js delete mode 100644 samples/generated/v1beta1/featurestore_service.create_entity_type.js delete mode 100644 samples/generated/v1beta1/featurestore_service.create_feature.js delete mode 100644 samples/generated/v1beta1/featurestore_service.create_featurestore.js delete mode 100644 samples/generated/v1beta1/featurestore_service.delete_entity_type.js delete mode 100644 samples/generated/v1beta1/featurestore_service.delete_feature.js delete mode 100644 samples/generated/v1beta1/featurestore_service.delete_feature_values.js delete mode 100644 samples/generated/v1beta1/featurestore_service.delete_featurestore.js delete mode 100644 samples/generated/v1beta1/featurestore_service.export_feature_values.js delete mode 100644 samples/generated/v1beta1/featurestore_service.get_entity_type.js delete mode 100644 samples/generated/v1beta1/featurestore_service.get_feature.js delete mode 100644 samples/generated/v1beta1/featurestore_service.get_featurestore.js delete mode 100644 samples/generated/v1beta1/featurestore_service.import_feature_values.js delete mode 100644 samples/generated/v1beta1/featurestore_service.list_entity_types.js delete mode 100644 samples/generated/v1beta1/featurestore_service.list_features.js delete mode 100644 samples/generated/v1beta1/featurestore_service.list_featurestores.js delete mode 100644 samples/generated/v1beta1/featurestore_service.search_features.js delete mode 100644 samples/generated/v1beta1/featurestore_service.update_entity_type.js delete mode 100644 samples/generated/v1beta1/featurestore_service.update_feature.js delete mode 100644 samples/generated/v1beta1/featurestore_service.update_featurestore.js delete mode 100644 samples/generated/v1beta1/index_endpoint_service.create_index_endpoint.js delete mode 100644 samples/generated/v1beta1/index_endpoint_service.delete_index_endpoint.js delete mode 100644 samples/generated/v1beta1/index_endpoint_service.deploy_index.js delete mode 100644 samples/generated/v1beta1/index_endpoint_service.get_index_endpoint.js delete mode 100644 samples/generated/v1beta1/index_endpoint_service.list_index_endpoints.js delete mode 100644 samples/generated/v1beta1/index_endpoint_service.mutate_deployed_index.js delete mode 100644 samples/generated/v1beta1/index_endpoint_service.undeploy_index.js delete mode 100644 samples/generated/v1beta1/index_endpoint_service.update_index_endpoint.js delete mode 100644 samples/generated/v1beta1/index_service.create_index.js delete mode 100644 samples/generated/v1beta1/index_service.delete_index.js delete mode 100644 samples/generated/v1beta1/index_service.get_index.js delete mode 100644 samples/generated/v1beta1/index_service.list_indexes.js delete mode 100644 samples/generated/v1beta1/index_service.remove_datapoints.js delete mode 100644 samples/generated/v1beta1/index_service.update_index.js delete mode 100644 samples/generated/v1beta1/index_service.upsert_datapoints.js delete mode 100644 samples/generated/v1beta1/job_service.cancel_batch_prediction_job.js delete mode 100644 samples/generated/v1beta1/job_service.cancel_custom_job.js delete mode 100644 samples/generated/v1beta1/job_service.cancel_data_labeling_job.js delete mode 100644 samples/generated/v1beta1/job_service.cancel_hyperparameter_tuning_job.js delete mode 100644 samples/generated/v1beta1/job_service.create_batch_prediction_job.js delete mode 100644 samples/generated/v1beta1/job_service.create_custom_job.js delete mode 100644 samples/generated/v1beta1/job_service.create_data_labeling_job.js delete mode 100644 samples/generated/v1beta1/job_service.create_hyperparameter_tuning_job.js delete mode 100644 samples/generated/v1beta1/job_service.create_model_deployment_monitoring_job.js delete mode 100644 samples/generated/v1beta1/job_service.delete_batch_prediction_job.js delete mode 100644 samples/generated/v1beta1/job_service.delete_custom_job.js delete mode 100644 samples/generated/v1beta1/job_service.delete_data_labeling_job.js delete mode 100644 samples/generated/v1beta1/job_service.delete_hyperparameter_tuning_job.js delete mode 100644 samples/generated/v1beta1/job_service.delete_model_deployment_monitoring_job.js delete mode 100644 samples/generated/v1beta1/job_service.get_batch_prediction_job.js delete mode 100644 samples/generated/v1beta1/job_service.get_custom_job.js delete mode 100644 samples/generated/v1beta1/job_service.get_data_labeling_job.js delete mode 100644 samples/generated/v1beta1/job_service.get_hyperparameter_tuning_job.js delete mode 100644 samples/generated/v1beta1/job_service.get_model_deployment_monitoring_job.js delete mode 100644 samples/generated/v1beta1/job_service.list_batch_prediction_jobs.js delete mode 100644 samples/generated/v1beta1/job_service.list_custom_jobs.js delete mode 100644 samples/generated/v1beta1/job_service.list_data_labeling_jobs.js delete mode 100644 samples/generated/v1beta1/job_service.list_hyperparameter_tuning_jobs.js delete mode 100644 samples/generated/v1beta1/job_service.list_model_deployment_monitoring_jobs.js delete mode 100644 samples/generated/v1beta1/job_service.pause_model_deployment_monitoring_job.js delete mode 100644 samples/generated/v1beta1/job_service.resume_model_deployment_monitoring_job.js delete mode 100644 samples/generated/v1beta1/job_service.search_model_deployment_monitoring_stats_anomalies.js delete mode 100644 samples/generated/v1beta1/job_service.update_model_deployment_monitoring_job.js delete mode 100644 samples/generated/v1beta1/metadata_service.add_context_artifacts_and_executions.js delete mode 100644 samples/generated/v1beta1/metadata_service.add_context_children.js delete mode 100644 samples/generated/v1beta1/metadata_service.add_execution_events.js delete mode 100644 samples/generated/v1beta1/metadata_service.create_artifact.js delete mode 100644 samples/generated/v1beta1/metadata_service.create_context.js delete mode 100644 samples/generated/v1beta1/metadata_service.create_execution.js delete mode 100644 samples/generated/v1beta1/metadata_service.create_metadata_schema.js delete mode 100644 samples/generated/v1beta1/metadata_service.create_metadata_store.js delete mode 100644 samples/generated/v1beta1/metadata_service.delete_artifact.js delete mode 100644 samples/generated/v1beta1/metadata_service.delete_context.js delete mode 100644 samples/generated/v1beta1/metadata_service.delete_execution.js delete mode 100644 samples/generated/v1beta1/metadata_service.delete_metadata_store.js delete mode 100644 samples/generated/v1beta1/metadata_service.get_artifact.js delete mode 100644 samples/generated/v1beta1/metadata_service.get_context.js delete mode 100644 samples/generated/v1beta1/metadata_service.get_execution.js delete mode 100644 samples/generated/v1beta1/metadata_service.get_metadata_schema.js delete mode 100644 samples/generated/v1beta1/metadata_service.get_metadata_store.js delete mode 100644 samples/generated/v1beta1/metadata_service.list_artifacts.js delete mode 100644 samples/generated/v1beta1/metadata_service.list_contexts.js delete mode 100644 samples/generated/v1beta1/metadata_service.list_executions.js delete mode 100644 samples/generated/v1beta1/metadata_service.list_metadata_schemas.js delete mode 100644 samples/generated/v1beta1/metadata_service.list_metadata_stores.js delete mode 100644 samples/generated/v1beta1/metadata_service.purge_artifacts.js delete mode 100644 samples/generated/v1beta1/metadata_service.purge_contexts.js delete mode 100644 samples/generated/v1beta1/metadata_service.purge_executions.js delete mode 100644 samples/generated/v1beta1/metadata_service.query_artifact_lineage_subgraph.js delete mode 100644 samples/generated/v1beta1/metadata_service.query_context_lineage_subgraph.js delete mode 100644 samples/generated/v1beta1/metadata_service.query_execution_inputs_and_outputs.js delete mode 100644 samples/generated/v1beta1/metadata_service.remove_context_children.js delete mode 100644 samples/generated/v1beta1/metadata_service.update_artifact.js delete mode 100644 samples/generated/v1beta1/metadata_service.update_context.js delete mode 100644 samples/generated/v1beta1/metadata_service.update_execution.js delete mode 100644 samples/generated/v1beta1/migration_service.batch_migrate_resources.js delete mode 100644 samples/generated/v1beta1/migration_service.search_migratable_resources.js delete mode 100644 samples/generated/v1beta1/model_service.batch_import_model_evaluation_slices.js delete mode 100644 samples/generated/v1beta1/model_service.delete_model.js delete mode 100644 samples/generated/v1beta1/model_service.delete_model_version.js delete mode 100644 samples/generated/v1beta1/model_service.export_model.js delete mode 100644 samples/generated/v1beta1/model_service.get_model.js delete mode 100644 samples/generated/v1beta1/model_service.get_model_evaluation.js delete mode 100644 samples/generated/v1beta1/model_service.get_model_evaluation_slice.js delete mode 100644 samples/generated/v1beta1/model_service.import_model_evaluation.js delete mode 100644 samples/generated/v1beta1/model_service.list_model_evaluation_slices.js delete mode 100644 samples/generated/v1beta1/model_service.list_model_evaluations.js delete mode 100644 samples/generated/v1beta1/model_service.list_model_versions.js delete mode 100644 samples/generated/v1beta1/model_service.list_models.js delete mode 100644 samples/generated/v1beta1/model_service.merge_version_aliases.js delete mode 100644 samples/generated/v1beta1/model_service.update_explanation_dataset.js delete mode 100644 samples/generated/v1beta1/model_service.update_model.js delete mode 100644 samples/generated/v1beta1/model_service.upload_model.js delete mode 100644 samples/generated/v1beta1/pipeline_service.cancel_pipeline_job.js delete mode 100644 samples/generated/v1beta1/pipeline_service.cancel_training_pipeline.js delete mode 100644 samples/generated/v1beta1/pipeline_service.create_pipeline_job.js delete mode 100644 samples/generated/v1beta1/pipeline_service.create_training_pipeline.js delete mode 100644 samples/generated/v1beta1/pipeline_service.delete_pipeline_job.js delete mode 100644 samples/generated/v1beta1/pipeline_service.delete_training_pipeline.js delete mode 100644 samples/generated/v1beta1/pipeline_service.get_pipeline_job.js delete mode 100644 samples/generated/v1beta1/pipeline_service.get_training_pipeline.js delete mode 100644 samples/generated/v1beta1/pipeline_service.list_pipeline_jobs.js delete mode 100644 samples/generated/v1beta1/pipeline_service.list_training_pipelines.js delete mode 100644 samples/generated/v1beta1/prediction_service.explain.js delete mode 100644 samples/generated/v1beta1/prediction_service.predict.js delete mode 100644 samples/generated/v1beta1/prediction_service.raw_predict.js delete mode 100644 samples/generated/v1beta1/snippet_metadata.google.cloud.aiplatform.v1beta1.json delete mode 100644 samples/generated/v1beta1/specialist_pool_service.create_specialist_pool.js delete mode 100644 samples/generated/v1beta1/specialist_pool_service.delete_specialist_pool.js delete mode 100644 samples/generated/v1beta1/specialist_pool_service.get_specialist_pool.js delete mode 100644 samples/generated/v1beta1/specialist_pool_service.list_specialist_pools.js delete mode 100644 samples/generated/v1beta1/specialist_pool_service.update_specialist_pool.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.batch_create_tensorboard_runs.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.batch_create_tensorboard_time_series.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.batch_read_tensorboard_time_series_data.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.create_tensorboard.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.create_tensorboard_experiment.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.create_tensorboard_run.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.create_tensorboard_time_series.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.delete_tensorboard.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.delete_tensorboard_experiment.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.delete_tensorboard_run.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.delete_tensorboard_time_series.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.export_tensorboard_time_series_data.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.get_tensorboard.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.get_tensorboard_experiment.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.get_tensorboard_run.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.get_tensorboard_time_series.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.list_tensorboard_experiments.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.list_tensorboard_runs.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.list_tensorboard_time_series.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.list_tensorboards.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.read_tensorboard_blob_data.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.read_tensorboard_time_series_data.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.update_tensorboard.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.update_tensorboard_experiment.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.update_tensorboard_run.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.update_tensorboard_time_series.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.write_tensorboard_experiment_data.js delete mode 100644 samples/generated/v1beta1/tensorboard_service.write_tensorboard_run_data.js delete mode 100644 samples/generated/v1beta1/vizier_service.add_trial_measurement.js delete mode 100644 samples/generated/v1beta1/vizier_service.check_trial_early_stopping_state.js delete mode 100644 samples/generated/v1beta1/vizier_service.complete_trial.js delete mode 100644 samples/generated/v1beta1/vizier_service.create_study.js delete mode 100644 samples/generated/v1beta1/vizier_service.create_trial.js delete mode 100644 samples/generated/v1beta1/vizier_service.delete_study.js delete mode 100644 samples/generated/v1beta1/vizier_service.delete_trial.js delete mode 100644 samples/generated/v1beta1/vizier_service.get_study.js delete mode 100644 samples/generated/v1beta1/vizier_service.get_trial.js delete mode 100644 samples/generated/v1beta1/vizier_service.list_optimal_trials.js delete mode 100644 samples/generated/v1beta1/vizier_service.list_studies.js delete mode 100644 samples/generated/v1beta1/vizier_service.list_trials.js delete mode 100644 samples/generated/v1beta1/vizier_service.lookup_study.js delete mode 100644 samples/generated/v1beta1/vizier_service.stop_trial.js delete mode 100644 samples/generated/v1beta1/vizier_service.suggest_trials.js delete mode 100644 samples/get-batch-prediction-job.js delete mode 100644 samples/get-custom-job.js delete mode 100644 samples/get-entity-type-sample.js delete mode 100644 samples/get-feature-sample.js delete mode 100644 samples/get-featurestore-sample.js delete mode 100644 samples/get-hyperparameter-tuning-job.js delete mode 100644 samples/get-model-evaluation-image-classification.js delete mode 100644 samples/get-model-evaluation-image-object-detection.js delete mode 100644 samples/get-model-evaluation-slice.js delete mode 100644 samples/get-model-evaluation-tabular-classification.js delete mode 100644 samples/get-model-evaluation-tabular-regression.js delete mode 100644 samples/get-model-evaluation-text-classification.js delete mode 100644 samples/get-model-evaluation-text-entity-extraction.js delete mode 100644 samples/get-model-evaluation-text-sentiment-analysis.js delete mode 100644 samples/get-model-evaluation-video-action-recognition.js delete mode 100644 samples/get-model-evaluation-video-classification.js delete mode 100644 samples/get-model-evaluation-video-object-tracking.js delete mode 100644 samples/get-model-evaluation.js delete mode 100644 samples/get-model.js delete mode 100644 samples/get-training-pipeline.js delete mode 100644 samples/import-data-image-classification.js delete mode 100644 samples/import-data-image-object-detection.js delete mode 100644 samples/import-data-text-classification-single-label.js delete mode 100644 samples/import-data-text-entity-extraction.js delete mode 100644 samples/import-data-text-sentiment-analysis.js delete mode 100644 samples/import-data-video-action-recognition.js delete mode 100644 samples/import-data-video-classification.js delete mode 100644 samples/import-data-video-object-tracking.js delete mode 100644 samples/import-data.js delete mode 100644 samples/import-feature-values-sample.js delete mode 100644 samples/list-endpoints.js delete mode 100644 samples/list-entity-types-async-sample.js delete mode 100644 samples/list-entity-types-sample.js delete mode 100644 samples/list-entity-types-stream-sample.js delete mode 100644 samples/list-features-async-sample.js delete mode 100644 samples/list-features-sample.js delete mode 100644 samples/list-features-stream-sample.js delete mode 100644 samples/list-featurestores-async-sample.js delete mode 100644 samples/list-featurestores-sample.js delete mode 100644 samples/list-featurestores-stream-sample.js delete mode 100644 samples/list-model-evaluation-slices.js delete mode 100644 samples/package.json delete mode 100644 samples/predict-custom-trained-model.js delete mode 100644 samples/predict-image-classification.js delete mode 100644 samples/predict-image-object-detection.js delete mode 100644 samples/predict-tabular-classification.js delete mode 100644 samples/predict-tabular-regression.js delete mode 100644 samples/predict-text-classification.js delete mode 100644 samples/predict-text-entity-extraction.js delete mode 100644 samples/predict-text-sentiment-analysis.js delete mode 100644 samples/quickstart.js delete mode 100644 samples/read-feature-values-sample.js delete mode 100644 samples/resources/caprese_salad.jpg delete mode 100644 samples/resources/daisy.jpg delete mode 100644 samples/search-features-async-sample.js delete mode 100644 samples/search-features-sample.js delete mode 100644 samples/search-features-stream-sample.js delete mode 100644 samples/test/create-batch-prediction-job-text-classification.test.js delete mode 100644 samples/test/create-batch-prediction-job-text-entity-extraction.test.js delete mode 100644 samples/test/create-batch-prediction-job-text-sentiment-analysis.test.js delete mode 100644 samples/test/create-batch-prediction-job-video-action-recognition.test.js delete mode 100644 samples/test/create-batch-prediction-job-video-classification.test.js delete mode 100644 samples/test/create-batch-prediction-job-video-object-tracking.test.js delete mode 100644 samples/test/create-custom-job.test.js delete mode 100644 samples/test/create-dataset-image.test.js delete mode 100644 samples/test/create-dataset-tabular-bigquery.test.js delete mode 100644 samples/test/create-dataset-tabular-gcs.test.js delete mode 100644 samples/test/create-dataset-text.test.js delete mode 100644 samples/test/create-dataset-video.test.js delete mode 100644 samples/test/create-dataset.test.js delete mode 100644 samples/test/create-endpoint.test.js delete mode 100644 samples/test/create-featurestore-fixed-nodes-sample.test.js delete mode 100644 samples/test/create-featurestore-sample.test.js delete mode 100644 samples/test/create-hyperparameter-tuning-job.test.js delete mode 100644 samples/test/create-training-pipeline-image-classification.test.js delete mode 100644 samples/test/create-training-pipeline-image-object-detection.test.js delete mode 100644 samples/test/create-training-pipeline-tabular-classification.test.js delete mode 100644 samples/test/create-training-pipeline-tabular-regression.test.js delete mode 100644 samples/test/create-training-pipeline-text-classification.test.js delete mode 100644 samples/test/create-training-pipeline-text-entity-extraction.test.js delete mode 100644 samples/test/create-training-pipeline-text-sentiment-analysis.test.js delete mode 100644 samples/test/create-training-pipeline-video-action-recognition.test.js delete mode 100644 samples/test/create-training-pipeline-video-classification.test.js delete mode 100644 samples/test/create-training-pipeline-video-object-tracking.test.js delete mode 100644 samples/test/deploy-model-custom-trained-model.test.js delete mode 100644 samples/test/deploy-model.test.js delete mode 100644 samples/test/entity-type-samples.test.js delete mode 100644 samples/test/export-model-tabular-classification.test.js delete mode 100644 samples/test/feature-samples.test.js delete mode 100644 samples/test/feature-values-samples.test.js delete mode 100644 samples/test/featurestore-samples.test.js delete mode 100644 samples/test/get-custom-job.test.js delete mode 100644 samples/test/get-hyperparameter-tuning-job.test.js delete mode 100644 samples/test/get-model-evaluation-slice.test.js delete mode 100644 samples/test/get-model-evaluation-tabular-classification.test.js delete mode 100644 samples/test/get-model-evaluation-tabular-regression.test.js delete mode 100644 samples/test/get-model-evaluation-video-action-recognition.test.js delete mode 100644 samples/test/get-model-evaluation-video-classification.test.js delete mode 100644 samples/test/get-model-evaluation-video-object-tracking.test.js delete mode 100644 samples/test/get-model.test.js delete mode 100644 samples/test/get-training-pipeline.test.js delete mode 100644 samples/test/import-data-video-action-recognition.test.js delete mode 100644 samples/test/import-data-video-classification.test.js delete mode 100644 samples/test/list-endpoints.test.js delete mode 100644 samples/test/list-model-evaluation-slices.test.js delete mode 100644 samples/test/predict-image-classification.test.js delete mode 100644 samples/test/predict-image-object-detection.test.js delete mode 100644 samples/test/predict-tabular-classification.test.js delete mode 100644 samples/test/predict-tabular-regression.test.js delete mode 100644 samples/test/predict-text-classification.test.js delete mode 100644 samples/test/predict-text-entity-extraction.test.js delete mode 100644 samples/test/predict-text-sentiment-analysis.test.js delete mode 100644 samples/test/quickstart.test.js delete mode 100644 samples/test/upload-model.test.js delete mode 100644 samples/undeploy-model.js delete mode 100644 samples/update-entity-type-monitoring-sample.js delete mode 100644 samples/update-entity-type-sample.js delete mode 100644 samples/update-feature-sample.js delete mode 100644 samples/update-featurestore-fixed-nodes-sample.js delete mode 100644 samples/update-featurestore-sample.js delete mode 100644 samples/upload-model.js diff --git a/.kokoro/continuous/node12/samples-test.cfg b/.kokoro/continuous/node12/samples-test.cfg index 370f1f68..0a040f9a 100644 --- a/.kokoro/continuous/node12/samples-test.cfg +++ b/.kokoro/continuous/node12/samples-test.cfg @@ -5,8 +5,3 @@ env_vars: { key: "TRAMPOLINE_BUILD_FILE" value: "github/nodejs-ai-platform/.kokoro/samples-test.sh" } - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "nodejs-ai-platform-env" -} diff --git a/.kokoro/pre-samples-test.sh b/.kokoro/pre-samples-test.sh deleted file mode 100644 index 3447b0b4..00000000 --- a/.kokoro/pre-samples-test.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -# Copyright 2020 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -source $KOKORO_GFILE_DIR/secret_manager/nodejs-ai-platform-env -echo 'loaded additional environment' diff --git a/.kokoro/presubmit/node12/samples-test.cfg b/.kokoro/presubmit/node12/samples-test.cfg index d9a85a32..0a040f9a 100644 --- a/.kokoro/presubmit/node12/samples-test.cfg +++ b/.kokoro/presubmit/node12/samples-test.cfg @@ -5,8 +5,3 @@ env_vars: { key: "TRAMPOLINE_BUILD_FILE" value: "github/nodejs-ai-platform/.kokoro/samples-test.sh" } - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "nodejs-ai-platform-env, ucaip_samples_secrets" -} diff --git a/README.md b/README.md index 5bf17867..074c3752 100644 --- a/README.md +++ b/README.md @@ -34,8 +34,8 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. * [Quickstart](#quickstart) * [Before you begin](#before-you-begin) * [Installing the client library](#installing-the-client-library) - * [Using the client library](#using-the-client-library) -* [Samples](#samples) + + * [Versioning](#versioning) * [Contributing](#contributing) * [License](#license) @@ -57,136 +57,6 @@ npm install @google-cloud/aiplatform ``` -### Using the client library - -```javascript -const {DatasetServiceClient} = require('@google-cloud/aiplatform'); -const client = new DatasetServiceClient(); - -// Do something with DatasetServiceClient. -console.info(client); - - -``` - - - -## Samples - -Samples are in the [`samples/`](https://github.com/googleapis/nodejs-ai-platform/tree/main/samples) directory. Each sample's `README.md` has instructions for running its sample. - -| Sample | Source Code | Try it | -| --------------------------- | --------------------------------- | ------ | -| Batch-create-features-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/batch-create-features-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/batch-create-features-sample.js,samples/README.md) | -| Batch-read-feature-values-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/batch-read-feature-values-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/batch-read-feature-values-sample.js,samples/README.md) | -| Cancel-batch-prediction-job | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/cancel-batch-prediction-job.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/cancel-batch-prediction-job.js,samples/README.md) | -| Cancel-custom-job | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/cancel-custom-job.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/cancel-custom-job.js,samples/README.md) | -| Create-batch-prediction-job-text-classification | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-batch-prediction-job-text-classification.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-batch-prediction-job-text-classification.js,samples/README.md) | -| Create-batch-prediction-job-text-entity-extraction | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-batch-prediction-job-text-entity-extraction.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-batch-prediction-job-text-entity-extraction.js,samples/README.md) | -| Create-batch-prediction-job-text-sentiment-analysis | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-batch-prediction-job-text-sentiment-analysis.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-batch-prediction-job-text-sentiment-analysis.js,samples/README.md) | -| Create-batch-prediction-job-video-action-recognition | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-batch-prediction-job-video-action-recognition.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-batch-prediction-job-video-action-recognition.js,samples/README.md) | -| Create-batch-prediction-job-video-classification | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-batch-prediction-job-video-classification.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-batch-prediction-job-video-classification.js,samples/README.md) | -| Create-batch-prediction-job-video-object-tracking | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-batch-prediction-job-video-object-tracking.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-batch-prediction-job-video-object-tracking.js,samples/README.md) | -| Create-custom-job | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-custom-job.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-custom-job.js,samples/README.md) | -| Create-dataset-image | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-dataset-image.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-dataset-image.js,samples/README.md) | -| Create-dataset-tabular-bigquery | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-dataset-tabular-bigquery.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-dataset-tabular-bigquery.js,samples/README.md) | -| Create-dataset-tabular-gcs | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-dataset-tabular-gcs.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-dataset-tabular-gcs.js,samples/README.md) | -| Create-dataset-text | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-dataset-text.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-dataset-text.js,samples/README.md) | -| Create-dataset-video | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-dataset-video.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-dataset-video.js,samples/README.md) | -| Create-dataset | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-dataset.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-dataset.js,samples/README.md) | -| Create-endpoint | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-endpoint.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-endpoint.js,samples/README.md) | -| Create-entity-type-monitoring-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-entity-type-monitoring-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-entity-type-monitoring-sample.js,samples/README.md) | -| Create-entity-type-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-entity-type-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-entity-type-sample.js,samples/README.md) | -| Create-feature-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-feature-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-feature-sample.js,samples/README.md) | -| Create-featurestore-fixed-nodes-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-featurestore-fixed-nodes-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-featurestore-fixed-nodes-sample.js,samples/README.md) | -| Create-featurestore-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-featurestore-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-featurestore-sample.js,samples/README.md) | -| Create-hyperparameter-tuning-job | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-hyperparameter-tuning-job.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-hyperparameter-tuning-job.js,samples/README.md) | -| Create-training-pipeline-image-classification | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-training-pipeline-image-classification.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-training-pipeline-image-classification.js,samples/README.md) | -| Create-training-pipeline-image-object-detection | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-training-pipeline-image-object-detection.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-training-pipeline-image-object-detection.js,samples/README.md) | -| Create-training-pipeline-tabular-classification | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-training-pipeline-tabular-classification.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-training-pipeline-tabular-classification.js,samples/README.md) | -| Create-training-pipeline-tabular-regression | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-training-pipeline-tabular-regression.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-training-pipeline-tabular-regression.js,samples/README.md) | -| Create-training-pipeline-text-classification | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-training-pipeline-text-classification.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-training-pipeline-text-classification.js,samples/README.md) | -| Create-training-pipeline-text-entity-extraction | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-training-pipeline-text-entity-extraction.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-training-pipeline-text-entity-extraction.js,samples/README.md) | -| Create-training-pipeline-text-sentiment-analysis | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-training-pipeline-text-sentiment-analysis.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-training-pipeline-text-sentiment-analysis.js,samples/README.md) | -| Create-training-pipeline-video-action-recognition | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-training-pipeline-video-action-recognition.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-training-pipeline-video-action-recognition.js,samples/README.md) | -| Create-training-pipeline-video-classification | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-training-pipeline-video-classification.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-training-pipeline-video-classification.js,samples/README.md) | -| Create-training-pipeline-video-object-tracking | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-training-pipeline-video-object-tracking.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-training-pipeline-video-object-tracking.js,samples/README.md) | -| Delete-batch-prediction-job | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/delete-batch-prediction-job.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/delete-batch-prediction-job.js,samples/README.md) | -| Delete-custom-job | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/delete-custom-job.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/delete-custom-job.js,samples/README.md) | -| Delete-dataset | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/delete-dataset.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/delete-dataset.js,samples/README.md) | -| Delete-endpoint | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/delete-endpoint.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/delete-endpoint.js,samples/README.md) | -| Delete-entity-type-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/delete-entity-type-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/delete-entity-type-sample.js,samples/README.md) | -| Delete-export-model | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/delete-export-model.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/delete-export-model.js,samples/README.md) | -| Delete-feature-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/delete-feature-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/delete-feature-sample.js,samples/README.md) | -| Delete-featurestore-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/delete-featurestore-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/delete-featurestore-sample.js,samples/README.md) | -| Delete-model | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/delete-model.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/delete-model.js,samples/README.md) | -| Deploy-model-custom-trained-model | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/deploy-model-custom-trained-model.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/deploy-model-custom-trained-model.js,samples/README.md) | -| Deploy-model | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/deploy-model.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/deploy-model.js,samples/README.md) | -| Export-feature-values-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/export-feature-values-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/export-feature-values-sample.js,samples/README.md) | -| Export-feature-values-snapshot-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/export-feature-values-snapshot-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/export-feature-values-snapshot-sample.js,samples/README.md) | -| Export-model-tabular-classification | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/export-model-tabular-classification.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/export-model-tabular-classification.js,samples/README.md) | -| Export-model | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/export-model.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/export-model.js,samples/README.md) | -| Get-batch-prediction-job | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-batch-prediction-job.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-batch-prediction-job.js,samples/README.md) | -| Get-custom-job | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-custom-job.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-custom-job.js,samples/README.md) | -| Get-entity-type-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-entity-type-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-entity-type-sample.js,samples/README.md) | -| Get-feature-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-feature-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-feature-sample.js,samples/README.md) | -| Get-featurestore-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-featurestore-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-featurestore-sample.js,samples/README.md) | -| Get-hyperparameter-tuning-job | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-hyperparameter-tuning-job.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-hyperparameter-tuning-job.js,samples/README.md) | -| Get-model-evaluation-image-classification | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-image-classification.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-image-classification.js,samples/README.md) | -| Get-model-evaluation-image-object-detection | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-image-object-detection.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-image-object-detection.js,samples/README.md) | -| Get-model-evaluation-slice | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-slice.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-slice.js,samples/README.md) | -| Get-model-evaluation-tabular-classification | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-tabular-classification.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-tabular-classification.js,samples/README.md) | -| Get-model-evaluation-tabular-regression | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-tabular-regression.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-tabular-regression.js,samples/README.md) | -| Get-model-evaluation-text-classification | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-text-classification.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-text-classification.js,samples/README.md) | -| Get-model-evaluation-text-entity-extraction | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-text-entity-extraction.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-text-entity-extraction.js,samples/README.md) | -| Get-model-evaluation-text-sentiment-analysis | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-text-sentiment-analysis.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-text-sentiment-analysis.js,samples/README.md) | -| Get-model-evaluation-video-action-recognition | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-video-action-recognition.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-video-action-recognition.js,samples/README.md) | -| Get-model-evaluation-video-classification | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-video-classification.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-video-classification.js,samples/README.md) | -| Get-model-evaluation-video-object-tracking | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-video-object-tracking.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-video-object-tracking.js,samples/README.md) | -| Get-model-evaluation | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation.js,samples/README.md) | -| Get-model | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model.js,samples/README.md) | -| Get-training-pipeline | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-training-pipeline.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-training-pipeline.js,samples/README.md) | -| Import-data-image-classification | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/import-data-image-classification.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/import-data-image-classification.js,samples/README.md) | -| Import-data-image-object-detection | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/import-data-image-object-detection.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/import-data-image-object-detection.js,samples/README.md) | -| Import-data-text-classification-single-label | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/import-data-text-classification-single-label.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/import-data-text-classification-single-label.js,samples/README.md) | -| Import-data-text-entity-extraction | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/import-data-text-entity-extraction.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/import-data-text-entity-extraction.js,samples/README.md) | -| Import-data-text-sentiment-analysis | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/import-data-text-sentiment-analysis.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/import-data-text-sentiment-analysis.js,samples/README.md) | -| Import-data-video-action-recognition | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/import-data-video-action-recognition.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/import-data-video-action-recognition.js,samples/README.md) | -| Import-data-video-classification | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/import-data-video-classification.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/import-data-video-classification.js,samples/README.md) | -| Import-data-video-object-tracking | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/import-data-video-object-tracking.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/import-data-video-object-tracking.js,samples/README.md) | -| Import-data | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/import-data.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/import-data.js,samples/README.md) | -| Import-feature-values-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/import-feature-values-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/import-feature-values-sample.js,samples/README.md) | -| List-endpoints | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-endpoints.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-endpoints.js,samples/README.md) | -| List-entity-types-async-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-entity-types-async-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-entity-types-async-sample.js,samples/README.md) | -| List-entity-types-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-entity-types-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-entity-types-sample.js,samples/README.md) | -| List-entity-types-stream-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-entity-types-stream-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-entity-types-stream-sample.js,samples/README.md) | -| List-features-async-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-features-async-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-features-async-sample.js,samples/README.md) | -| List-features-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-features-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-features-sample.js,samples/README.md) | -| List-features-stream-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-features-stream-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-features-stream-sample.js,samples/README.md) | -| List-featurestores-async-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-featurestores-async-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-featurestores-async-sample.js,samples/README.md) | -| List-featurestores-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-featurestores-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-featurestores-sample.js,samples/README.md) | -| List-featurestores-stream-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-featurestores-stream-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-featurestores-stream-sample.js,samples/README.md) | -| List-model-evaluation-slices | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-model-evaluation-slices.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-model-evaluation-slices.js,samples/README.md) | -| Predict-custom-trained-model | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/predict-custom-trained-model.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/predict-custom-trained-model.js,samples/README.md) | -| Predict-image-classification | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/predict-image-classification.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/predict-image-classification.js,samples/README.md) | -| Predict-image-object-detection | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/predict-image-object-detection.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/predict-image-object-detection.js,samples/README.md) | -| Predict-tabular-classification | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/predict-tabular-classification.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/predict-tabular-classification.js,samples/README.md) | -| Predict-tabular-regression | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/predict-tabular-regression.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/predict-tabular-regression.js,samples/README.md) | -| Predict-text-classification | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/predict-text-classification.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/predict-text-classification.js,samples/README.md) | -| Predict-text-entity-extraction | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/predict-text-entity-extraction.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/predict-text-entity-extraction.js,samples/README.md) | -| Predict-text-sentiment-analysis | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/predict-text-sentiment-analysis.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/predict-text-sentiment-analysis.js,samples/README.md) | -| Quickstart | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) | -| Read-feature-values-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/read-feature-values-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/read-feature-values-sample.js,samples/README.md) | -| Search-features-async-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/search-features-async-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/search-features-async-sample.js,samples/README.md) | -| Search-features-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/search-features-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/search-features-sample.js,samples/README.md) | -| Search-features-stream-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/search-features-stream-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/search-features-stream-sample.js,samples/README.md) | -| Undeploy-model | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/undeploy-model.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/undeploy-model.js,samples/README.md) | -| Update-entity-type-monitoring-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/update-entity-type-monitoring-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/update-entity-type-monitoring-sample.js,samples/README.md) | -| Update-entity-type-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/update-entity-type-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/update-entity-type-sample.js,samples/README.md) | -| Update-feature-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/update-feature-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/update-feature-sample.js,samples/README.md) | -| Update-featurestore-fixed-nodes-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/update-featurestore-fixed-nodes-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/update-featurestore-fixed-nodes-sample.js,samples/README.md) | -| Update-featurestore-sample | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/update-featurestore-sample.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/update-featurestore-sample.js,samples/README.md) | -| Upload-model | [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/upload-model.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/upload-model.js,samples/README.md) | diff --git a/owlbot.py b/owlbot.py index 8e20e134..eb9b686e 100644 --- a/owlbot.py +++ b/owlbot.py @@ -21,7 +21,6 @@ # List of excludes for the enhanced library node.owlbot_main( staging_excludes = [ - ".kokoro/presubmit/node12/samples-test.cfg", "package.json", "README.md", "src/decorator.ts", @@ -34,8 +33,6 @@ "tsconfig.json", ], templates_excludes=[ - ".kokoro/continuous/node12/samples-test.cfg", - ".kokoro/presubmit/node12/samples-test.cfg", "src/index.ts", ], ) diff --git a/package.json b/package.json index 061219a9..7eba44d5 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,6 @@ "prelint": "cd samples; npm link ../; npm i", "prepare": "npm run compile-protos && npm run compile", "system-test": "c8 mocha build/system-test", - "samples-test": "cd samples/ && npm link ../ && npm test", "test": "c8 node build/test/run.js" }, "dependencies": { diff --git a/samples/README.md b/samples/README.md deleted file mode 100644 index 3099f795..00000000 --- a/samples/README.md +++ /dev/null @@ -1,2015 +0,0 @@ -[//]: # "This README.md file is auto-generated, all changes to this file will be lost." -[//]: # "To regenerate it, use `python -m synthtool`." -Google Cloud Platform logo - -# [Vertex AI: Node.js Samples](https://github.com/googleapis/nodejs-ai-platform) - -[![Open in Cloud Shell][shell_img]][shell_link] - -Google Cloud Vertex AI is an integrated suite of machine learning tools -and services for building and using ML models with AutoML or custom code. -It offers both novices and experts the best workbench for the entire -machine learning development lifecycle. - -## Table of Contents - -* [Before you begin](#before-you-begin) -* [Samples](#samples) - * [Batch-create-features-sample](#batch-create-features-sample) - * [Batch-read-feature-values-sample](#batch-read-feature-values-sample) - * [Cancel-batch-prediction-job](#cancel-batch-prediction-job) - * [Cancel-custom-job](#cancel-custom-job) - * [Create-batch-prediction-job-text-classification](#create-batch-prediction-job-text-classification) - * [Create-batch-prediction-job-text-entity-extraction](#create-batch-prediction-job-text-entity-extraction) - * [Create-batch-prediction-job-text-sentiment-analysis](#create-batch-prediction-job-text-sentiment-analysis) - * [Create-batch-prediction-job-video-action-recognition](#create-batch-prediction-job-video-action-recognition) - * [Create-batch-prediction-job-video-classification](#create-batch-prediction-job-video-classification) - * [Create-batch-prediction-job-video-object-tracking](#create-batch-prediction-job-video-object-tracking) - * [Create-custom-job](#create-custom-job) - * [Create-dataset-image](#create-dataset-image) - * [Create-dataset-tabular-bigquery](#create-dataset-tabular-bigquery) - * [Create-dataset-tabular-gcs](#create-dataset-tabular-gcs) - * [Create-dataset-text](#create-dataset-text) - * [Create-dataset-video](#create-dataset-video) - * [Create-dataset](#create-dataset) - * [Create-endpoint](#create-endpoint) - * [Create-entity-type-monitoring-sample](#create-entity-type-monitoring-sample) - * [Create-entity-type-sample](#create-entity-type-sample) - * [Create-feature-sample](#create-feature-sample) - * [Create-featurestore-fixed-nodes-sample](#create-featurestore-fixed-nodes-sample) - * [Create-featurestore-sample](#create-featurestore-sample) - * [Create-hyperparameter-tuning-job](#create-hyperparameter-tuning-job) - * [Create-training-pipeline-image-classification](#create-training-pipeline-image-classification) - * [Create-training-pipeline-image-object-detection](#create-training-pipeline-image-object-detection) - * [Create-training-pipeline-tabular-classification](#create-training-pipeline-tabular-classification) - * [Create-training-pipeline-tabular-regression](#create-training-pipeline-tabular-regression) - * [Create-training-pipeline-text-classification](#create-training-pipeline-text-classification) - * [Create-training-pipeline-text-entity-extraction](#create-training-pipeline-text-entity-extraction) - * [Create-training-pipeline-text-sentiment-analysis](#create-training-pipeline-text-sentiment-analysis) - * [Create-training-pipeline-video-action-recognition](#create-training-pipeline-video-action-recognition) - * [Create-training-pipeline-video-classification](#create-training-pipeline-video-classification) - * [Create-training-pipeline-video-object-tracking](#create-training-pipeline-video-object-tracking) - * [Delete-batch-prediction-job](#delete-batch-prediction-job) - * [Delete-custom-job](#delete-custom-job) - * [Delete-dataset](#delete-dataset) - * [Delete-endpoint](#delete-endpoint) - * [Delete-entity-type-sample](#delete-entity-type-sample) - * [Delete-export-model](#delete-export-model) - * [Delete-feature-sample](#delete-feature-sample) - * [Delete-featurestore-sample](#delete-featurestore-sample) - * [Delete-model](#delete-model) - * [Deploy-model-custom-trained-model](#deploy-model-custom-trained-model) - * [Deploy-model](#deploy-model) - * [Export-feature-values-sample](#export-feature-values-sample) - * [Export-feature-values-snapshot-sample](#export-feature-values-snapshot-sample) - * [Export-model-tabular-classification](#export-model-tabular-classification) - * [Export-model](#export-model) - * [Get-batch-prediction-job](#get-batch-prediction-job) - * [Get-custom-job](#get-custom-job) - * [Get-entity-type-sample](#get-entity-type-sample) - * [Get-feature-sample](#get-feature-sample) - * [Get-featurestore-sample](#get-featurestore-sample) - * [Get-hyperparameter-tuning-job](#get-hyperparameter-tuning-job) - * [Get-model-evaluation-image-classification](#get-model-evaluation-image-classification) - * [Get-model-evaluation-image-object-detection](#get-model-evaluation-image-object-detection) - * [Get-model-evaluation-slice](#get-model-evaluation-slice) - * [Get-model-evaluation-tabular-classification](#get-model-evaluation-tabular-classification) - * [Get-model-evaluation-tabular-regression](#get-model-evaluation-tabular-regression) - * [Get-model-evaluation-text-classification](#get-model-evaluation-text-classification) - * [Get-model-evaluation-text-entity-extraction](#get-model-evaluation-text-entity-extraction) - * [Get-model-evaluation-text-sentiment-analysis](#get-model-evaluation-text-sentiment-analysis) - * [Get-model-evaluation-video-action-recognition](#get-model-evaluation-video-action-recognition) - * [Get-model-evaluation-video-classification](#get-model-evaluation-video-classification) - * [Get-model-evaluation-video-object-tracking](#get-model-evaluation-video-object-tracking) - * [Get-model-evaluation](#get-model-evaluation) - * [Get-model](#get-model) - * [Get-training-pipeline](#get-training-pipeline) - * [Import-data-image-classification](#import-data-image-classification) - * [Import-data-image-object-detection](#import-data-image-object-detection) - * [Import-data-text-classification-single-label](#import-data-text-classification-single-label) - * [Import-data-text-entity-extraction](#import-data-text-entity-extraction) - * [Import-data-text-sentiment-analysis](#import-data-text-sentiment-analysis) - * [Import-data-video-action-recognition](#import-data-video-action-recognition) - * [Import-data-video-classification](#import-data-video-classification) - * [Import-data-video-object-tracking](#import-data-video-object-tracking) - * [Import-data](#import-data) - * [Import-feature-values-sample](#import-feature-values-sample) - * [List-endpoints](#list-endpoints) - * [List-entity-types-async-sample](#list-entity-types-async-sample) - * [List-entity-types-sample](#list-entity-types-sample) - * [List-entity-types-stream-sample](#list-entity-types-stream-sample) - * [List-features-async-sample](#list-features-async-sample) - * [List-features-sample](#list-features-sample) - * [List-features-stream-sample](#list-features-stream-sample) - * [List-featurestores-async-sample](#list-featurestores-async-sample) - * [List-featurestores-sample](#list-featurestores-sample) - * [List-featurestores-stream-sample](#list-featurestores-stream-sample) - * [List-model-evaluation-slices](#list-model-evaluation-slices) - * [Predict-custom-trained-model](#predict-custom-trained-model) - * [Predict-image-classification](#predict-image-classification) - * [Predict-image-object-detection](#predict-image-object-detection) - * [Predict-tabular-classification](#predict-tabular-classification) - * [Predict-tabular-regression](#predict-tabular-regression) - * [Predict-text-classification](#predict-text-classification) - * [Predict-text-entity-extraction](#predict-text-entity-extraction) - * [Predict-text-sentiment-analysis](#predict-text-sentiment-analysis) - * [Quickstart](#quickstart) - * [Read-feature-values-sample](#read-feature-values-sample) - * [Search-features-async-sample](#search-features-async-sample) - * [Search-features-sample](#search-features-sample) - * [Search-features-stream-sample](#search-features-stream-sample) - * [Undeploy-model](#undeploy-model) - * [Update-entity-type-monitoring-sample](#update-entity-type-monitoring-sample) - * [Update-entity-type-sample](#update-entity-type-sample) - * [Update-feature-sample](#update-feature-sample) - * [Update-featurestore-fixed-nodes-sample](#update-featurestore-fixed-nodes-sample) - * [Update-featurestore-sample](#update-featurestore-sample) - * [Upload-model](#upload-model) - -## Before you begin - -Before running the samples, make sure you've followed the steps outlined in -[Using the client library](https://github.com/googleapis/nodejs-ai-platform#using-the-client-library). - -`cd samples` - -`npm install` - -`cd ..` - -## Samples - - - -### Batch-create-features-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/batch-create-features-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/batch-create-features-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/batch-create-features-sample.js` - - ------ - - - - -### Batch-read-feature-values-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/batch-read-feature-values-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/batch-read-feature-values-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/batch-read-feature-values-sample.js` - - ------ - - - - -### Cancel-batch-prediction-job - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/cancel-batch-prediction-job.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/cancel-batch-prediction-job.js,samples/README.md) - -__Usage:__ - - -`node samples/cancel-batch-prediction-job.js` - - ------ - - - - -### Cancel-custom-job - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/cancel-custom-job.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/cancel-custom-job.js,samples/README.md) - -__Usage:__ - - -`node samples/cancel-custom-job.js` - - ------ - - - - -### Create-batch-prediction-job-text-classification - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-batch-prediction-job-text-classification.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-batch-prediction-job-text-classification.js,samples/README.md) - -__Usage:__ - - -`node samples/create-batch-prediction-job-text-classification.js` - - ------ - - - - -### Create-batch-prediction-job-text-entity-extraction - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-batch-prediction-job-text-entity-extraction.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-batch-prediction-job-text-entity-extraction.js,samples/README.md) - -__Usage:__ - - -`node samples/create-batch-prediction-job-text-entity-extraction.js` - - ------ - - - - -### Create-batch-prediction-job-text-sentiment-analysis - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-batch-prediction-job-text-sentiment-analysis.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-batch-prediction-job-text-sentiment-analysis.js,samples/README.md) - -__Usage:__ - - -`node samples/create-batch-prediction-job-text-sentiment-analysis.js` - - ------ - - - - -### Create-batch-prediction-job-video-action-recognition - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-batch-prediction-job-video-action-recognition.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-batch-prediction-job-video-action-recognition.js,samples/README.md) - -__Usage:__ - - -`node samples/create-batch-prediction-job-video-action-recognition.js` - - ------ - - - - -### Create-batch-prediction-job-video-classification - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-batch-prediction-job-video-classification.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-batch-prediction-job-video-classification.js,samples/README.md) - -__Usage:__ - - -`node samples/create-batch-prediction-job-video-classification.js` - - ------ - - - - -### Create-batch-prediction-job-video-object-tracking - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-batch-prediction-job-video-object-tracking.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-batch-prediction-job-video-object-tracking.js,samples/README.md) - -__Usage:__ - - -`node samples/create-batch-prediction-job-video-object-tracking.js` - - ------ - - - - -### Create-custom-job - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-custom-job.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-custom-job.js,samples/README.md) - -__Usage:__ - - -`node samples/create-custom-job.js` - - ------ - - - - -### Create-dataset-image - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-dataset-image.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-dataset-image.js,samples/README.md) - -__Usage:__ - - -`node samples/create-dataset-image.js` - - ------ - - - - -### Create-dataset-tabular-bigquery - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-dataset-tabular-bigquery.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-dataset-tabular-bigquery.js,samples/README.md) - -__Usage:__ - - -`node samples/create-dataset-tabular-bigquery.js` - - ------ - - - - -### Create-dataset-tabular-gcs - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-dataset-tabular-gcs.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-dataset-tabular-gcs.js,samples/README.md) - -__Usage:__ - - -`node samples/create-dataset-tabular-gcs.js` - - ------ - - - - -### Create-dataset-text - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-dataset-text.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-dataset-text.js,samples/README.md) - -__Usage:__ - - -`node samples/create-dataset-text.js` - - ------ - - - - -### Create-dataset-video - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-dataset-video.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-dataset-video.js,samples/README.md) - -__Usage:__ - - -`node samples/create-dataset-video.js` - - ------ - - - - -### Create-dataset - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-dataset.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-dataset.js,samples/README.md) - -__Usage:__ - - -`node samples/create-dataset.js` - - ------ - - - - -### Create-endpoint - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-endpoint.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-endpoint.js,samples/README.md) - -__Usage:__ - - -`node samples/create-endpoint.js` - - ------ - - - - -### Create-entity-type-monitoring-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-entity-type-monitoring-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-entity-type-monitoring-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/create-entity-type-monitoring-sample.js` - - ------ - - - - -### Create-entity-type-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-entity-type-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-entity-type-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/create-entity-type-sample.js` - - ------ - - - - -### Create-feature-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-feature-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-feature-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/create-feature-sample.js` - - ------ - - - - -### Create-featurestore-fixed-nodes-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-featurestore-fixed-nodes-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-featurestore-fixed-nodes-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/create-featurestore-fixed-nodes-sample.js` - - ------ - - - - -### Create-featurestore-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-featurestore-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-featurestore-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/create-featurestore-sample.js` - - ------ - - - - -### Create-hyperparameter-tuning-job - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-hyperparameter-tuning-job.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-hyperparameter-tuning-job.js,samples/README.md) - -__Usage:__ - - -`node samples/create-hyperparameter-tuning-job.js` - - ------ - - - - -### Create-training-pipeline-image-classification - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-training-pipeline-image-classification.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-training-pipeline-image-classification.js,samples/README.md) - -__Usage:__ - - -`node samples/create-training-pipeline-image-classification.js` - - ------ - - - - -### Create-training-pipeline-image-object-detection - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-training-pipeline-image-object-detection.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-training-pipeline-image-object-detection.js,samples/README.md) - -__Usage:__ - - -`node samples/create-training-pipeline-image-object-detection.js` - - ------ - - - - -### Create-training-pipeline-tabular-classification - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-training-pipeline-tabular-classification.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-training-pipeline-tabular-classification.js,samples/README.md) - -__Usage:__ - - -`node samples/create-training-pipeline-tabular-classification.js` - - ------ - - - - -### Create-training-pipeline-tabular-regression - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-training-pipeline-tabular-regression.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-training-pipeline-tabular-regression.js,samples/README.md) - -__Usage:__ - - -`node samples/create-training-pipeline-tabular-regression.js` - - ------ - - - - -### Create-training-pipeline-text-classification - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-training-pipeline-text-classification.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-training-pipeline-text-classification.js,samples/README.md) - -__Usage:__ - - -`node samples/create-training-pipeline-text-classification.js` - - ------ - - - - -### Create-training-pipeline-text-entity-extraction - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-training-pipeline-text-entity-extraction.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-training-pipeline-text-entity-extraction.js,samples/README.md) - -__Usage:__ - - -`node samples/create-training-pipeline-text-entity-extraction.js` - - ------ - - - - -### Create-training-pipeline-text-sentiment-analysis - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-training-pipeline-text-sentiment-analysis.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-training-pipeline-text-sentiment-analysis.js,samples/README.md) - -__Usage:__ - - -`node samples/create-training-pipeline-text-sentiment-analysis.js` - - ------ - - - - -### Create-training-pipeline-video-action-recognition - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-training-pipeline-video-action-recognition.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-training-pipeline-video-action-recognition.js,samples/README.md) - -__Usage:__ - - -`node samples/create-training-pipeline-video-action-recognition.js` - - ------ - - - - -### Create-training-pipeline-video-classification - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-training-pipeline-video-classification.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-training-pipeline-video-classification.js,samples/README.md) - -__Usage:__ - - -`node samples/create-training-pipeline-video-classification.js` - - ------ - - - - -### Create-training-pipeline-video-object-tracking - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/create-training-pipeline-video-object-tracking.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/create-training-pipeline-video-object-tracking.js,samples/README.md) - -__Usage:__ - - -`node samples/create-training-pipeline-video-object-tracking.js` - - ------ - - - - -### Delete-batch-prediction-job - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/delete-batch-prediction-job.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/delete-batch-prediction-job.js,samples/README.md) - -__Usage:__ - - -`node samples/delete-batch-prediction-job.js` - - ------ - - - - -### Delete-custom-job - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/delete-custom-job.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/delete-custom-job.js,samples/README.md) - -__Usage:__ - - -`node samples/delete-custom-job.js` - - ------ - - - - -### Delete-dataset - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/delete-dataset.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/delete-dataset.js,samples/README.md) - -__Usage:__ - - -`node samples/delete-dataset.js` - - ------ - - - - -### Delete-endpoint - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/delete-endpoint.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/delete-endpoint.js,samples/README.md) - -__Usage:__ - - -`node samples/delete-endpoint.js` - - ------ - - - - -### Delete-entity-type-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/delete-entity-type-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/delete-entity-type-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/delete-entity-type-sample.js` - - ------ - - - - -### Delete-export-model - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/delete-export-model.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/delete-export-model.js,samples/README.md) - -__Usage:__ - - -`node samples/delete-export-model.js` - - ------ - - - - -### Delete-feature-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/delete-feature-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/delete-feature-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/delete-feature-sample.js` - - ------ - - - - -### Delete-featurestore-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/delete-featurestore-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/delete-featurestore-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/delete-featurestore-sample.js` - - ------ - - - - -### Delete-model - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/delete-model.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/delete-model.js,samples/README.md) - -__Usage:__ - - -`node samples/delete-model.js` - - ------ - - - - -### Deploy-model-custom-trained-model - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/deploy-model-custom-trained-model.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/deploy-model-custom-trained-model.js,samples/README.md) - -__Usage:__ - - -`node samples/deploy-model-custom-trained-model.js` - - ------ - - - - -### Deploy-model - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/deploy-model.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/deploy-model.js,samples/README.md) - -__Usage:__ - - -`node samples/deploy-model.js` - - ------ - - - - -### Export-feature-values-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/export-feature-values-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/export-feature-values-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/export-feature-values-sample.js` - - ------ - - - - -### Export-feature-values-snapshot-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/export-feature-values-snapshot-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/export-feature-values-snapshot-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/export-feature-values-snapshot-sample.js` - - ------ - - - - -### Export-model-tabular-classification - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/export-model-tabular-classification.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/export-model-tabular-classification.js,samples/README.md) - -__Usage:__ - - -`node samples/export-model-tabular-classification.js` - - ------ - - - - -### Export-model - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/export-model.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/export-model.js,samples/README.md) - -__Usage:__ - - -`node samples/export-model.js` - - ------ - - - - -### Get-batch-prediction-job - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-batch-prediction-job.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-batch-prediction-job.js,samples/README.md) - -__Usage:__ - - -`node samples/get-batch-prediction-job.js` - - ------ - - - - -### Get-custom-job - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-custom-job.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-custom-job.js,samples/README.md) - -__Usage:__ - - -`node samples/get-custom-job.js` - - ------ - - - - -### Get-entity-type-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-entity-type-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-entity-type-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/get-entity-type-sample.js` - - ------ - - - - -### Get-feature-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-feature-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-feature-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/get-feature-sample.js` - - ------ - - - - -### Get-featurestore-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-featurestore-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-featurestore-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/get-featurestore-sample.js` - - ------ - - - - -### Get-hyperparameter-tuning-job - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-hyperparameter-tuning-job.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-hyperparameter-tuning-job.js,samples/README.md) - -__Usage:__ - - -`node samples/get-hyperparameter-tuning-job.js` - - ------ - - - - -### Get-model-evaluation-image-classification - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-image-classification.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-image-classification.js,samples/README.md) - -__Usage:__ - - -`node samples/get-model-evaluation-image-classification.js` - - ------ - - - - -### Get-model-evaluation-image-object-detection - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-image-object-detection.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-image-object-detection.js,samples/README.md) - -__Usage:__ - - -`node samples/get-model-evaluation-image-object-detection.js` - - ------ - - - - -### Get-model-evaluation-slice - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-slice.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-slice.js,samples/README.md) - -__Usage:__ - - -`node samples/get-model-evaluation-slice.js` - - ------ - - - - -### Get-model-evaluation-tabular-classification - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-tabular-classification.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-tabular-classification.js,samples/README.md) - -__Usage:__ - - -`node samples/get-model-evaluation-tabular-classification.js` - - ------ - - - - -### Get-model-evaluation-tabular-regression - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-tabular-regression.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-tabular-regression.js,samples/README.md) - -__Usage:__ - - -`node samples/get-model-evaluation-tabular-regression.js` - - ------ - - - - -### Get-model-evaluation-text-classification - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-text-classification.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-text-classification.js,samples/README.md) - -__Usage:__ - - -`node samples/get-model-evaluation-text-classification.js` - - ------ - - - - -### Get-model-evaluation-text-entity-extraction - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-text-entity-extraction.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-text-entity-extraction.js,samples/README.md) - -__Usage:__ - - -`node samples/get-model-evaluation-text-entity-extraction.js` - - ------ - - - - -### Get-model-evaluation-text-sentiment-analysis - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-text-sentiment-analysis.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-text-sentiment-analysis.js,samples/README.md) - -__Usage:__ - - -`node samples/get-model-evaluation-text-sentiment-analysis.js` - - ------ - - - - -### Get-model-evaluation-video-action-recognition - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-video-action-recognition.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-video-action-recognition.js,samples/README.md) - -__Usage:__ - - -`node samples/get-model-evaluation-video-action-recognition.js` - - ------ - - - - -### Get-model-evaluation-video-classification - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-video-classification.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-video-classification.js,samples/README.md) - -__Usage:__ - - -`node samples/get-model-evaluation-video-classification.js` - - ------ - - - - -### Get-model-evaluation-video-object-tracking - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation-video-object-tracking.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation-video-object-tracking.js,samples/README.md) - -__Usage:__ - - -`node samples/get-model-evaluation-video-object-tracking.js` - - ------ - - - - -### Get-model-evaluation - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model-evaluation.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model-evaluation.js,samples/README.md) - -__Usage:__ - - -`node samples/get-model-evaluation.js` - - ------ - - - - -### Get-model - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-model.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-model.js,samples/README.md) - -__Usage:__ - - -`node samples/get-model.js` - - ------ - - - - -### Get-training-pipeline - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/get-training-pipeline.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/get-training-pipeline.js,samples/README.md) - -__Usage:__ - - -`node samples/get-training-pipeline.js` - - ------ - - - - -### Import-data-image-classification - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/import-data-image-classification.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/import-data-image-classification.js,samples/README.md) - -__Usage:__ - - -`node samples/import-data-image-classification.js` - - ------ - - - - -### Import-data-image-object-detection - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/import-data-image-object-detection.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/import-data-image-object-detection.js,samples/README.md) - -__Usage:__ - - -`node samples/import-data-image-object-detection.js` - - ------ - - - - -### Import-data-text-classification-single-label - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/import-data-text-classification-single-label.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/import-data-text-classification-single-label.js,samples/README.md) - -__Usage:__ - - -`node samples/import-data-text-classification-single-label.js` - - ------ - - - - -### Import-data-text-entity-extraction - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/import-data-text-entity-extraction.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/import-data-text-entity-extraction.js,samples/README.md) - -__Usage:__ - - -`node samples/import-data-text-entity-extraction.js` - - ------ - - - - -### Import-data-text-sentiment-analysis - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/import-data-text-sentiment-analysis.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/import-data-text-sentiment-analysis.js,samples/README.md) - -__Usage:__ - - -`node samples/import-data-text-sentiment-analysis.js` - - ------ - - - - -### Import-data-video-action-recognition - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/import-data-video-action-recognition.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/import-data-video-action-recognition.js,samples/README.md) - -__Usage:__ - - -`node samples/import-data-video-action-recognition.js` - - ------ - - - - -### Import-data-video-classification - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/import-data-video-classification.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/import-data-video-classification.js,samples/README.md) - -__Usage:__ - - -`node samples/import-data-video-classification.js` - - ------ - - - - -### Import-data-video-object-tracking - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/import-data-video-object-tracking.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/import-data-video-object-tracking.js,samples/README.md) - -__Usage:__ - - -`node samples/import-data-video-object-tracking.js` - - ------ - - - - -### Import-data - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/import-data.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/import-data.js,samples/README.md) - -__Usage:__ - - -`node samples/import-data.js` - - ------ - - - - -### Import-feature-values-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/import-feature-values-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/import-feature-values-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/import-feature-values-sample.js` - - ------ - - - - -### List-endpoints - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-endpoints.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-endpoints.js,samples/README.md) - -__Usage:__ - - -`node samples/list-endpoints.js` - - ------ - - - - -### List-entity-types-async-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-entity-types-async-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-entity-types-async-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/list-entity-types-async-sample.js` - - ------ - - - - -### List-entity-types-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-entity-types-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-entity-types-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/list-entity-types-sample.js` - - ------ - - - - -### List-entity-types-stream-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-entity-types-stream-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-entity-types-stream-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/list-entity-types-stream-sample.js` - - ------ - - - - -### List-features-async-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-features-async-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-features-async-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/list-features-async-sample.js` - - ------ - - - - -### List-features-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-features-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-features-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/list-features-sample.js` - - ------ - - - - -### List-features-stream-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-features-stream-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-features-stream-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/list-features-stream-sample.js` - - ------ - - - - -### List-featurestores-async-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-featurestores-async-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-featurestores-async-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/list-featurestores-async-sample.js` - - ------ - - - - -### List-featurestores-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-featurestores-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-featurestores-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/list-featurestores-sample.js` - - ------ - - - - -### List-featurestores-stream-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-featurestores-stream-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-featurestores-stream-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/list-featurestores-stream-sample.js` - - ------ - - - - -### List-model-evaluation-slices - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/list-model-evaluation-slices.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/list-model-evaluation-slices.js,samples/README.md) - -__Usage:__ - - -`node samples/list-model-evaluation-slices.js` - - ------ - - - - -### Predict-custom-trained-model - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/predict-custom-trained-model.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/predict-custom-trained-model.js,samples/README.md) - -__Usage:__ - - -`node samples/predict-custom-trained-model.js` - - ------ - - - - -### Predict-image-classification - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/predict-image-classification.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/predict-image-classification.js,samples/README.md) - -__Usage:__ - - -`node samples/predict-image-classification.js` - - ------ - - - - -### Predict-image-object-detection - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/predict-image-object-detection.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/predict-image-object-detection.js,samples/README.md) - -__Usage:__ - - -`node samples/predict-image-object-detection.js` - - ------ - - - - -### Predict-tabular-classification - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/predict-tabular-classification.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/predict-tabular-classification.js,samples/README.md) - -__Usage:__ - - -`node samples/predict-tabular-classification.js` - - ------ - - - - -### Predict-tabular-regression - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/predict-tabular-regression.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/predict-tabular-regression.js,samples/README.md) - -__Usage:__ - - -`node samples/predict-tabular-regression.js` - - ------ - - - - -### Predict-text-classification - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/predict-text-classification.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/predict-text-classification.js,samples/README.md) - -__Usage:__ - - -`node samples/predict-text-classification.js` - - ------ - - - - -### Predict-text-entity-extraction - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/predict-text-entity-extraction.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/predict-text-entity-extraction.js,samples/README.md) - -__Usage:__ - - -`node samples/predict-text-entity-extraction.js` - - ------ - - - - -### Predict-text-sentiment-analysis - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/predict-text-sentiment-analysis.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/predict-text-sentiment-analysis.js,samples/README.md) - -__Usage:__ - - -`node samples/predict-text-sentiment-analysis.js` - - ------ - - - - -### Quickstart - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/quickstart.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) - -__Usage:__ - - -`node samples/quickstart.js` - - ------ - - - - -### Read-feature-values-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/read-feature-values-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/read-feature-values-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/read-feature-values-sample.js` - - ------ - - - - -### Search-features-async-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/search-features-async-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/search-features-async-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/search-features-async-sample.js` - - ------ - - - - -### Search-features-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/search-features-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/search-features-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/search-features-sample.js` - - ------ - - - - -### Search-features-stream-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/search-features-stream-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/search-features-stream-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/search-features-stream-sample.js` - - ------ - - - - -### Undeploy-model - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/undeploy-model.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/undeploy-model.js,samples/README.md) - -__Usage:__ - - -`node samples/undeploy-model.js` - - ------ - - - - -### Update-entity-type-monitoring-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/update-entity-type-monitoring-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/update-entity-type-monitoring-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/update-entity-type-monitoring-sample.js` - - ------ - - - - -### Update-entity-type-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/update-entity-type-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/update-entity-type-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/update-entity-type-sample.js` - - ------ - - - - -### Update-feature-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/update-feature-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/update-feature-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/update-feature-sample.js` - - ------ - - - - -### Update-featurestore-fixed-nodes-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/update-featurestore-fixed-nodes-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/update-featurestore-fixed-nodes-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/update-featurestore-fixed-nodes-sample.js` - - ------ - - - - -### Update-featurestore-sample - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/update-featurestore-sample.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/update-featurestore-sample.js,samples/README.md) - -__Usage:__ - - -`node samples/update-featurestore-sample.js` - - ------ - - - - -### Upload-model - -View the [source code](https://github.com/googleapis/nodejs-ai-platform/blob/main/samples/upload-model.js). - -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/upload-model.js,samples/README.md) - -__Usage:__ - - -`node samples/upload-model.js` - - - - - - -[shell_img]: https://gstatic.com/cloudssh/images/open-btn.png -[shell_link]: https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-ai-platform&page=editor&open_in_editor=samples/README.md -[product-docs]: https://cloud.google.com/vertex-ai/docs diff --git a/samples/batch-create-features-sample.js b/samples/batch-create-features-sample.js deleted file mode 100644 index 56592581..00000000 --- a/samples/batch-create-features-sample.js +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Creates a batch of Features in a given EntityType. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - entityTypeId, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_batch_create_features_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function batchCreateFeatures() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId}`; - - const ageFeature = { - valueType: 'INT64', - description: 'User age', - }; - - const ageFeatureRequest = { - feature: ageFeature, - featureId: 'age', - }; - - const genderFeature = { - valueType: 'STRING', - description: 'User gender', - }; - - const genderFeatureRequest = { - feature: genderFeature, - featureId: 'gender', - }; - - const likedGenresFeature = { - valueType: 'STRING_ARRAY', - description: 'An array of genres that this user liked', - }; - - const likedGenresFeatureRequest = { - feature: likedGenresFeature, - featureId: 'liked_genres', - }; - - const requests = [ - ageFeatureRequest, - genderFeatureRequest, - likedGenresFeatureRequest, - ]; - - const request = { - parent: parent, - requests: requests, - }; - - // Batch Create Features request - const [operation] = await featurestoreServiceClient.batchCreateFeatures( - request, - {timeout: Number(timeout)} - ); - const [response] = await operation.promise(); - - console.log('Batch create features response'); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - batchCreateFeatures(); - // [END aiplatform_batch_create_features_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/batch-read-feature-values-sample.js b/samples/batch-read-feature-values-sample.js deleted file mode 100644 index 75a19893..00000000 --- a/samples/batch-read-feature-values-sample.js +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Batch reads Feature values from a Featurestore. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - inputCsvFile, - destinationTableUri, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_batch_read_feature_values_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const inputCsvFile = 'YOUR_INPUT_CSV_FILE_URI'; - // const destinationTableUri = 'YOUR_BQ_DESTINATION_TABLE_URI'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function batchReadFeatureValues() { - // Configure the featurestoreId resource - const featurestore = `projects/${project}/locations/${location}/featurestores/${featurestoreId}`; - const csvReadInstances = { - gcsSource: { - uris: [inputCsvFile], - }, - }; - - const destination = { - bigqueryDestination: { - // # Output to BigQuery table created earlier - outputUri: destinationTableUri, - }, - }; - - const usersFeatureSelector = { - idMatcher: { - ids: [ - // features, use "*" if you want to select all features within this entity type - 'age', - 'gender', - 'liked_genres', - ], - }, - }; - - const usersEntityTypeSpec = { - // Read the 'age', 'gender' and 'liked_genres' features from the 'perm_users' entity - entityTypeId: 'perm_users', - featureSelector: usersFeatureSelector, - }; - - const moviesFeatureSelector = { - idMatcher: { - ids: ['*'], - }, - }; - - const moviesEntityTypeSpec = { - // Read the all features from the 'perm_movies' entity - entityTypeId: 'perm_movies', - featureSelector: moviesFeatureSelector, - }; - - const entityTypeSpecs = [usersEntityTypeSpec, moviesEntityTypeSpec]; - - // Construct request - const request = { - featurestore: featurestore, - csvReadInstances: csvReadInstances, - destination: destination, - entityTypeSpecs: entityTypeSpecs, - }; - - // Batch Read Feature Values Request - const [operation] = await featurestoreServiceClient.batchReadFeatureValues( - request, - {timeout: Number(timeout)} - ); - const [response] = await operation.promise(); - - console.log('Batch read feature values response'); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - batchReadFeatureValues(); - // [END aiplatform_batch_read_feature_values_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/cancel-batch-prediction-job.js b/samples/cancel-batch-prediction-job.js deleted file mode 100644 index c9c8c8e4..00000000 --- a/samples/cancel-batch-prediction-job.js +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(batchPredictionJobId, project, location = 'us-central1') { - // [START aiplatform_cancel_batch_prediction_job_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const batchPredictionJobId = 'YOUR_BATCH_PREDICTION_JOB_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Job Service Client library - const {JobServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const jobServiceClient = new JobServiceClient(clientOptions); - - async function cancelBatchPredictionJob() { - // Configure the name resource - const name = `projects/${project}/locations/${location}/batchPredictionJobs/${batchPredictionJobId}`; - const request = { - name, - }; - - // Cancel batch prediction job request - await jobServiceClient.cancelBatchPredictionJob(request); - console.log('Cancel batch prediction job response :'); - } - - cancelBatchPredictionJob(); - // [END aiplatform_cancel_batch_prediction_job_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/cancel-custom-job.js b/samples/cancel-custom-job.js deleted file mode 100644 index b7e56caf..00000000 --- a/samples/cancel-custom-job.js +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(customJobId, project, location = 'us-central1') { - // [START aiplatform_cancel_custom_job_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - */ - - // const customJobId = 'YOUR_CUSTOM_JOB_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Job Service Client library - const {JobServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const jobServiceClient = new JobServiceClient(clientOptions); - - async function cancelCustomJob() { - // Configure the name resource - const name = jobServiceClient.customJobPath(project, location, customJobId); - const request = { - name, - }; - - // Cancel custom job request - const [response] = await jobServiceClient.cancelCustomJob(request); - - console.log('Cancel custom job response:\n', response); - } - cancelCustomJob(); - // [END aiplatform_cancel_custom_job_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-batch-prediction-job-text-classification.js b/samples/create-batch-prediction-job-text-classification.js deleted file mode 100644 index f9cc5f35..00000000 --- a/samples/create-batch-prediction-job-text-classification.js +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright 2021 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - batchPredictionDisplayName, - modelId, - gcsSourceUri, - gcsDestinationOutputUriPrefix, - project, - location = 'us-central1' -) { - // [START aiplatform_create_batch_prediction_job_text_classification_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const batchPredictionDisplayName = 'YOUR_BATCH_PREDICTION_DISPLAY_NAME'; - // const modelId = 'YOUR_MODEL_ID'; - // const gcsSourceUri = 'YOUR_GCS_SOURCE_URI'; - // const gcsDestinationOutputUriPrefix = 'YOUR_GCS_DEST_OUTPUT_URI_PREFIX'; - // eg. "gs:///destination_path" - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Job Service Client library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const jobServiceClient = new JobServiceClient(clientOptions); - - async function createBatchPredictionJobTextClassification() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - const modelName = `projects/${project}/locations/${location}/models/${modelId}`; - - const inputConfig = { - instancesFormat: 'jsonl', - gcsSource: {uris: [gcsSourceUri]}, - }; - const outputConfig = { - predictionsFormat: 'jsonl', - gcsDestination: {outputUriPrefix: gcsDestinationOutputUriPrefix}, - }; - const batchPredictionJob = { - displayName: batchPredictionDisplayName, - model: modelName, - inputConfig, - outputConfig, - }; - const request = { - parent, - batchPredictionJob, - }; - - // Create batch prediction job request - const [response] = await jobServiceClient.createBatchPredictionJob(request); - - console.log('Create batch prediction job text classification response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - createBatchPredictionJobTextClassification(); - // [END aiplatform_create_batch_prediction_job_text_classification_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-batch-prediction-job-text-entity-extraction.js b/samples/create-batch-prediction-job-text-entity-extraction.js deleted file mode 100644 index 4497c777..00000000 --- a/samples/create-batch-prediction-job-text-entity-extraction.js +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright 2021 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - batchPredictionDisplayName, - modelId, - gcsSourceUri, - gcsDestinationOutputUriPrefix, - project, - location = 'us-central1' -) { - // [START aiplatform_create_batch_prediction_job_text_entity_extraction_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const batchPredictionDisplayName = 'YOUR_BATCH_PREDICTION_DISPLAY_NAME'; - // const modelId = 'YOUR_MODEL_ID'; - // const gcsSourceUri = 'YOUR_GCS_SOURCE_URI'; - // const gcsDestinationOutputUriPrefix = 'YOUR_GCS_DEST_OUTPUT_URI_PREFIX'; - // eg. "gs:///destination_path" - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Job Service Client library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const jobServiceClient = new JobServiceClient(clientOptions); - - async function createBatchPredictionJobTextEntityExtraction() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - const modelName = `projects/${project}/locations/${location}/models/${modelId}`; - - const inputConfig = { - instancesFormat: 'jsonl', - gcsSource: {uris: [gcsSourceUri]}, - }; - const outputConfig = { - predictionsFormat: 'jsonl', - gcsDestination: {outputUriPrefix: gcsDestinationOutputUriPrefix}, - }; - const batchPredictionJob = { - displayName: batchPredictionDisplayName, - model: modelName, - inputConfig, - outputConfig, - }; - const request = { - parent, - batchPredictionJob, - }; - - // Create batch prediction job request - const [response] = await jobServiceClient.createBatchPredictionJob(request); - - console.log('Create batch prediction job text entity extraction response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - createBatchPredictionJobTextEntityExtraction(); - // [END aiplatform_create_batch_prediction_job_text_entity_extraction_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-batch-prediction-job-text-sentiment-analysis.js b/samples/create-batch-prediction-job-text-sentiment-analysis.js deleted file mode 100644 index db85e599..00000000 --- a/samples/create-batch-prediction-job-text-sentiment-analysis.js +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright 2021 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - batchPredictionDisplayName, - modelId, - gcsSourceUri, - gcsDestinationOutputUriPrefix, - project, - location = 'us-central1' -) { - // [START aiplatform_create_batch_prediction_job_text_sentiment_analysis_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const batchPredictionDisplayName = 'YOUR_BATCH_PREDICTION_DISPLAY_NAME'; - // const modelId = 'YOUR_MODEL_ID'; - // const gcsSourceUri = 'YOUR_GCS_SOURCE_URI'; - // const gcsDestinationOutputUriPrefix = 'YOUR_GCS_DEST_OUTPUT_URI_PREFIX'; - // eg. "gs:///destination_path" - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Job Service Client library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const jobServiceClient = new JobServiceClient(clientOptions); - - async function createBatchPredictionJobTextSentimentAnalysis() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - const modelName = `projects/${project}/locations/${location}/models/${modelId}`; - - const inputConfig = { - instancesFormat: 'jsonl', - gcsSource: {uris: [gcsSourceUri]}, - }; - const outputConfig = { - predictionsFormat: 'jsonl', - gcsDestination: {outputUriPrefix: gcsDestinationOutputUriPrefix}, - }; - const batchPredictionJob = { - displayName: batchPredictionDisplayName, - model: modelName, - inputConfig, - outputConfig, - }; - const request = { - parent, - batchPredictionJob, - }; - - // Create batch prediction job request - const [response] = await jobServiceClient.createBatchPredictionJob(request); - - console.log('Create batch prediction job text sentiment analysis response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - createBatchPredictionJobTextSentimentAnalysis(); - // [END aiplatform_create_batch_prediction_job_text_sentiment_analysis_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-batch-prediction-job-video-action-recognition.js b/samples/create-batch-prediction-job-video-action-recognition.js deleted file mode 100644 index 37d5a50f..00000000 --- a/samples/create-batch-prediction-job-video-action-recognition.js +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -function main( - batchPredictionDisplayName, - modelId, - gcsSourceUri, - gcsDestinationOutputUriPrefix, - project, - location = 'us-central1' -) { - // [START aiplatform_create_batch_prediction_job_video_action_recognition_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const batchPredictionDisplayName = 'YOUR_BATCH_PREDICTION_DISPLAY_NAME'; - // const modelId = 'YOUR_MODEL_ID'; - // const gcsSourceUri = 'YOUR_GCS_SOURCE_URI'; - // const gcsDestinationOutputUriPrefix = 'YOUR_GCS_DEST_OUTPUT_URI_PREFIX'; - // eg. "gs:///destination_path" - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - const aiplatform = require('@google-cloud/aiplatform'); - const {params} = aiplatform.protos.google.cloud.aiplatform.v1.schema.predict; - - // Imports the Google Cloud Job Service Client library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const jobServiceClient = new JobServiceClient(clientOptions); - - async function createBatchPredictionJobVideoActionRecognition() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - const modelName = `projects/${project}/locations/${location}/models/${modelId}`; - - // For more information on how to configure the model parameters object, see - // https://cloud.google.com/ai-platform-unified/docs/predictions/batch-predictions - const modelParamsObj = new params.VideoActionRecognitionPredictionParams({ - confidenceThreshold: 0.5, - }); - - const modelParameters = modelParamsObj.toValue(); - - const inputConfig = { - instancesFormat: 'jsonl', - gcsSource: {uris: [gcsSourceUri]}, - }; - const outputConfig = { - predictionsFormat: 'jsonl', - gcsDestination: {outputUriPrefix: gcsDestinationOutputUriPrefix}, - }; - const batchPredictionJob = { - displayName: batchPredictionDisplayName, - model: modelName, - modelParameters, - inputConfig, - outputConfig, - }; - const request = { - parent, - batchPredictionJob, - }; - - // Create batch prediction job request - const [response] = await jobServiceClient.createBatchPredictionJob(request); - - console.log( - 'Create batch prediction job video action recognition response' - ); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - createBatchPredictionJobVideoActionRecognition(); - // [END aiplatform_create_batch_prediction_job_video_action_recognition_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-batch-prediction-job-video-classification.js b/samples/create-batch-prediction-job-video-classification.js deleted file mode 100644 index 6208ffb8..00000000 --- a/samples/create-batch-prediction-job-video-classification.js +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - batchPredictionDisplayName, - modelId, - gcsSourceUri, - gcsDestinationOutputUriPrefix, - project, - location = 'us-central1' -) { - // [START aiplatform_create_batch_prediction_job_video_classification_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const batchPredictionDisplayName = 'YOUR_BATCH_PREDICTION_DISPLAY_NAME'; - // const modelId = 'YOUR_MODEL_ID'; - // const gcsSourceUri = 'YOUR_GCS_SOURCE_URI'; - // const gcsDestinationOutputUriPrefix = 'YOUR_GCS_DEST_OUTPUT_URI_PREFIX'; - // eg. "gs:///destination_path" - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - const aiplatform = require('@google-cloud/aiplatform'); - const {params} = aiplatform.protos.google.cloud.aiplatform.v1.schema.predict; - - // Imports the Google Cloud Job Service Client library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const jobServiceClient = new JobServiceClient(clientOptions); - - async function createBatchPredictionJobVideoClassification() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - const modelName = `projects/${project}/locations/${location}/models/${modelId}`; - - // For more information on how to configure the model parameters object, see - // https://cloud.google.com/ai-platform-unified/docs/predictions/batch-predictions - const modelParamsObj = new params.VideoClassificationPredictionParams({ - confidenceThreshold: 0.5, - maxPredictions: 1000, - segmentClassification: true, - shotClassification: true, - oneSecIntervalClassification: true, - }); - - const modelParameters = modelParamsObj.toValue(); - - const inputConfig = { - instancesFormat: 'jsonl', - gcsSource: {uris: [gcsSourceUri]}, - }; - const outputConfig = { - predictionsFormat: 'jsonl', - gcsDestination: {outputUriPrefix: gcsDestinationOutputUriPrefix}, - }; - const batchPredictionJob = { - displayName: batchPredictionDisplayName, - model: modelName, - modelParameters, - inputConfig, - outputConfig, - }; - const request = { - parent, - batchPredictionJob, - }; - - // Create batch prediction job request - const [response] = await jobServiceClient.createBatchPredictionJob(request); - - console.log('Create batch prediction job video classification response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - createBatchPredictionJobVideoClassification(); - // [END aiplatform_create_batch_prediction_job_video_classification_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-batch-prediction-job-video-object-tracking.js b/samples/create-batch-prediction-job-video-object-tracking.js deleted file mode 100644 index 0e5b898e..00000000 --- a/samples/create-batch-prediction-job-video-object-tracking.js +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - batchPredictionDisplayName, - modelId, - gcsSourceUri, - gcsDestinationOutputUriPrefix, - project, - location = 'us-central1' -) { - // [START aiplatform_create_batch_prediction_job_video_object_tracking_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const batchPredictionDisplayName = 'YOUR_BATCH_PREDICTION_DISPLAY_NAME'; - // const modelId = 'YOUR_MODEL_ID'; - // const gcsSourceUri = 'YOUR_GCS_SOURCE_URI'; - // const gcsDestinationOutputUriPrefix = 'YOUR_GCS_DEST_OUTPUT_URI_PREFIX'; - // eg. "gs:///destination_path" - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - const aiplatform = require('@google-cloud/aiplatform'); - const {params} = aiplatform.protos.google.cloud.aiplatform.v1.schema.predict; - - // Imports the Google Cloud Job Service Client library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const jobServiceClient = new JobServiceClient(clientOptions); - - async function createBatchPredictionJobVideoObjectTracking() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - const modelName = `projects/${project}/locations/${location}/models/${modelId}`; - - // For more information on how to configure the model parameters object, see - // https://cloud.google.com/ai-platform-unified/docs/predictions/batch-predictions - const modelParamsObj = new params.VideoObjectTrackingPredictionParams({ - confidenceThreshold: 0.5, - }); - - const modelParameters = modelParamsObj.toValue(); - - const inputConfig = { - instancesFormat: 'jsonl', - gcsSource: {uris: [gcsSourceUri]}, - }; - const outputConfig = { - predictionsFormat: 'jsonl', - gcsDestination: {outputUriPrefix: gcsDestinationOutputUriPrefix}, - }; - const batchPredictionJob = { - displayName: batchPredictionDisplayName, - model: modelName, - modelParameters, - inputConfig, - outputConfig, - }; - const request = { - parent, - batchPredictionJob, - }; - - // Create batch prediction job request - const [response] = await jobServiceClient.createBatchPredictionJob(request); - - console.log('Create batch prediction job video object tracking response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - createBatchPredictionJobVideoObjectTracking(); - // [END aiplatform_create_batch_prediction_job_video_object_tracking_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-custom-job.js b/samples/create-custom-job.js deleted file mode 100644 index cae36902..00000000 --- a/samples/create-custom-job.js +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - customJobDisplayName, - containerImageUri, - project, - location = 'us-central1' -) { - // [START aiplatform_create_custom_job_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const customJobDisplayName = 'YOUR_CUSTOM_JOB_DISPLAY_NAME'; - // const containerImageUri = 'YOUR_CONTAINER_IMAGE_URI'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Job Service Client library - const {JobServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const jobServiceClient = new JobServiceClient(clientOptions); - - async function createCustomJob() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - const customJob = { - displayName: customJobDisplayName, - jobSpec: { - workerPoolSpecs: [ - { - machineSpec: { - machineType: 'n1-standard-4', - acceleratorType: 'NVIDIA_TESLA_K80', - acceleratorCount: 1, - }, - replicaCount: 1, - containerSpec: { - imageUri: containerImageUri, - command: [], - args: [], - }, - }, - ], - }, - }; - const request = {parent, customJob}; - - // Create custom job request - const [response] = await jobServiceClient.createCustomJob(request); - - console.log('Create custom job response:\n', JSON.stringify(response)); - } - createCustomJob(); - // [END aiplatform_create_custom_job_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-dataset-image.js b/samples/create-dataset-image.js deleted file mode 100644 index 03353518..00000000 --- a/samples/create-dataset-image.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(datasetDisplayName, project, location = 'us-central1') { - // [START aiplatform_create_dataset_image_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetDisplayName = "YOUR_DATASTE_DISPLAY_NAME"; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Dataset Service Client library - const {DatasetServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const datasetServiceClient = new DatasetServiceClient(clientOptions); - - async function createDatasetImage() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - // Configure the dataset resource - const dataset = { - displayName: datasetDisplayName, - metadataSchemaUri: - 'gs://google-cloud-aiplatform/schema/dataset/metadata/image_1.0.0.yaml', - }; - const request = { - parent, - dataset, - }; - - // Create Dataset Request - const [response] = await datasetServiceClient.createDataset(request); - console.log(`Long running operation: ${response.name}`); - - // Wait for operation to complete - await response.promise(); - const result = response.result; - - console.log('Create dataset image response'); - console.log(`Name : ${result.name}`); - console.log(`Display name : ${result.displayName}`); - console.log(`Metadata schema uri : ${result.metadataSchemaUri}`); - console.log(`Metadata : ${JSON.stringify(result.metadata)}`); - console.log(`Labels : ${JSON.stringify(result.labels)}`); - } - createDatasetImage(); - // [END aiplatform_create_dataset_image_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-dataset-tabular-bigquery.js b/samples/create-dataset-tabular-bigquery.js deleted file mode 100644 index a68b3b83..00000000 --- a/samples/create-dataset-tabular-bigquery.js +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetDisplayName, - bigquerySourceUri, - project, - location = 'us-central1' -) { - // [START aiplatform_create_dataset_tabular_bigquery_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetDisplayName = 'YOUR_DATASET_DISPLAY_NAME'; - // const bigquerySourceUri = 'YOUR_BIGQUERY_SOURCE_URI'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Dataset Service Client library - const {DatasetServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const datasetServiceClient = new DatasetServiceClient(clientOptions); - - async function createDatasetTabularBigquery() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - const metadata = { - structValue: { - fields: { - inputConfig: { - structValue: { - fields: { - bigquerySource: { - structValue: { - fields: { - uri: { - listValue: { - values: [{stringValue: bigquerySourceUri}], - }, - }, - }, - }, - }, - }, - }, - }, - }, - }, - }; - // Configure the dataset resource - const dataset = { - displayName: datasetDisplayName, - metadataSchemaUri: - 'gs://google-cloud-aiplatform/schema/dataset/metadata/tabular_1.0.0.yaml', - metadata: metadata, - }; - const request = { - parent, - dataset, - }; - - // Create dataset request - const [response] = await datasetServiceClient.createDataset(request); - console.log(`Long running operation : ${response.name}`); - - // Wait for operation to complete - await response.promise(); - const result = response.result; - - console.log('Create dataset tabular bigquery response'); - console.log(`\tName : ${result.name}`); - console.log(`\tDisplay name : ${result.displayName}`); - console.log(`\tMetadata schema uri : ${result.metadataSchemaUri}`); - console.log(`\tMetadata : ${JSON.stringify(result.metadata)}`); - } - createDatasetTabularBigquery(); - // [END aiplatform_create_dataset_tabular_bigquery_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-dataset-tabular-gcs.js b/samples/create-dataset-tabular-gcs.js deleted file mode 100644 index 34dd8bf3..00000000 --- a/samples/create-dataset-tabular-gcs.js +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetDisplayName, - gcsSourceUri, - project, - location = 'us-central1' -) { - // [START aiplatform_create_dataset_tabular_gcs_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetDisplayName = 'YOUR_DATASET_DISPLAY_NAME'; - // const gcsSourceUri = 'YOUR_GCS_SOURCE_URI'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Dataset Service Client library - const {DatasetServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const datasetServiceClient = new DatasetServiceClient(clientOptions); - - async function createDatasetTabularGcs() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - const metadata = { - structValue: { - fields: { - inputConfig: { - structValue: { - fields: { - gcsSource: { - structValue: { - fields: { - uri: { - listValue: { - values: [{stringValue: gcsSourceUri}], - }, - }, - }, - }, - }, - }, - }, - }, - }, - }, - }; - // Configure the dataset resource - const dataset = { - displayName: datasetDisplayName, - metadataSchemaUri: - 'gs://google-cloud-aiplatform/schema/dataset/metadata/tabular_1.0.0.yaml', - metadata: metadata, - }; - const request = { - parent, - dataset, - }; - - // Create dataset request - const [response] = await datasetServiceClient.createDataset(request); - console.log(`Long running operation : ${response.name}`); - - // Wait for operation to complete - await response.promise(); - const result = response.result; - - console.log('Create dataset tabular gcs response'); - console.log(`\tName : ${result.name}`); - console.log(`\tDisplay name : ${result.displayName}`); - console.log(`\tMetadata schema uri : ${result.metadataSchemaUri}`); - console.log(`\tMetadata : ${JSON.stringify(result.metadata)}`); - } - createDatasetTabularGcs(); - // [END aiplatform_create_dataset_tabular_gcs_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-dataset-text.js b/samples/create-dataset-text.js deleted file mode 100644 index 93b99be7..00000000 --- a/samples/create-dataset-text.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(datasetDisplayName, project, location = 'us-central1') { - // [START aiplatform_create_dataset_text_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetDisplayName = "YOUR_DATASTE_DISPLAY_NAME"; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Dataset Service Client library - const {DatasetServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const datasetServiceClient = new DatasetServiceClient(clientOptions); - - async function createDatasetText() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - // Configure the dataset resource - const dataset = { - displayName: datasetDisplayName, - metadataSchemaUri: - 'gs://google-cloud-aiplatform/schema/dataset/metadata/text_1.0.0.yaml', - }; - const request = { - parent, - dataset, - }; - - // Create Dataset Request - const [response] = await datasetServiceClient.createDataset(request); - console.log(`Long running operation: ${response.name}`); - - // Wait for operation to complete - await response.promise(); - const result = response.result; - - console.log('Create dataset text response'); - console.log(`Name : ${result.name}`); - console.log(`Display name : ${result.displayName}`); - console.log(`Metadata schema uri : ${result.metadataSchemaUri}`); - console.log(`Metadata : ${JSON.stringify(result.metadata)}`); - console.log(`Labels : ${JSON.stringify(result.labels)}`); - } - createDatasetText(); - // [END aiplatform_create_dataset_text_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-dataset-video.js b/samples/create-dataset-video.js deleted file mode 100644 index 04c6c2e7..00000000 --- a/samples/create-dataset-video.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(datasetDisplayName, project, location = 'us-central1') { - // [START aiplatform_create_dataset_video_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetDisplayName = "YOUR_DATASTE_DISPLAY_NAME"; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Dataset Service Client library - const {DatasetServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const datasetServiceClient = new DatasetServiceClient(clientOptions); - - async function createDatasetVideo() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - // Configure the dataset resource - const dataset = { - displayName: datasetDisplayName, - metadataSchemaUri: - 'gs://google-cloud-aiplatform/schema/dataset/metadata/video_1.0.0.yaml', - }; - const request = { - parent, - dataset, - }; - - // Create Dataset Request - const [response] = await datasetServiceClient.createDataset(request); - console.log(`Long running operation: ${response.name}`); - - // Wait for operation to complete - await response.promise(); - const result = response.result; - - console.log('Create dataset video response'); - console.log(`Name : ${result.name}`); - console.log(`Display name : ${result.displayName}`); - console.log(`Metadata schema uri : ${result.metadataSchemaUri}`); - console.log(`Metadata : ${JSON.stringify(result.metadata)}`); - console.log(`Labels : ${JSON.stringify(result.labels)}`); - } - createDatasetVideo(); - // [END aiplatform_create_dataset_video_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-dataset.js b/samples/create-dataset.js deleted file mode 100644 index bf87a34f..00000000 --- a/samples/create-dataset.js +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetDisplayName, - metadataSchemaUri, - project, - location = 'us-central1' -) { - // [START aiplatform_create_dataset_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetDisplayName = 'YOUR_DATASET_DISPLAY_NAME'; - // const metadataSchemaUri = 'YOUR_METADATA_SCHEMA_URI'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Dataset Service Client library - const {DatasetServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const datasetServiceClient = new DatasetServiceClient(clientOptions); - - async function createDataset() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - // Configure the dataset resource - const dataset = { - displayName: datasetDisplayName, - metadataSchemaUri: metadataSchemaUri, - }; - const request = { - parent, - dataset, - }; - - // Create Dataset Request - const [response] = await datasetServiceClient.createDataset(request); - console.log(`Long running operation : ${response.name}`); - - // Wait for operation to complete - const [createDatasetResponse] = await response.promise(); - - console.log('Create dataset response'); - console.log(`\tName : ${createDatasetResponse.name}`); - console.log(`\tDisplay name : ${createDatasetResponse.displayName}`); - console.log( - `\tMetadata schema uri : ${createDatasetResponse.metadataSchemaUri}` - ); - console.log( - `\tMetadata : ${JSON.stringify(createDatasetResponse.metadata)}` - ); - console.log(`\tCreate time : ${createDatasetResponse.createTime}`); - console.log(`\tUpdate time : ${createDatasetResponse.updateTime}`); - console.log(`\tLabels : ${JSON.stringify(createDatasetResponse.labels)}`); - } - createDataset(); - // [END aiplatform_create_dataset_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-endpoint.js b/samples/create-endpoint.js deleted file mode 100644 index 1a1abbad..00000000 --- a/samples/create-endpoint.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(endpointDisplayName, project, location = 'us-central1') { - // [START aiplatform_create_endpoint_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const endpointDisplayName = 'YOUR_ENDPOINT_DISPLAY_NAME'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Endpoint Service Client library - const {EndpointServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const endpointServiceClient = new EndpointServiceClient(clientOptions); - - async function createEndpoint() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - const endpoint = { - displayName: endpointDisplayName, - }; - const request = { - parent, - endpoint, - }; - - // Get and print out a list of all the endpoints for this resource - const [response] = await endpointServiceClient.createEndpoint(request); - console.log(`Long running operation : ${response.name}`); - - // Wait for operation to complete - await response.promise(); - const result = response.result; - - console.log('Create endpoint response'); - console.log(`\tName : ${result.name}`); - console.log(`\tDisplay name : ${result.displayName}`); - console.log(`\tDescription : ${result.description}`); - console.log(`\tLabels : ${JSON.stringify(result.labels)}`); - console.log(`\tCreate time : ${JSON.stringify(result.createTime)}`); - console.log(`\tUpdate time : ${JSON.stringify(result.updateTime)}`); - } - createEndpoint(); - // [END aiplatform_create_endpoint_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-entity-type-monitoring-sample.js b/samples/create-entity-type-monitoring-sample.js deleted file mode 100644 index d2444847..00000000 --- a/samples/create-entity-type-monitoring-sample.js +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Creates a new EntityType with monitoring configuration in a given Featurestore. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - entityTypeId, - description, - duration = 86400, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_create_entity_type_monitoring_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; - // const description = 'YOUR_ENTITY_TYPE_DESCRIPTION'; - // const duration = ; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = - require('@google-cloud/aiplatform').v1beta1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function createEntityTypeMonitoring() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}/featurestores/${featurestoreId}`; - - const entityType = { - description: description, - monitoringConfig: { - snapshotAnalysis: { - monitoringInterval: { - seconds: Number(duration), - }, - }, - }, - }; - - const request = { - parent: parent, - entityTypeId: entityTypeId, - entityType: entityType, - }; - - // Create EntityType request - const [operation] = await featurestoreServiceClient.createEntityType( - request, - {timeout: Number(timeout)} - ); - const [response] = await operation.promise(); - - console.log('Create entity type monitoring response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - createEntityTypeMonitoring(); - // [END aiplatform_create_entity_type_monitoring_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-entity-type-sample.js b/samples/create-entity-type-sample.js deleted file mode 100644 index fe867db2..00000000 --- a/samples/create-entity-type-sample.js +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Creates a new EntityType in a given Featurestore. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - entityTypeId, - description, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_create_entity_type_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; - // const description = 'YOUR_ENTITY_TYPE_DESCRIPTION'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function createEntityType() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}/featurestores/${featurestoreId}`; - - const entityType = { - description: description, - }; - - const request = { - parent: parent, - entityTypeId: entityTypeId, - entityType: entityType, - }; - - // Create EntityType request - const [operation] = await featurestoreServiceClient.createEntityType( - request, - {timeout: Number(timeout)} - ); - const [response] = await operation.promise(); - - console.log('Create entity type response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - createEntityType(); - // [END aiplatform_create_entity_type_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-feature-sample.js b/samples/create-feature-sample.js deleted file mode 100644 index e637f890..00000000 --- a/samples/create-feature-sample.js +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Creates a new Feature in a given EntityType. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - entityTypeId, - featureId, - valueType, - description, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_create_feature_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; - // const featureId = 'YOUR_FEATURE_ID'; - // const valueType = 'FEATURE_VALUE_DATA_TYPE'; - // const description = 'YOUR_ENTITY_TYPE_DESCRIPTION'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function createFeature() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId}`; - - const feature = { - valueType: valueType, - description: description, - }; - - const request = { - parent: parent, - feature: feature, - featureId: featureId, - }; - - // Create Feature request - const [operation] = await featurestoreServiceClient.createFeature(request, { - timeout: Number(timeout), - }); - const [response] = await operation.promise(); - - console.log('Create feature response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - createFeature(); - // [END aiplatform_create_feature_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-featurestore-fixed-nodes-sample.js b/samples/create-featurestore-fixed-nodes-sample.js deleted file mode 100644 index 6fcd87be..00000000 --- a/samples/create-featurestore-fixed-nodes-sample.js +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Creates a new Featurestore with fixed nodes configuration in a given project and location. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - fixedNodeCount = 1, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 900000 -) { - // [START aiplatform_create_featurestore_fixed_nodes_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const fixedNodeCount = ; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function createFeaturestoreFixedNodes() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - - const featurestore = { - onlineServingConfig: {fixedNodeCount: Number(fixedNodeCount)}, - }; - - const request = { - parent: parent, - featurestore: featurestore, - featurestoreId: featurestoreId, - }; - - // Create Featurestore request - const [operation] = await featurestoreServiceClient.createFeaturestore( - request, - {timeout: Number(timeout)} - ); - const [response] = await operation.promise(); - - console.log('Create featurestore fixed nodes response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - createFeaturestoreFixedNodes(); - // [END aiplatform_create_featurestore_fixed_nodes_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-featurestore-sample.js b/samples/create-featurestore-sample.js deleted file mode 100644 index a4933a54..00000000 --- a/samples/create-featurestore-sample.js +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Creates a new Featurestore in a given project and location. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - minNodeCount = 1, - maxNodeCount = 5, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 900000 -) { - // [START aiplatform_create_featurestore_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const minNodeCount = ; - // const maxNodeCount = ; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = - require('@google-cloud/aiplatform').v1beta1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function createFeaturestore() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - - const featurestore = { - onlineServingConfig: { - scaling: { - minNodeCount: minNodeCount, - maxNodeCount: maxNodeCount, - }, - }, - }; - - const request = { - parent: parent, - featurestore: featurestore, - featurestoreId: featurestoreId, - }; - - // Create Featurestore request - const [operation] = await featurestoreServiceClient.createFeaturestore( - request, - {timeout: Number(timeout)} - ); - const [response] = await operation.promise(); - - console.log('Create featurestore response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - createFeaturestore(); - // [END aiplatform_create_featurestore_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-hyperparameter-tuning-job.js b/samples/create-hyperparameter-tuning-job.js deleted file mode 100644 index d6803a57..00000000 --- a/samples/create-hyperparameter-tuning-job.js +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright 2021 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -function main( - displayName, - containerImageUri, - project, - location = 'us-central1' -) { - // [START aiplatform_create_hyperparameter_tuning_job_sample] - /** - * TODO(developer): Uncomment these variables before running the sample. - * (Not necessary if passing values as arguments) - */ - /* - const displayName = 'YOUR HYPERPARAMETER TUNING JOB; - const containerImageUri = 'TUNING JOB CONTAINER URI; - const project = 'YOUR PROJECT ID'; - const location = 'us-central1'; - */ - // Imports the Google Cloud Pipeline Service Client library - const {JobServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const jobServiceClient = new JobServiceClient(clientOptions); - - async function createHyperParameterTuningJob() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - - // Create the hyperparameter tuning job configuration - const hyperparameterTuningJob = { - displayName, - maxTrialCount: 2, - parallelTrialCount: 1, - maxFailedTrialCount: 1, - studySpec: { - metrics: [ - { - metricId: 'accuracy', - goal: 'MAXIMIZE', - }, - ], - parameters: [ - { - parameterId: 'lr', - doubleValueSpec: { - minValue: 0.001, - maxValue: 0.1, - }, - }, - ], - }, - trialJobSpec: { - workerPoolSpecs: [ - { - machineSpec: { - machineType: 'n1-standard-4', - acceleratorType: 'NVIDIA_TESLA_K80', - acceleratorCount: 1, - }, - replicaCount: 1, - containerSpec: { - imageUri: containerImageUri, - command: [], - args: [], - }, - }, - ], - }, - }; - - const [response] = await jobServiceClient.createHyperparameterTuningJob({ - parent, - hyperparameterTuningJob, - }); - - console.log('Create hyperparameter tuning job response:'); - console.log(`\tDisplay name: ${response.displayName}`); - console.log(`\tTuning job resource name: ${response.name}`); - console.log(`\tJob status: ${response.state}`); - } - - createHyperParameterTuningJob(); - // [END aiplatform_create_hyperparameter_tuning_job_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-training-pipeline-image-classification.js b/samples/create-training-pipeline-image-classification.js deleted file mode 100644 index bca7efde..00000000 --- a/samples/create-training-pipeline-image-classification.js +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -function main( - datasetId, - modelDisplayName, - trainingPipelineDisplayName, - project, - location = 'us-central1' -) { - // [START aiplatform_create_training_pipeline_image_classification_sample] - /** - * TODO(developer): Uncomment these variables before running the sample. - * (Not necessary if passing values as arguments) - */ - /* - const datasetId = 'YOUR DATASET'; - const modelDisplayName = 'NEW MODEL NAME; - const trainingPipelineDisplayName = 'NAME FOR TRAINING PIPELINE'; - const project = 'YOUR PROJECT ID'; - const location = 'us-central1'; - */ - // Imports the Google Cloud Pipeline Service Client library - const aiplatform = require('@google-cloud/aiplatform'); - - const {definition} = - aiplatform.protos.google.cloud.aiplatform.v1.schema.trainingjob; - const ModelType = definition.AutoMlImageClassificationInputs.ModelType; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const {PipelineServiceClient} = aiplatform.v1; - const pipelineServiceClient = new PipelineServiceClient(clientOptions); - - async function createTrainingPipelineImageClassification() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - - // Values should match the input expected by your model. - const trainingTaskInputsMessage = - new definition.AutoMlImageClassificationInputs({ - multiLabel: true, - modelType: ModelType.CLOUD, - budgetMilliNodeHours: 8000, - disableEarlyStopping: false, - }); - - const trainingTaskInputs = trainingTaskInputsMessage.toValue(); - - const trainingTaskDefinition = - 'gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_image_classification_1.0.0.yaml'; - - const modelToUpload = {displayName: modelDisplayName}; - const inputDataConfig = {datasetId}; - const trainingPipeline = { - displayName: trainingPipelineDisplayName, - trainingTaskDefinition, - trainingTaskInputs, - inputDataConfig, - modelToUpload, - }; - const request = {parent, trainingPipeline}; - - // Create training pipeline request - const [response] = await pipelineServiceClient.createTrainingPipeline( - request - ); - - console.log('Create training pipeline image classification response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - - createTrainingPipelineImageClassification(); - // [END aiplatform_create_training_pipeline_image_classification_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-training-pipeline-image-object-detection.js b/samples/create-training-pipeline-image-object-detection.js deleted file mode 100644 index 207fa719..00000000 --- a/samples/create-training-pipeline-image-object-detection.js +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetId, - modelDisplayName, - trainingPipelineDisplayName, - project, - location = 'us-central1' -) { - // [START aiplatform_create_training_pipeline_image_object_detection_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetId = 'YOUR_DATASET_ID'; - // const modelDisplayName = 'YOUR_MODEL_DISPLAY_NAME'; - // const trainingPipelineDisplayName = 'YOUR_TRAINING_PIPELINE_DISPLAY_NAME'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - const aiplatform = require('@google-cloud/aiplatform'); - const {definition} = - aiplatform.protos.google.cloud.aiplatform.v1.schema.trainingjob; - const ModelType = definition.AutoMlImageObjectDetectionInputs.ModelType; - - // Imports the Google Cloud Pipeline Service Client library - const {PipelineServiceClient} = aiplatform.v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const pipelineServiceClient = new PipelineServiceClient(clientOptions); - - async function createTrainingPipelineImageObjectDetection() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - - const trainingTaskInputsObj = - new definition.AutoMlImageObjectDetectionInputs({ - disableEarlyStopping: false, - modelType: ModelType.CLOUD_HIGH_ACCURACY_1, - budgetMilliNodeHours: 20000, - }); - - const trainingTaskInputs = trainingTaskInputsObj.toValue(); - const modelToUpload = {displayName: modelDisplayName}; - const inputDataConfig = {datasetId: datasetId}; - const trainingPipeline = { - displayName: trainingPipelineDisplayName, - trainingTaskDefinition: - 'gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_image_object_detection_1.0.0.yaml', - trainingTaskInputs, - inputDataConfig, - modelToUpload, - }; - const request = { - parent, - trainingPipeline, - }; - - // Create training pipeline request - const [response] = await pipelineServiceClient.createTrainingPipeline( - request - ); - - console.log('Create training pipeline image object detection response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - createTrainingPipelineImageObjectDetection(); - // [END aiplatform_create_training_pipeline_image_object_detection_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-training-pipeline-tabular-classification.js b/samples/create-training-pipeline-tabular-classification.js deleted file mode 100644 index 16500b61..00000000 --- a/samples/create-training-pipeline-tabular-classification.js +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetId, - modelDisplayName, - trainingPipelineDisplayName, - targetColumn, - project, - location = 'us-central1' -) { - // [START aiplatform_create_training_pipeline_tabular_classification_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetId = 'YOUR_DATASET_ID'; - // const modelDisplayName = 'YOUR_MODEL_DISPLAY_NAME'; - // const trainingPipelineDisplayName = 'YOUR_TRAINING_PIPELINE_DISPLAY_NAME'; - // const targetColumn = 'YOUR_TARGET_COLUMN'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - const aiplatform = require('@google-cloud/aiplatform'); - const {definition} = - aiplatform.protos.google.cloud.aiplatform.v1.schema.trainingjob; - - // Imports the Google Cloud Pipeline Service Client library - const {PipelineServiceClient} = aiplatform.v1; - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const pipelineServiceClient = new PipelineServiceClient(clientOptions); - - async function createTrainingPipelineTablesClassification() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - - const transformations = [ - {auto: {column_name: 'sepal_width'}}, - {auto: {column_name: 'sepal_length'}}, - {auto: {column_name: 'petal_length'}}, - {auto: {column_name: 'petal_width'}}, - ]; - const trainingTaskInputsObj = new definition.AutoMlTablesInputs({ - targetColumn: targetColumn, - predictionType: 'classification', - transformations: transformations, - trainBudgetMilliNodeHours: 8000, - disableEarlyStopping: false, - optimizationObjective: 'minimize-log-loss', - }); - const trainingTaskInputs = trainingTaskInputsObj.toValue(); - - const modelToUpload = {displayName: modelDisplayName}; - const inputDataConfig = { - datasetId: datasetId, - fractionSplit: { - trainingFraction: 0.8, - validationFraction: 0.1, - testFraction: 0.1, - }, - }; - const trainingPipeline = { - displayName: trainingPipelineDisplayName, - trainingTaskDefinition: - 'gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tables_1.0.0.yaml', - trainingTaskInputs, - inputDataConfig, - modelToUpload, - }; - const request = { - parent, - trainingPipeline, - }; - - // Create training pipeline request - const [response] = await pipelineServiceClient.createTrainingPipeline( - request - ); - - console.log('Create training pipeline tabular classification response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - createTrainingPipelineTablesClassification(); - // [END aiplatform_create_training_pipeline_tabular_classification_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-training-pipeline-tabular-regression.js b/samples/create-training-pipeline-tabular-regression.js deleted file mode 100644 index 368cc717..00000000 --- a/samples/create-training-pipeline-tabular-regression.js +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetId, - modelDisplayName, - trainingPipelineDisplayName, - targetColumn, - project, - location = 'us-central1' -) { - // [START aiplatform_create_training_pipeline_tabular_regression_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetId = 'YOUR_DATASET_ID'; - // const modelDisplayName = 'YOUR_MODEL_DISPLAY_NAME'; - // const trainingPipelineDisplayName = 'YOUR_TRAINING_PIPELINE_DISPLAY_NAME'; - // const targetColumn = 'YOUR_TARGET_COLUMN'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - const aiplatform = require('@google-cloud/aiplatform'); - const {definition} = - aiplatform.protos.google.cloud.aiplatform.v1.schema.trainingjob; - - // Imports the Google Cloud Pipeline Service Client library - const {PipelineServiceClient} = aiplatform.v1; - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const pipelineServiceClient = new PipelineServiceClient(clientOptions); - - async function createTrainingPipelineTablesRegression() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - - const transformations = [ - {auto: {column_name: 'STRING_5000unique_NULLABLE'}}, - {auto: {column_name: 'INTEGER_5000unique_NULLABLE'}}, - {auto: {column_name: 'FLOAT_5000unique_NULLABLE'}}, - {auto: {column_name: 'FLOAT_5000unique_REPEATED'}}, - {auto: {column_name: 'NUMERIC_5000unique_NULLABLE'}}, - {auto: {column_name: 'BOOLEAN_2unique_NULLABLE'}}, - { - timestamp: { - column_name: 'TIMESTAMP_1unique_NULLABLE', - invalid_values_allowed: true, - }, - }, - {auto: {column_name: 'DATE_1unique_NULLABLE'}}, - {auto: {column_name: 'TIME_1unique_NULLABLE'}}, - { - timestamp: { - column_name: 'DATETIME_1unique_NULLABLE', - invalid_values_allowed: true, - }, - }, - {auto: {column_name: 'STRUCT_NULLABLE.STRING_5000unique_NULLABLE'}}, - {auto: {column_name: 'STRUCT_NULLABLE.INTEGER_5000unique_NULLABLE'}}, - {auto: {column_name: 'STRUCT_NULLABLE.FLOAT_5000unique_NULLABLE'}}, - {auto: {column_name: 'STRUCT_NULLABLE.FLOAT_5000unique_REQUIRED'}}, - {auto: {column_name: 'STRUCT_NULLABLE.FLOAT_5000unique_REPEATED'}}, - {auto: {column_name: 'STRUCT_NULLABLE.NUMERIC_5000unique_NULLABLE'}}, - {auto: {column_name: 'STRUCT_NULLABLE.BOOLEAN_2unique_NULLABLE'}}, - {auto: {column_name: 'STRUCT_NULLABLE.TIMESTAMP_1unique_NULLABLE'}}, - ]; - - const trainingTaskInputsObj = new definition.AutoMlTablesInputs({ - transformations, - targetColumn, - predictionType: 'regression', - trainBudgetMilliNodeHours: 8000, - disableEarlyStopping: false, - optimizationObjective: 'minimize-rmse', - }); - const trainingTaskInputs = trainingTaskInputsObj.toValue(); - - const modelToUpload = {displayName: modelDisplayName}; - const inputDataConfig = { - datasetId: datasetId, - fractionSplit: { - trainingFraction: 0.8, - validationFraction: 0.1, - testFraction: 0.1, - }, - }; - const trainingPipeline = { - displayName: trainingPipelineDisplayName, - trainingTaskDefinition: - 'gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tables_1.0.0.yaml', - trainingTaskInputs, - inputDataConfig, - modelToUpload, - }; - const request = { - parent, - trainingPipeline, - }; - - // Create training pipeline request - const [response] = await pipelineServiceClient.createTrainingPipeline( - request - ); - - console.log('Create training pipeline tabular regression response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - createTrainingPipelineTablesRegression(); - // [END aiplatform_create_training_pipeline_tabular_regression_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-training-pipeline-text-classification.js b/samples/create-training-pipeline-text-classification.js deleted file mode 100644 index b453091f..00000000 --- a/samples/create-training-pipeline-text-classification.js +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetId, - modelDisplayName, - trainingPipelineDisplayName, - project, - location = 'us-central1' -) { - // [START aiplatform_create_training_pipeline_text_classification_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetId = 'YOUR_DATASET_ID'; - // const modelDisplayName = 'YOUR_MODEL_DISPLAY_NAME'; - // const trainingPipelineDisplayName = 'YOUR_TRAINING_PIPELINE_DISPLAY_NAME'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - const aiplatform = require('@google-cloud/aiplatform'); - const {definition} = - aiplatform.protos.google.cloud.aiplatform.v1.schema.trainingjob; - - // Imports the Google Cloud Pipeline Service Client library - const {PipelineServiceClient} = aiplatform.v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const pipelineServiceClient = new PipelineServiceClient(clientOptions); - - async function createTrainingPipelineTextClassification() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - - const trainingTaskInputObj = new definition.AutoMlTextClassificationInputs({ - multiLabel: false, - }); - const trainingTaskInputs = trainingTaskInputObj.toValue(); - - const modelToUpload = {displayName: modelDisplayName}; - const inputDataConfig = {datasetId: datasetId}; - const trainingPipeline = { - displayName: trainingPipelineDisplayName, - trainingTaskDefinition: - 'gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_text_classification_1.0.0.yaml', - trainingTaskInputs, - inputDataConfig, - modelToUpload, - }; - const request = { - parent, - trainingPipeline, - }; - - // Create training pipeline request - const [response] = await pipelineServiceClient.createTrainingPipeline( - request - ); - - console.log('Create training pipeline text classification response :'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - createTrainingPipelineTextClassification(); - // [END aiplatform_create_training_pipeline_text_classification_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-training-pipeline-text-entity-extraction.js b/samples/create-training-pipeline-text-entity-extraction.js deleted file mode 100644 index 5c84e6cc..00000000 --- a/samples/create-training-pipeline-text-entity-extraction.js +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetId, - modelDisplayName, - trainingPipelineDisplayName, - project, - location = 'us-central1' -) { - // [START aiplatform_create_training_pipeline_text_entity_extraction_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetId = 'YOUR_DATASET_ID'; - // const modelDisplayName = 'YOUR_MODEL_DISPLAY_NAME'; - // const trainingPipelineDisplayName = 'YOUR_TRAINING_PIPELINE_DISPLAY_NAME'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - const aiplatform = require('@google-cloud/aiplatform'); - const {definition} = - aiplatform.protos.google.cloud.aiplatform.v1.schema.trainingjob; - - // Imports the Google Cloud Pipeline Service Client library - const {PipelineServiceClient} = aiplatform.v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const pipelineServiceClient = new PipelineServiceClient(clientOptions); - - async function createTrainingPipelineTextEntityExtraction() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - - const trainingTaskInputObj = new definition.AutoMlTextExtractionInputs({}); - const trainingTaskInputs = trainingTaskInputObj.toValue(); - - const modelToUpload = {displayName: modelDisplayName}; - const inputDataConfig = {datasetId: datasetId}; - const trainingPipeline = { - displayName: trainingPipelineDisplayName, - trainingTaskDefinition: - 'gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_text_extraction_1.0.0.yaml', - trainingTaskInputs, - inputDataConfig, - modelToUpload, - }; - const request = { - parent, - trainingPipeline, - }; - - // Create training pipeline request - const [response] = await pipelineServiceClient.createTrainingPipeline( - request - ); - - console.log('Create training pipeline text entity extraction response :'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - createTrainingPipelineTextEntityExtraction(); - // [END aiplatform_create_training_pipeline_text_entity_extraction_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-training-pipeline-text-sentiment-analysis.js b/samples/create-training-pipeline-text-sentiment-analysis.js deleted file mode 100644 index a2f6ac54..00000000 --- a/samples/create-training-pipeline-text-sentiment-analysis.js +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetId, - modelDisplayName, - trainingPipelineDisplayName, - project, - location = 'us-central1' -) { - // [START aiplatform_create_training_pipeline_text_sentiment_analysis_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetId = 'YOUR_DATASET_ID'; - // const modelDisplayName = 'YOUR_MODEL_DISPLAY_NAME'; - // const trainingPipelineDisplayName = 'YOUR_TRAINING_PIPELINE_DISPLAY_NAME'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - const aiplatform = require('@google-cloud/aiplatform'); - const {definition} = - aiplatform.protos.google.cloud.aiplatform.v1.schema.trainingjob; - - // Imports the Google Cloud Pipeline Service Client library - const {PipelineServiceClient} = aiplatform.v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const pipelineServiceClient = new PipelineServiceClient(clientOptions); - - async function createTrainingPipelineTextSentimentAnalysis() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - - const trainingTaskInputObj = new definition.AutoMlTextSentimentInputs({ - sentimentMax: 4, - }); - const trainingTaskInputs = trainingTaskInputObj.toValue(); - - const modelToUpload = {displayName: modelDisplayName}; - const inputDataConfig = {datasetId: datasetId}; - const trainingPipeline = { - displayName: trainingPipelineDisplayName, - trainingTaskDefinition: - 'gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_text_sentiment_1.0.0.yaml', - trainingTaskInputs, - inputDataConfig, - modelToUpload, - }; - const request = { - parent, - trainingPipeline, - }; - - // Create training pipeline request - const [response] = await pipelineServiceClient.createTrainingPipeline( - request - ); - - console.log('Create training pipeline text sentiment analysis response :'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - createTrainingPipelineTextSentimentAnalysis(); - // [END aiplatform_create_training_pipeline_text_sentiment_analysis_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-training-pipeline-video-action-recognition.js b/samples/create-training-pipeline-video-action-recognition.js deleted file mode 100644 index d53f4aa1..00000000 --- a/samples/create-training-pipeline-video-action-recognition.js +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetId, - modelDisplayName, - trainingPipelineDisplayName, - project, - location = 'us-central1' -) { - // [START aiplatform_create_training_pipeline_video_action_recognition_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetId = 'YOUR_DATASET_ID'; - // const modelDisplayName = 'YOUR_MODEL_DISPLAY_NAME'; - // const trainingPipelineDisplayName = 'YOUR_TRAINING_PIPELINE_DISPLAY_NAME'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - const aiplatform = require('@google-cloud/aiplatform'); - const {definition} = - aiplatform.protos.google.cloud.aiplatform.v1.schema.trainingjob; - - // Imports the Google Cloud Pipeline Service Client library - const {PipelineServiceClient} = aiplatform.v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const pipelineServiceClient = new PipelineServiceClient(clientOptions); - - async function createTrainingPipelineVideoActionRecognition() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - // Values should match the input expected by your model. - const trainingTaskInputObj = - new definition.AutoMlVideoActionRecognitionInputs({ - // modelType can be either 'CLOUD' or 'MOBILE_VERSATILE_1' - modelType: 'CLOUD', - }); - const trainingTaskInputs = trainingTaskInputObj.toValue(); - - const modelToUpload = {displayName: modelDisplayName}; - const inputDataConfig = {datasetId: datasetId}; - const trainingPipeline = { - displayName: trainingPipelineDisplayName, - trainingTaskDefinition: - 'gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_video_action_recognition_1.0.0.yaml', - trainingTaskInputs, - inputDataConfig, - modelToUpload, - }; - const request = { - parent, - trainingPipeline, - }; - - // Create training pipeline request - const [response] = await pipelineServiceClient.createTrainingPipeline( - request - ); - - console.log('Create training pipeline video action recognition response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - createTrainingPipelineVideoActionRecognition(); - // [END aiplatform_create_training_pipeline_video_action_recognition_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-training-pipeline-video-classification.js b/samples/create-training-pipeline-video-classification.js deleted file mode 100644 index 8c3bf977..00000000 --- a/samples/create-training-pipeline-video-classification.js +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetId, - modelDisplayName, - trainingPipelineDisplayName, - project, - location = 'us-central1' -) { - // [START aiplatform_create_training_pipeline_video_classification_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetId = 'YOUR_DATASET_ID'; - // const modelDisplayName = 'YOUR_MODEL_DISPLAY_NAME'; - // const trainingPipelineDisplayName = 'YOUR_TRAINING_PIPELINE_DISPLAY_NAME'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - const aiplatform = require('@google-cloud/aiplatform'); - const {definition} = - aiplatform.protos.google.cloud.aiplatform.v1.schema.trainingjob; - - // Imports the Google Cloud Pipeline Service Client library - const {PipelineServiceClient} = aiplatform.v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const pipelineServiceClient = new PipelineServiceClient(clientOptions); - - async function createTrainingPipelineVideoClassification() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - // Values should match the input expected by your model. - const trainingTaskInputObj = new definition.AutoMlVideoClassificationInputs( - {} - ); - const trainingTaskInputs = trainingTaskInputObj.toValue(); - - const modelToUpload = {displayName: modelDisplayName}; - const inputDataConfig = {datasetId: datasetId}; - const trainingPipeline = { - displayName: trainingPipelineDisplayName, - trainingTaskDefinition: - 'gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_video_classification_1.0.0.yaml', - trainingTaskInputs, - inputDataConfig, - modelToUpload, - }; - const request = { - parent, - trainingPipeline, - }; - - // Create training pipeline request - const [response] = await pipelineServiceClient.createTrainingPipeline( - request - ); - - console.log('Create training pipeline video classification response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - createTrainingPipelineVideoClassification(); - // [END aiplatform_create_training_pipeline_video_classification_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/create-training-pipeline-video-object-tracking.js b/samples/create-training-pipeline-video-object-tracking.js deleted file mode 100644 index 5a8cef88..00000000 --- a/samples/create-training-pipeline-video-object-tracking.js +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetId, - modelDisplayName, - trainingPipelineDisplayName, - project, - location = 'us-central1' -) { - // [START aiplatform_create_training_pipeline_video_object_tracking_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetId = 'YOUR_DATASET_ID'; - // const modelDisplayName = 'YOUR_MODEL_DISPLAY_NAME'; - // const trainingPipelineDisplayName = 'YOUR_TRAINING_PIPELINE_DISPLAY_NAME'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - const aiplatform = require('@google-cloud/aiplatform'); - const {definition} = - aiplatform.protos.google.cloud.aiplatform.v1.schema.trainingjob; - const ModelType = definition.AutoMlVideoObjectTrackingInputs.ModelType; - - // Imports the Google Cloud Pipeline Service Client library - const {PipelineServiceClient} = aiplatform.v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const pipelineServiceClient = new PipelineServiceClient(clientOptions); - - async function createTrainingPipelineVideoObjectTracking() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - - const trainingTaskInputsObj = - new definition.AutoMlVideoObjectTrackingInputs({ - modelType: ModelType.CLOUD, - }); - const trainingTaskInputs = trainingTaskInputsObj.toValue(); - - const modelToUpload = {displayName: modelDisplayName}; - const inputDataConfig = {datasetId: datasetId}; - const trainingPipeline = { - displayName: trainingPipelineDisplayName, - trainingTaskDefinition: - 'gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_video_object_tracking_1.0.0.yaml', - trainingTaskInputs, - inputDataConfig, - modelToUpload, - }; - const request = { - parent, - trainingPipeline, - }; - - // Create training pipeline request - const [response] = await pipelineServiceClient.createTrainingPipeline( - request - ); - - console.log('Create training pipeline video object tracking response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - createTrainingPipelineVideoObjectTracking(); - // [END aiplatform_create_training_pipeline_video_object_tracking_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/delete-batch-prediction-job.js b/samples/delete-batch-prediction-job.js deleted file mode 100644 index 1616485c..00000000 --- a/samples/delete-batch-prediction-job.js +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(batchPredictionJobId, project, location = 'us-central1') { - // [START aiplatform_delete_batch_prediction_job_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const batchPredictionJobId = 'YOUR_BATCH_PREDICTION_JOB_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Job Service Client library - const {JobServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const jobServiceClient = new JobServiceClient(clientOptions); - - async function deleteBatchPredictionJob() { - // Configure the parent resource - const name = `projects/${project}/locations/${location}/batchPredictionJobs/${batchPredictionJobId}`; - const request = { - name, - }; - - // Get and print out a list of all the endpoints for this resource - await jobServiceClient.deleteBatchPredictionJob(request); - - console.log('Delete batch prediction job response :'); - } - deleteBatchPredictionJob(); - // [END aiplatform_delete_batch_prediction_job_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/delete-custom-job.js b/samples/delete-custom-job.js deleted file mode 100644 index c3a0cf6e..00000000 --- a/samples/delete-custom-job.js +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(customJobId, project, location = 'us-central1') { - // [START aiplatform_delete_custom_job_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const customJobId = 'YOUR_CUSTOM_JOB_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Job Service Client library - const {JobServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const jobServiceClient = new JobServiceClient(clientOptions); - - async function deleteCustomJob() { - // Configure the name resource - const name = jobServiceClient.customJobPath(project, location, customJobId); - const request = { - name, - }; - - // Delete custom job request - const [response] = await jobServiceClient.deleteCustomJob(request); - - console.log('Delete custom job response:\n', response); - } - setTimeout(deleteCustomJob, 60000); - // [END aiplatform_delete_custom_job_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/delete-dataset.js b/samples/delete-dataset.js deleted file mode 100644 index 6b6da42e..00000000 --- a/samples/delete-dataset.js +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(datasetId, project, location = 'us-central1') { - // [START aiplatform_delete_dataset_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetId = 'YOUR_DATASET_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Dataset Service Client library - const {DatasetServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const datasetServiceClient = new DatasetServiceClient(clientOptions); - - async function deleteDataset() { - // Configure the resource - const name = datasetServiceClient.datasetPath(project, location, datasetId); - const request = {name}; - - // Delete Dataset Request - const [response] = await datasetServiceClient.deleteDataset(request); - console.log(`Long running operation: ${response.name}`); - - // Wait for operation to complete - await response.promise(); - const result = response.result; - - console.log('Delete dataset response:\n', result); - } - deleteDataset(); - // [END aiplatform_delete_dataset_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/delete-endpoint.js b/samples/delete-endpoint.js deleted file mode 100644 index db5d531b..00000000 --- a/samples/delete-endpoint.js +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(endpointId, project, location = 'us-central1') { - // [START aiplatform_delete_endpoint_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const endpointId = 'YOUR_ENDPOINT_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Endpoint Service Client library - const {EndpointServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const endpointServiceClient = new EndpointServiceClient(clientOptions); - - async function deleteEndpoint() { - // Configure the parent resource - const endpoint = { - name: `projects/${project}/locations/${location}/endpoints/${endpointId}`, - }; - - // Delete endpoint request - const [response] = await endpointServiceClient.deleteEndpoint(endpoint); - console.log(`Long running operation : ${response.name}`); - - // Wait for operation to complete - await response.promise(); - const result = response.result; - - console.log('Delete endpoint response:\n', result); - } - deleteEndpoint(); - // [END aiplatform_delete_endpoint_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/delete-entity-type-sample.js b/samples/delete-entity-type-sample.js deleted file mode 100644 index 84f490a0..00000000 --- a/samples/delete-entity-type-sample.js +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Deletes a single EntityType. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - entityTypeId, - force, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_delete_entity_type_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; - // const force = ; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function deleteEntityType() { - // Configure the name resource - const name = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId}`; - - const request = { - name: name, - force: Boolean(force), - }; - - // Delete EntityType request - const [operation] = await featurestoreServiceClient.deleteEntityType( - request, - {timeout: Number(timeout)} - ); - const [response] = await operation.promise(); - - console.log('Delete entity type response'); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - deleteEntityType(); - // [END aiplatform_delete_entity_type_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/delete-export-model.js b/samples/delete-export-model.js deleted file mode 100644 index 8ecb80fd..00000000 --- a/samples/delete-export-model.js +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(bucketName, uriPrefix) { - // [START aiplatform_delete_export_model_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const bucketName = 'YOUR_BUCKET_NAME'; - // const uriPrefix = 'YOUR_GCS_URI_PREFIX' - - // Imports the Google Cloud Storage Client library - const {Storage} = require('@google-cloud/storage'); - - // Instantiates a client - const storageClient = new Storage(); - - async function deleteExportModel() { - const options = { - prefix: uriPrefix, - }; - const [files] = await storageClient - .bucket(`gs://${bucketName}`) - .getFiles(options); - for (const file of files) { - await storageClient.bucket(`gs://${bucketName}`).file(file.name).delete(); - } - console.log('Export model deleted'); - } - deleteExportModel(); - // [END aiplatform_delete_export_model_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/delete-feature-sample.js b/samples/delete-feature-sample.js deleted file mode 100644 index c509de97..00000000 --- a/samples/delete-feature-sample.js +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Deletes a single Feature. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - entityTypeId, - featureId, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_delete_feature_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; - // const featureId = 'YOUR_FEATURE_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function deleteFeature() { - // Configure the name resource - const name = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId}/features/${featureId}`; - - const request = { - name: name, - }; - - // Delete Feature request - const [operation] = await featurestoreServiceClient.deleteFeature(request, { - timeout: Number(timeout), - }); - const [response] = await operation.promise(); - - console.log('Delete feature response'); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - deleteFeature(); - // [END aiplatform_delete_feature_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/delete-featurestore-sample.js b/samples/delete-featurestore-sample.js deleted file mode 100644 index e7220eba..00000000 --- a/samples/delete-featurestore-sample.js +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Deletes a single Featurestore. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - force = false, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 60000 -) { - // [START aiplatform_delete_featurestore_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const force = ; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function deleteFeaturestore() { - // Configure the name resource - const name = `projects/${project}/locations/${location}/featurestores/${featurestoreId}`; - - const request = { - name: name, - force: Boolean(force), - }; - - // Delete Featurestore request - const [operation] = await featurestoreServiceClient.deleteFeaturestore( - request, - {timeout: Number(timeout)} - ); - const [response] = await operation.promise(); - - console.log('Delete featurestore response'); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - deleteFeaturestore(); - // [END aiplatform_delete_featurestore_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/delete-model.js b/samples/delete-model.js deleted file mode 100644 index a00b2b77..00000000 --- a/samples/delete-model.js +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(modelId, project, location = 'us-central1') { - // [START aiplatform_delete_model_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - */ - - // const modelId = 'YOUR_MODEL_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Model Service Client library - const {ModelServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const modelServiceClient = new ModelServiceClient(clientOptions); - - async function deleteModel() { - // Configure the resource - const name = modelServiceClient.modelPath(project, location, modelId); - const request = {name}; - - // Delete Model Request - const [response] = await modelServiceClient.deleteModel(request); - console.log(`Long running operation: ${response.name}`); - - // Wait for operation to complete - await response.promise(); - const result = response.result; - - console.log('Delete model response:\n', result); - } - deleteModel(); - // [END aiplatform_delete_model_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/deploy-model-custom-trained-model.js b/samples/deploy-model-custom-trained-model.js deleted file mode 100644 index 40956cf4..00000000 --- a/samples/deploy-model-custom-trained-model.js +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright 2021 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -function main( - modelId, - deployedModelDisplayName, - endpointId, - project, - location = 'us-central1' -) { - // [START aiplatform_deploy_model_custom_trained_model_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const modelId = "YOUR_MODEL_ID"; - // const endpointId = 'YOUR_ENDPOINT_ID'; - // const deployedModelDisplayName = 'YOUR_DEPLOYED_MODEL_DISPLAY_NAME'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - const modelName = `projects/${project}/locations/${location}/models/${modelId}`; - const endpoint = `projects/${project}/locations/${location}/endpoints/${endpointId}`; - // Imports the Google Cloud Endpoint Service Client library - const {EndpointServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint: - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const endpointServiceClient = new EndpointServiceClient(clientOptions); - - async function deployModelCustomTrainedModel() { - // Configure the parent resource - // key '0' assigns traffic for the newly deployed model - // Traffic percentage values must add up to 100 - // Leave dictionary empty if endpoint should not accept any traffic - const trafficSplit = {0: 100}; - const deployedModel = { - // format: 'projects/{project}/locations/{location}/models/{model}' - model: modelName, - displayName: deployedModelDisplayName, - // `dedicatedResources` must be used for non-AutoML models - dedicatedResources: { - minReplicaCount: 1, - machineSpec: { - machineType: 'n1-standard-2', - // Accelerators can be used only if the model specifies a GPU image. - // acceleratorType: 'NVIDIA_TESLA_K80', - // acceleratorCount: 1, - }, - }, - }; - const request = { - endpoint, - deployedModel, - trafficSplit, - }; - - // Get and print out a list of all the endpoints for this resource - const [response] = await endpointServiceClient.deployModel(request); - console.log(`Long running operation : ${response.name}`); - - // Wait for operation to complete - await response.promise(); - const result = response.result; - - console.log('Deploy model response'); - const modelDeployed = result.deployedModel; - console.log(`\t\tId : ${modelDeployed.id}`); - console.log(modelDeployed); - } - deployModelCustomTrainedModel(); - // [END aiplatform_deploy_model_custom_trained_model_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/deploy-model.js b/samples/deploy-model.js deleted file mode 100644 index aa0c2d66..00000000 --- a/samples/deploy-model.js +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - modelId, - deployedModelDisplayName, - endpointId, - project, - location = 'us-central1' -) { - // [START aiplatform_deploy_model_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const modelId = "YOUR_MODEL_ID"; - // const endpointId = 'YOUR_ENDPOINT_ID'; - // const deployedModelDisplayName = 'YOUR_DEPLOYED_MODEL_DISPLAY_NAME'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - const modelName = `projects/${project}/locations/${location}/models/${modelId}`; - const endpoint = `projects/${project}/locations/${location}/endpoints/${endpointId}`; - // Imports the Google Cloud Endpoint Service Client library - const {EndpointServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint: - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const endpointServiceClient = new EndpointServiceClient(clientOptions); - - async function deployModel() { - // Configure the parent resource - // key '0' assigns traffic for the newly deployed model - // Traffic percentage values must add up to 100 - // Leave dictionary empty if endpoint should not accept any traffic - const trafficSplit = {0: 100}; - const deployedModel = { - // format: 'projects/{project}/locations/{location}/models/{model}' - model: modelName, - displayName: deployedModelDisplayName, - // AutoML Vision models require `automatic_resources` field - // Other model types may require `dedicated_resources` field instead - automaticResources: {minReplicaCount: 1, maxReplicaCount: 1}, - }; - const request = { - endpoint, - deployedModel, - trafficSplit, - }; - - // Get and print out a list of all the endpoints for this resource - const [response] = await endpointServiceClient.deployModel(request); - console.log(`Long running operation : ${response.name}`); - - // Wait for operation to complete - await response.promise(); - const result = response.result; - - console.log('Deploy model response'); - const modelDeployed = result.deployedModel; - console.log('\tDeployed model'); - if (!modelDeployed) { - console.log('\t\tId : {}'); - console.log('\t\tModel : {}'); - console.log('\t\tDisplay name : {}'); - console.log('\t\tCreate time : {}'); - - console.log('\t\tDedicated resources'); - console.log('\t\t\tMin replica count : {}'); - console.log('\t\t\tMachine spec {}'); - console.log('\t\t\t\tMachine type : {}'); - console.log('\t\t\t\tAccelerator type : {}'); - console.log('\t\t\t\tAccelerator count : {}'); - - console.log('\t\tAutomatic resources'); - console.log('\t\t\tMin replica count : {}'); - console.log('\t\t\tMax replica count : {}'); - } else { - console.log(`\t\tId : ${modelDeployed.id}`); - console.log(`\t\tModel : ${modelDeployed.model}`); - console.log(`\t\tDisplay name : ${modelDeployed.displayName}`); - console.log(`\t\tCreate time : ${modelDeployed.createTime}`); - - const dedicatedResources = modelDeployed.dedicatedResources; - console.log('\t\tDedicated resources'); - if (!dedicatedResources) { - console.log('\t\t\tMin replica count : {}'); - console.log('\t\t\tMachine spec {}'); - console.log('\t\t\t\tMachine type : {}'); - console.log('\t\t\t\tAccelerator type : {}'); - console.log('\t\t\t\tAccelerator count : {}'); - } else { - console.log( - `\t\t\tMin replica count : \ - ${dedicatedResources.minReplicaCount}` - ); - const machineSpec = dedicatedResources.machineSpec; - console.log('\t\t\tMachine spec'); - console.log(`\t\t\t\tMachine type : ${machineSpec.machineType}`); - console.log( - `\t\t\t\tAccelerator type : ${machineSpec.acceleratorType}` - ); - console.log( - `\t\t\t\tAccelerator count : ${machineSpec.acceleratorCount}` - ); - } - - const automaticResources = modelDeployed.automaticResources; - console.log('\t\tAutomatic resources'); - if (!automaticResources) { - console.log('\t\t\tMin replica count : {}'); - console.log('\t\t\tMax replica count : {}'); - } else { - console.log( - `\t\t\tMin replica count : \ - ${automaticResources.minReplicaCount}` - ); - console.log( - `\t\t\tMax replica count : \ - ${automaticResources.maxReplicaCount}` - ); - } - } - } - deployModel(); - // [END aiplatform_deploy_model_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/expensive-test/create-data-labeling-job-image.test.js b/samples/expensive-test/create-data-labeling-job-image.test.js deleted file mode 100644 index c3381e16..00000000 --- a/samples/expensive-test/create-data-labeling-job-image.test.js +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const displayName = `temp_create_data_labeling_job_image_test_${uuid()}`; -const datasetId = '1905673553261363200'; -const instructionUri = - 'gs://ucaip-sample-resources/images/datalabeling_instructions.pdf'; -const annotationSpec = 'roses'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -let dataLabelingJobId; - -describe('AI platform create data labeling job image', () => { - it('should create a new data labeling job image', async () => { - const stdout = execSync( - `node ./create-data-labeling-job-image.js ${displayName} ${datasetId} \ - ${instructionUri} \ - ${annotationSpec} \ - ${project} ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Create data labeling job image response/); - dataLabelingJobId = stdout - .split('/locations/us-central1/dataLabelingJobs/')[1] - .split('\n')[0]; - }); - after('should cancel the data labeling job and delete it', async () => { - execSync( - `node ./cancel-data-labeling-job.js ${dataLabelingJobId} ${project} \ - ${location}`, - { - cwd, - } - ); - execSync( - `node ./delete-data-labeling-job.js ${dataLabelingJobId} ${project} \ - ${location}`, - { - cwd, - } - ); - }); -}); diff --git a/samples/expensive-test/create-data-labeling-job-video.test.js b/samples/expensive-test/create-data-labeling-job-video.test.js deleted file mode 100644 index 33800c8e..00000000 --- a/samples/expensive-test/create-data-labeling-job-video.test.js +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const displayName = `temp_create_data_labeling_job_video_test_${uuid()}`; -const datasetId = '3459133949727473664'; -const instructionUri = - 'gs://ucaip-sample-resources/images/datalabeling_instructions.pdf'; -const annotationSpec = 'cartwheel'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -let dataLabelingJobId; - -describe('AI platform create data labeling job video', () => { - it('should create a new data labeling job video', async () => { - const stdout = execSync( - `node ./create-data-labeling-job-video.js ${displayName} ${datasetId} \ - ${instructionUri} \ - ${annotationSpec} \ - ${project} ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Create data labeling job video response/); - dataLabelingJobId = stdout - .split('/locations/us-central1/dataLabelingJobs/')[1] - .split('\n')[0]; - }); - after('should cancel the data labeling job and delete it', async () => { - execSync( - `node ./cancel-data-labeling-job.js ${dataLabelingJobId} ${project} \ - ${location}`, - { - cwd, - } - ); - execSync( - `node ./delete-data-labeling-job.js ${dataLabelingJobId} ${project} \ - ${location}`, - { - cwd, - } - ); - }); -}); diff --git a/samples/expensive-test/create-data-labeling-job.test.js b/samples/expensive-test/create-data-labeling-job.test.js deleted file mode 100644 index 342c54a5..00000000 --- a/samples/expensive-test/create-data-labeling-job.test.js +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const displayName = `temp_create_data_labeling_job_test_${uuid()}`; -const datasetId = '8268327440875520000'; -const instructionUri = - 'gs://ucaip-sample-resources/images/datalabeling_instructions.pdf'; -const inputsSchemaUri = - 'gs://google-cloud-aiplatform/schema/datalabelingjob/inputs/image_classification.yaml'; -const annotationSpec = 'daisy'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -let dataLabelingJobId; - -describe('AI platform create data labeling job', () => { - it('should create a new data labeling job', async () => { - const stdout = execSync( - `node ./create-data-labeling-job.js ${displayName} ${datasetId} \ - ${instructionUri} \ - ${inputsSchemaUri} \ - ${annotationSpec} \ - ${project} ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Create data labeling job response/); - dataLabelingJobId = stdout - .split('/locations/us-central1/dataLabelingJobs/')[1] - .split('\n')[0]; - }); - after('should cancel the data labeling job and delete it', async () => { - execSync( - `node ./cancel-data-labeling-job.js ${dataLabelingJobId} ${project} \ - ${location}`, - { - cwd, - } - ); - execSync( - `node ./delete-data-labeling-job.js ${dataLabelingJobId} ${project} \ - ${location}`, - { - cwd, - } - ); - }); -}); diff --git a/samples/expensive-test/get-training-pipeline.test.js b/samples/expensive-test/get-training-pipeline.test.js deleted file mode 100644 index 1f553f84..00000000 --- a/samples/expensive-test/get-training-pipeline.test.js +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const trainingPipelineId = '1419759782528548864'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -describe('AI platform get training pipeline', () => { - it('should get the training pipeline', async () => { - const stdout = execSync( - `node ./get-training-pipeline.js ${trainingPipelineId} \ - ${project} ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Get training pipeline response/); - }); -}); diff --git a/samples/expensive-test/import-data-text-entity-extraction.test.js b/samples/expensive-test/import-data-text-entity-extraction.test.js deleted file mode 100644 index bb6ca678..00000000 --- a/samples/expensive-test/import-data-text-entity-extraction.test.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const datasetId = '6203215905493614592'; -const gcsSourceUri = - 'gs://cloud-ml-data/NL-entity/AIPlatform-unified/entity_extraction_dataset.jsonl'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -describe('AI platform import data text entity extraction', () => { - it('should import data to text entity extraction dataset', async () => { - const stdout = execSync( - `node ./import-data-text-entity-extraction.js ${datasetId} \ - ${gcsSourceUri} \ - ${project} \ - ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Import data text entity extraction response/); - }); -}); diff --git a/samples/expensive-test/import-data-text-sentiment-analysis.test.js b/samples/expensive-test/import-data-text-sentiment-analysis.test.js deleted file mode 100644 index 8449d211..00000000 --- a/samples/expensive-test/import-data-text-sentiment-analysis.test.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const datasetId = '5148529167758786560'; -const gcsSourceUri = - 'gs://cloud-ml-data/NL-sentiment/crowdflower-twitter-claritin-80-10-10.csv'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -describe('AI platform import data text sentiment analysis', () => { - it('should import data text sentiment analysis to dataset', async () => { - const stdout = execSync( - `node ./import-data-text-sentiment-analysis.js ${datasetId} \ - ${gcsSourceUri} \ - ${project} \ - ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Import data text sentiment analysis response/); - }); -}); diff --git a/samples/expensive-test/import-data-video-object-tracking.test.js b/samples/expensive-test/import-data-video-object-tracking.test.js deleted file mode 100644 index 592390e9..00000000 --- a/samples/expensive-test/import-data-video-object-tracking.test.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const datasetId = '1138566280794603520'; -const gcsSourceUri = - 'gs://ucaip-sample-resources/youtube_8m_videos_animal_full.jsonl'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -describe('AI platform import data video object tracking', () => { - it('should import video object tracking data to dataset', async () => { - const stdout = execSync( - `node ./import-data-video-object-tracking.js ${datasetId} \ - ${gcsSourceUri} \ - ${project} \ - ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Import data video object tracking response/); - }); -}); diff --git a/samples/export-feature-values-sample.js b/samples/export-feature-values-sample.js deleted file mode 100644 index 04d9c34c..00000000 --- a/samples/export-feature-values-sample.js +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Exports Feature values from all the entities of a target EntityType. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - entityTypeId, - destinationTableUri, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_export_feature_values_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; - // const destinationTableUri = 'YOUR_BQ_DESTINATION_TABLE_URI'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function exportFeatureValues() { - // Configure the entityType resource - const entityType = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId}`; - - const destination = { - bigqueryDestination: { - // # Output to BigQuery table created earlier - outputUri: destinationTableUri, - }, - }; - - const featureSelector = { - idMatcher: { - ids: ['age', 'gender', 'liked_genres'], - }, - }; - - const request = { - entityType: entityType, - destination: destination, - featureSelector: featureSelector, - fullExport: {}, - }; - - // Export Feature Values Request - const [operation] = await featurestoreServiceClient.exportFeatureValues( - request, - {timeout: Number(timeout)} - ); - const [response] = await operation.promise(); - - console.log('Export feature values response'); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - exportFeatureValues(); - // [END aiplatform_export_feature_values_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/export-feature-values-snapshot-sample.js b/samples/export-feature-values-snapshot-sample.js deleted file mode 100644 index f527bfb1..00000000 --- a/samples/export-feature-values-snapshot-sample.js +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Exports Feature values with snapshot from all the entities of a target EntityType. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - entityTypeId, - destinationTableUri, - timestamp, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_export_feature_values_snapshot_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; - // const destinationTableUri = 'YOUR_BQ_DESTINATION_TABLE_URI'; - // const timestamp = ; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function exportFeatureValuesSnapshot() { - // Configure the entityType resource - const entityType = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId}`; - - const destination = { - bigqueryDestination: { - // # Output to BigQuery table created earlier - outputUri: destinationTableUri, - }, - }; - - const featureSelector = { - idMatcher: { - ids: ['age', 'gender', 'liked_genres'], - }, - }; - - const snapshotExport = { - startTime: { - seconds: Number(timestamp), - }, - }; - - const request = { - entityType: entityType, - destination: destination, - featureSelector: featureSelector, - snapshotExport: snapshotExport, - }; - - // Export Feature Values Request - const [operation] = await featurestoreServiceClient.exportFeatureValues( - request, - {timeout: Number(timeout)} - ); - const [response] = await operation.promise(); - - console.log('Export feature values snapshot response'); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - exportFeatureValuesSnapshot(); - // [END aiplatform_export_feature_values_snapshot_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/export-model-tabular-classification.js b/samples/export-model-tabular-classification.js deleted file mode 100644 index bbdabab5..00000000 --- a/samples/export-model-tabular-classification.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - gcsDestinationOutputUriPrefix, - modelId, - project, - location = 'us-central1' -) { - // [START aiplatform_export_model_tabular_classification_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const gcsDestinationOutputUriPrefix ='YOUR_GCS_DESTINATION_\ - // OUTPUT_URI_PREFIX'; eg. "gs:///destination_path" - // const modelId = 'YOUR_MODEL_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Model Service Client library - const {ModelServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const modelServiceClient = new ModelServiceClient(clientOptions); - - async function exportModelTabularClassification() { - // Configure the name resources - const name = `projects/${project}/locations/${location}/models/${modelId}`; - // Configure the outputConfig resources - const outputConfig = { - exportFormatId: 'tf-saved-model', - artifactDestination: { - outputUriPrefix: gcsDestinationOutputUriPrefix, - }, - }; - const request = { - name, - outputConfig, - }; - - // Export Model request - const [response] = await modelServiceClient.exportModel(request); - console.log(`Long running operation : ${response.name}`); - - // Wait for operation to complete - await response.promise(); - console.log(`Export model response : ${JSON.stringify(response.result)}`); - } - exportModelTabularClassification(); - // [END aiplatform_export_model_tabular_classification_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/export-model.js b/samples/export-model.js deleted file mode 100644 index a7fb1fbd..00000000 --- a/samples/export-model.js +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - modelId, - gcsDestinationOutputUriPrefix, - exportFormat, - project, - location = 'us-central1' -) { - // [START aiplatform_export_model_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - (Not necessary if passing values as arguments) - */ - - // const modelId = 'YOUR_MODEL_ID'; - // const gcsDestinationOutputUriPrefix ='YOUR_GCS_DEST_OUTPUT_URI_PREFIX'; - // eg. "gs:///destination_path" - // const exportFormat = 'YOUR_EXPORT_FORMAT'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Model Service Client library - const {ModelServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const modelServiceClient = new ModelServiceClient(clientOptions); - - async function exportModel() { - // Configure the name resources - const name = `projects/${project}/locations/${location}/models/${modelId}`; - // Configure the outputConfig resources - const outputConfig = { - exportFormatId: exportFormat, - gcsDestination: { - outputUriPrefix: gcsDestinationOutputUriPrefix, - }, - }; - const request = { - name, - outputConfig, - }; - - // Export Model request - const [response] = await modelServiceClient.exportModel(request); - console.log(`Long running operation : ${response.name}`); - - // Wait for operation to complete - await response.promise(); - const result = response.result; - - console.log(`Export model response : ${JSON.stringify(result)}`); - } - exportModel(); - // [END aiplatform_export_model_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/dataset_service.create_dataset.js b/samples/generated/v1/dataset_service.create_dataset.js deleted file mode 100644 index b7a02130..00000000 --- a/samples/generated/v1/dataset_service.create_dataset.js +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, dataset) { - // [START aiplatform_v1_generated_DatasetService_CreateDataset_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the Dataset in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The Dataset to create. - */ - // const dataset = {} - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callCreateDataset() { - // Construct request - const request = { - parent, - dataset, - }; - - // Run request - const [operation] = await aiplatformClient.createDataset(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateDataset(); - // [END aiplatform_v1_generated_DatasetService_CreateDataset_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/dataset_service.delete_dataset.js b/samples/generated/v1/dataset_service.delete_dataset.js deleted file mode 100644 index 9d774875..00000000 --- a/samples/generated/v1/dataset_service.delete_dataset.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_DatasetService_DeleteDataset_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Dataset to delete. - * Format: - * `projects/{project}/locations/{location}/datasets/{dataset}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callDeleteDataset() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteDataset(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteDataset(); - // [END aiplatform_v1_generated_DatasetService_DeleteDataset_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/dataset_service.export_data.js b/samples/generated/v1/dataset_service.export_data.js deleted file mode 100644 index d4323dba..00000000 --- a/samples/generated/v1/dataset_service.export_data.js +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name, exportConfig) { - // [START aiplatform_v1_generated_DatasetService_ExportData_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Dataset resource. - * Format: - * `projects/{project}/locations/{location}/datasets/{dataset}` - */ - // const name = 'abc123' - /** - * Required. The desired output location. - */ - // const exportConfig = {} - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callExportData() { - // Construct request - const request = { - name, - exportConfig, - }; - - // Run request - const [operation] = await aiplatformClient.exportData(request); - const [response] = await operation.promise(); - console.log(response); - } - - callExportData(); - // [END aiplatform_v1_generated_DatasetService_ExportData_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/dataset_service.get_annotation_spec.js b/samples/generated/v1/dataset_service.get_annotation_spec.js deleted file mode 100644 index 5fc9c43b..00000000 --- a/samples/generated/v1/dataset_service.get_annotation_spec.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_DatasetService_GetAnnotationSpec_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the AnnotationSpec resource. - * Format: - * `projects/{project}/locations/{location}/datasets/{dataset}/annotationSpecs/{annotation_spec}` - */ - // const name = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callGetAnnotationSpec() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getAnnotationSpec(request); - console.log(response); - } - - callGetAnnotationSpec(); - // [END aiplatform_v1_generated_DatasetService_GetAnnotationSpec_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/dataset_service.get_dataset.js b/samples/generated/v1/dataset_service.get_dataset.js deleted file mode 100644 index 6e4606aa..00000000 --- a/samples/generated/v1/dataset_service.get_dataset.js +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_DatasetService_GetDataset_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Dataset resource. - */ - // const name = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callGetDataset() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getDataset(request); - console.log(response); - } - - callGetDataset(); - // [END aiplatform_v1_generated_DatasetService_GetDataset_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/dataset_service.import_data.js b/samples/generated/v1/dataset_service.import_data.js deleted file mode 100644 index 7d49c2e9..00000000 --- a/samples/generated/v1/dataset_service.import_data.js +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name, importConfigs) { - // [START aiplatform_v1_generated_DatasetService_ImportData_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Dataset resource. - * Format: - * `projects/{project}/locations/{location}/datasets/{dataset}` - */ - // const name = 'abc123' - /** - * Required. The desired input locations. The contents of all input locations will be - * imported in one batch. - */ - // const importConfigs = 1234 - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callImportData() { - // Construct request - const request = { - name, - importConfigs, - }; - - // Run request - const [operation] = await aiplatformClient.importData(request); - const [response] = await operation.promise(); - console.log(response); - } - - callImportData(); - // [END aiplatform_v1_generated_DatasetService_ImportData_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/dataset_service.list_annotations.js b/samples/generated/v1/dataset_service.list_annotations.js deleted file mode 100644 index 7c093cb1..00000000 --- a/samples/generated/v1/dataset_service.list_annotations.js +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_DatasetService_ListAnnotations_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the DataItem to list Annotations from. - * Format: - * `projects/{project}/locations/{location}/datasets/{dataset}/dataItems/{data_item}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - /** - * A comma-separated list of fields to order by, sorted in ascending order. - * Use "desc" after a field name for descending. - */ - // const orderBy = 'abc123' - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callListAnnotations() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listAnnotationsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListAnnotations(); - // [END aiplatform_v1_generated_DatasetService_ListAnnotations_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/dataset_service.list_data_items.js b/samples/generated/v1/dataset_service.list_data_items.js deleted file mode 100644 index eeb37502..00000000 --- a/samples/generated/v1/dataset_service.list_data_items.js +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_DatasetService_ListDataItems_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Dataset to list DataItems from. - * Format: - * `projects/{project}/locations/{location}/datasets/{dataset}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - /** - * A comma-separated list of fields to order by, sorted in ascending order. - * Use "desc" after a field name for descending. - */ - // const orderBy = 'abc123' - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callListDataItems() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listDataItemsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListDataItems(); - // [END aiplatform_v1_generated_DatasetService_ListDataItems_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/dataset_service.list_datasets.js b/samples/generated/v1/dataset_service.list_datasets.js deleted file mode 100644 index cbe66aeb..00000000 --- a/samples/generated/v1/dataset_service.list_datasets.js +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_DatasetService_ListDatasets_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Dataset's parent resource. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * An expression for filtering the results of the request. For field names - * both snake_case and camelCase are supported. - * * `display_name`: supports = and != - * * `metadata_schema_uri`: supports = and != - * * `labels` supports general map functions that is: - * * `labels.key=value` - key:value equality - * * `labels.key:* or labels:key - key existence - * * A key including a space must be quoted. `labels."a key"`. - * Some examples: - * * `displayName="myDisplayName"` - * * `labels.myKey="myValue"` - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - /** - * A comma-separated list of fields to order by, sorted in ascending order. - * Use "desc" after a field name for descending. - * Supported fields: - * * `display_name` - * * `create_time` - * * `update_time` - */ - // const orderBy = 'abc123' - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callListDatasets() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listDatasetsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListDatasets(); - // [END aiplatform_v1_generated_DatasetService_ListDatasets_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/dataset_service.list_saved_queries.js b/samples/generated/v1/dataset_service.list_saved_queries.js deleted file mode 100644 index 2ff96e7c..00000000 --- a/samples/generated/v1/dataset_service.list_saved_queries.js +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_DatasetService_ListSavedQueries_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Dataset to list SavedQueries from. - * Format: - * `projects/{project}/locations/{location}/datasets/{dataset}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - /** - * A comma-separated list of fields to order by, sorted in ascending order. - * Use "desc" after a field name for descending. - */ - // const orderBy = 'abc123' - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callListSavedQueries() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listSavedQueriesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListSavedQueries(); - // [END aiplatform_v1_generated_DatasetService_ListSavedQueries_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/dataset_service.update_dataset.js b/samples/generated/v1/dataset_service.update_dataset.js deleted file mode 100644 index 56c0f96b..00000000 --- a/samples/generated/v1/dataset_service.update_dataset.js +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(dataset, updateMask) { - // [START aiplatform_v1_generated_DatasetService_UpdateDataset_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Dataset which replaces the resource on the server. - */ - // const dataset = {} - /** - * Required. The update mask applies to the resource. - * For the `FieldMask` definition, see google.protobuf.FieldMask google.protobuf.FieldMask. - * Updatable fields: - * * `display_name` - * * `description` - * * `labels` - */ - // const updateMask = {} - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callUpdateDataset() { - // Construct request - const request = { - dataset, - updateMask, - }; - - // Run request - const response = await aiplatformClient.updateDataset(request); - console.log(response); - } - - callUpdateDataset(); - // [END aiplatform_v1_generated_DatasetService_UpdateDataset_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/endpoint_service.create_endpoint.js b/samples/generated/v1/endpoint_service.create_endpoint.js deleted file mode 100644 index bfb43a41..00000000 --- a/samples/generated/v1/endpoint_service.create_endpoint.js +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, endpoint, endpointId) { - // [START aiplatform_v1_generated_EndpointService_CreateEndpoint_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the Endpoint in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The Endpoint to create. - */ - // const endpoint = {} - /** - * Immutable. The ID to use for endpoint, which will become the final - * component of the endpoint resource name. - * If not provided, Vertex AI will generate a value for this ID. - * This value should be 1-10 characters, and valid characters are /[0-9]/. - * When using HTTP/JSON, this field is populated based on a query string - * argument, such as `?endpoint_id=12345`. This is the fallback for fields - * that are not included in either the URI or the body. - */ - // const endpointId = 'abc123' - - // Imports the Aiplatform library - const {EndpointServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new EndpointServiceClient(); - - async function callCreateEndpoint() { - // Construct request - const request = { - parent, - endpoint, - endpointId, - }; - - // Run request - const [operation] = await aiplatformClient.createEndpoint(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateEndpoint(); - // [END aiplatform_v1_generated_EndpointService_CreateEndpoint_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/endpoint_service.delete_endpoint.js b/samples/generated/v1/endpoint_service.delete_endpoint.js deleted file mode 100644 index f51a8acf..00000000 --- a/samples/generated/v1/endpoint_service.delete_endpoint.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_EndpointService_DeleteEndpoint_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Endpoint resource to be deleted. - * Format: - * `projects/{project}/locations/{location}/endpoints/{endpoint}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {EndpointServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new EndpointServiceClient(); - - async function callDeleteEndpoint() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteEndpoint(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteEndpoint(); - // [END aiplatform_v1_generated_EndpointService_DeleteEndpoint_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/endpoint_service.deploy_model.js b/samples/generated/v1/endpoint_service.deploy_model.js deleted file mode 100644 index 33554f93..00000000 --- a/samples/generated/v1/endpoint_service.deploy_model.js +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(endpoint, deployedModel) { - // [START aiplatform_v1_generated_EndpointService_DeployModel_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Endpoint resource into which to deploy a Model. - * Format: - * `projects/{project}/locations/{location}/endpoints/{endpoint}` - */ - // const endpoint = 'abc123' - /** - * Required. The DeployedModel to be created within the Endpoint. Note that - * Endpoint.traffic_split google.cloud.aiplatform.v1.Endpoint.traffic_split must be updated for the DeployedModel to start - * receiving traffic, either as part of this call, or via - * EndpointService.UpdateEndpoint google.cloud.aiplatform.v1.EndpointService.UpdateEndpoint. - */ - // const deployedModel = {} - /** - * A map from a DeployedModel's ID to the percentage of this Endpoint's - * traffic that should be forwarded to that DeployedModel. - * If this field is non-empty, then the Endpoint's - * traffic_split google.cloud.aiplatform.v1.Endpoint.traffic_split will be overwritten with it. - * To refer to the ID of the just being deployed Model, a "0" should be used, - * and the actual ID of the new DeployedModel will be filled in its place by - * this method. The traffic percentage values must add up to 100. - * If this field is empty, then the Endpoint's - * traffic_split google.cloud.aiplatform.v1.Endpoint.traffic_split is not updated. - */ - // const trafficSplit = 1234 - - // Imports the Aiplatform library - const {EndpointServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new EndpointServiceClient(); - - async function callDeployModel() { - // Construct request - const request = { - endpoint, - deployedModel, - }; - - // Run request - const [operation] = await aiplatformClient.deployModel(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeployModel(); - // [END aiplatform_v1_generated_EndpointService_DeployModel_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/endpoint_service.get_endpoint.js b/samples/generated/v1/endpoint_service.get_endpoint.js deleted file mode 100644 index 02ca00cf..00000000 --- a/samples/generated/v1/endpoint_service.get_endpoint.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_EndpointService_GetEndpoint_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Endpoint resource. - * Format: - * `projects/{project}/locations/{location}/endpoints/{endpoint}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {EndpointServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new EndpointServiceClient(); - - async function callGetEndpoint() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getEndpoint(request); - console.log(response); - } - - callGetEndpoint(); - // [END aiplatform_v1_generated_EndpointService_GetEndpoint_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/endpoint_service.list_endpoints.js b/samples/generated/v1/endpoint_service.list_endpoints.js deleted file mode 100644 index b5d7007a..00000000 --- a/samples/generated/v1/endpoint_service.list_endpoints.js +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_EndpointService_ListEndpoints_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location from which to list the Endpoints. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Optional. An expression for filtering the results of the request. For field names - * both snake_case and camelCase are supported. - * * `endpoint` supports = and !=. `endpoint` represents the Endpoint ID, - * i.e. the last segment of the Endpoint's resource name google.cloud.aiplatform.v1.Endpoint.name. - * * `display_name` supports = and, != - * * `labels` supports general map functions that is: - * * `labels.key=value` - key:value equality - * * `labels.key:* or labels:key - key existence - * * A key including a space must be quoted. `labels."a key"`. - * Some examples: - * * `endpoint=1` - * * `displayName="myDisplayName"` - * * `labels.myKey="myValue"` - */ - // const filter = 'abc123' - /** - * Optional. The standard list page size. - */ - // const pageSize = 1234 - /** - * Optional. The standard list page token. - * Typically obtained via - * ListEndpointsResponse.next_page_token google.cloud.aiplatform.v1.ListEndpointsResponse.next_page_token of the previous - * EndpointService.ListEndpoints google.cloud.aiplatform.v1.EndpointService.ListEndpoints call. - */ - // const pageToken = 'abc123' - /** - * Optional. Mask specifying which fields to read. - */ - // const readMask = {} - /** - * A comma-separated list of fields to order by, sorted in ascending order. - * Use "desc" after a field name for descending. - * Supported fields: - * * `display_name` - * * `create_time` - * * `update_time` - * Example: `display_name, create_time desc`. - */ - // const orderBy = 'abc123' - - // Imports the Aiplatform library - const {EndpointServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new EndpointServiceClient(); - - async function callListEndpoints() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listEndpointsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListEndpoints(); - // [END aiplatform_v1_generated_EndpointService_ListEndpoints_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/endpoint_service.undeploy_model.js b/samples/generated/v1/endpoint_service.undeploy_model.js deleted file mode 100644 index 03778c13..00000000 --- a/samples/generated/v1/endpoint_service.undeploy_model.js +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(endpoint, deployedModelId) { - // [START aiplatform_v1_generated_EndpointService_UndeployModel_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Endpoint resource from which to undeploy a Model. - * Format: - * `projects/{project}/locations/{location}/endpoints/{endpoint}` - */ - // const endpoint = 'abc123' - /** - * Required. The ID of the DeployedModel to be undeployed from the Endpoint. - */ - // const deployedModelId = 'abc123' - /** - * If this field is provided, then the Endpoint's - * traffic_split google.cloud.aiplatform.v1.Endpoint.traffic_split will be overwritten with it. If - * last DeployedModel is being undeployed from the Endpoint, the - * Endpoint.traffic_split will always end up empty when this call returns. - * A DeployedModel will be successfully undeployed only if it doesn't have - * any traffic assigned to it when this method executes, or if this field - * unassigns any traffic to it. - */ - // const trafficSplit = 1234 - - // Imports the Aiplatform library - const {EndpointServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new EndpointServiceClient(); - - async function callUndeployModel() { - // Construct request - const request = { - endpoint, - deployedModelId, - }; - - // Run request - const [operation] = await aiplatformClient.undeployModel(request); - const [response] = await operation.promise(); - console.log(response); - } - - callUndeployModel(); - // [END aiplatform_v1_generated_EndpointService_UndeployModel_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/endpoint_service.update_endpoint.js b/samples/generated/v1/endpoint_service.update_endpoint.js deleted file mode 100644 index 46c5ebe2..00000000 --- a/samples/generated/v1/endpoint_service.update_endpoint.js +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(endpoint, updateMask) { - // [START aiplatform_v1_generated_EndpointService_UpdateEndpoint_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Endpoint which replaces the resource on the server. - */ - // const endpoint = {} - /** - * Required. The update mask applies to the resource. See google.protobuf.FieldMask google.protobuf.FieldMask. - */ - // const updateMask = {} - - // Imports the Aiplatform library - const {EndpointServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new EndpointServiceClient(); - - async function callUpdateEndpoint() { - // Construct request - const request = { - endpoint, - updateMask, - }; - - // Run request - const response = await aiplatformClient.updateEndpoint(request); - console.log(response); - } - - callUpdateEndpoint(); - // [END aiplatform_v1_generated_EndpointService_UpdateEndpoint_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_online_serving_service.read_feature_values.js b/samples/generated/v1/featurestore_online_serving_service.read_feature_values.js deleted file mode 100644 index 22a53813..00000000 --- a/samples/generated/v1/featurestore_online_serving_service.read_feature_values.js +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(entityType, entityId, featureSelector) { - // [START aiplatform_v1_generated_FeaturestoreOnlineServingService_ReadFeatureValues_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the EntityType for the entity being read. - * Value format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entityType}`. - * For example, for a machine learning model predicting user clicks on a - * website, an EntityType ID could be `user`. - */ - // const entityType = 'abc123' - /** - * Required. ID for a specific entity. For example, - * for a machine learning model predicting user clicks on a website, an entity - * ID could be `user_123`. - */ - // const entityId = 'abc123' - /** - * Required. Selector choosing Features of the target EntityType. - */ - // const featureSelector = {} - - // Imports the Aiplatform library - const {FeaturestoreOnlineServingServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreOnlineServingServiceClient(); - - async function callReadFeatureValues() { - // Construct request - const request = { - entityType, - entityId, - featureSelector, - }; - - // Run request - const response = await aiplatformClient.readFeatureValues(request); - console.log(response); - } - - callReadFeatureValues(); - // [END aiplatform_v1_generated_FeaturestoreOnlineServingService_ReadFeatureValues_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_online_serving_service.streaming_read_feature_values.js b/samples/generated/v1/featurestore_online_serving_service.streaming_read_feature_values.js deleted file mode 100644 index 803b0838..00000000 --- a/samples/generated/v1/featurestore_online_serving_service.streaming_read_feature_values.js +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(entityType, entityIds, featureSelector) { - // [START aiplatform_v1_generated_FeaturestoreOnlineServingService_StreamingReadFeatureValues_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the entities' type. - * Value format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entityType}`. - * For example, - * for a machine learning model predicting user clicks on a website, an - * EntityType ID could be `user`. - */ - // const entityType = 'abc123' - /** - * Required. IDs of entities to read Feature values of. The maximum number of IDs is - * 100. For example, for a machine learning model predicting user clicks on a - * website, an entity ID could be `user_123`. - */ - // const entityIds = 'abc123' - /** - * Required. Selector choosing Features of the target EntityType. Feature IDs will be - * deduplicated. - */ - // const featureSelector = {} - - // Imports the Aiplatform library - const {FeaturestoreOnlineServingServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreOnlineServingServiceClient(); - - async function callStreamingReadFeatureValues() { - // Construct request - const request = { - entityType, - entityIds, - featureSelector, - }; - - // Run request - const stream = await aiplatformClient.streamingReadFeatureValues(request); - stream.on('data', (response) => { console.log(response) }); - stream.on('error', (err) => { throw(err) }); - stream.on('end', () => { /* API call completed */ }); - } - - callStreamingReadFeatureValues(); - // [END aiplatform_v1_generated_FeaturestoreOnlineServingService_StreamingReadFeatureValues_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_service.batch_create_features.js b/samples/generated/v1/featurestore_service.batch_create_features.js deleted file mode 100644 index 3ec849cd..00000000 --- a/samples/generated/v1/featurestore_service.batch_create_features.js +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, requests) { - // [START aiplatform_v1_generated_FeaturestoreService_BatchCreateFeatures_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the EntityType to create the batch of Features under. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` - */ - // const parent = 'abc123' - /** - * Required. The request message specifying the Features to create. All Features must be - * created under the same parent EntityType. The `parent` field in each child - * request message can be omitted. If `parent` is set in a child request, then - * the value must match the `parent` value in this request message. - */ - // const requests = 1234 - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callBatchCreateFeatures() { - // Construct request - const request = { - parent, - requests, - }; - - // Run request - const [operation] = await aiplatformClient.batchCreateFeatures(request); - const [response] = await operation.promise(); - console.log(response); - } - - callBatchCreateFeatures(); - // [END aiplatform_v1_generated_FeaturestoreService_BatchCreateFeatures_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_service.batch_read_feature_values.js b/samples/generated/v1/featurestore_service.batch_read_feature_values.js deleted file mode 100644 index d23e3ce5..00000000 --- a/samples/generated/v1/featurestore_service.batch_read_feature_values.js +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(featurestore, destination, entityTypeSpecs) { - // [START aiplatform_v1_generated_FeaturestoreService_BatchReadFeatureValues_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Each read instance consists of exactly one read timestamp and one or more - * entity IDs identifying entities of the corresponding EntityTypes whose - * Features are requested. - * Each output instance contains Feature values of requested entities - * concatenated together as of the read time. - * An example read instance may be `foo_entity_id, bar_entity_id, - * 2020-01-01T10:00:00.123Z`. - * An example output instance may be `foo_entity_id, bar_entity_id, - * 2020-01-01T10:00:00.123Z, foo_entity_feature1_value, - * bar_entity_feature2_value`. - * Timestamp in each read instance must be millisecond-aligned. - * `csv_read_instances` are read instances stored in a plain-text CSV file. - * The header should be: - * ENTITY_TYPE_ID1, ENTITY_TYPE_ID2, ..., timestamp - * The columns can be in any order. - * Values in the timestamp column must use the RFC 3339 format, e.g. - * `2012-07-30T10:43:17.123Z`. - */ - // const csvReadInstances = {} - /** - * Similar to csv_read_instances, but from BigQuery source. - */ - // const bigqueryReadInstances = {} - /** - * Required. The resource name of the Featurestore from which to query Feature values. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}` - */ - // const featurestore = 'abc123' - /** - * Required. Specifies output location and format. - */ - // const destination = {} - /** - * When not empty, the specified fields in the *_read_instances source will be - * joined as-is in the output, in addition to those fields from the - * Featurestore Entity. - * For BigQuery source, the type of the pass-through values will be - * automatically inferred. For CSV source, the pass-through values will be - * passed as opaque bytes. - */ - // const passThroughFields = 1234 - /** - * Required. Specifies EntityType grouping Features to read values of and settings. - * Each EntityType referenced in - * BatchReadFeatureValuesRequest.entity_type_specs must have a column - * specifying entity IDs in the EntityType in - * BatchReadFeatureValuesRequest.request . - */ - // const entityTypeSpecs = 1234 - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callBatchReadFeatureValues() { - // Construct request - const request = { - featurestore, - destination, - entityTypeSpecs, - }; - - // Run request - const [operation] = await aiplatformClient.batchReadFeatureValues(request); - const [response] = await operation.promise(); - console.log(response); - } - - callBatchReadFeatureValues(); - // [END aiplatform_v1_generated_FeaturestoreService_BatchReadFeatureValues_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_service.create_entity_type.js b/samples/generated/v1/featurestore_service.create_entity_type.js deleted file mode 100644 index e276520f..00000000 --- a/samples/generated/v1/featurestore_service.create_entity_type.js +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, entityTypeId) { - // [START aiplatform_v1_generated_FeaturestoreService_CreateEntityType_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Featurestore to create EntityTypes. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}` - */ - // const parent = 'abc123' - /** - * The EntityType to create. - */ - // const entityType = {} - /** - * Required. The ID to use for the EntityType, which will become the final component of - * the EntityType's resource name. - * This value may be up to 60 characters, and valid characters are - * `[a-z0-9_]`. The first character cannot be a number. - * The value must be unique within a featurestore. - */ - // const entityTypeId = 'abc123' - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callCreateEntityType() { - // Construct request - const request = { - parent, - entityTypeId, - }; - - // Run request - const [operation] = await aiplatformClient.createEntityType(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateEntityType(); - // [END aiplatform_v1_generated_FeaturestoreService_CreateEntityType_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_service.create_feature.js b/samples/generated/v1/featurestore_service.create_feature.js deleted file mode 100644 index 501ca5fd..00000000 --- a/samples/generated/v1/featurestore_service.create_feature.js +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, feature, featureId) { - // [START aiplatform_v1_generated_FeaturestoreService_CreateFeature_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the EntityType to create a Feature. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` - */ - // const parent = 'abc123' - /** - * Required. The Feature to create. - */ - // const feature = {} - /** - * Required. The ID to use for the Feature, which will become the final component of - * the Feature's resource name. - * This value may be up to 60 characters, and valid characters are - * `[a-z0-9_]`. The first character cannot be a number. - * The value must be unique within an EntityType. - */ - // const featureId = 'abc123' - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callCreateFeature() { - // Construct request - const request = { - parent, - feature, - featureId, - }; - - // Run request - const [operation] = await aiplatformClient.createFeature(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateFeature(); - // [END aiplatform_v1_generated_FeaturestoreService_CreateFeature_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_service.create_featurestore.js b/samples/generated/v1/featurestore_service.create_featurestore.js deleted file mode 100644 index bc6f82bc..00000000 --- a/samples/generated/v1/featurestore_service.create_featurestore.js +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, featurestore, featurestoreId) { - // [START aiplatform_v1_generated_FeaturestoreService_CreateFeaturestore_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create Featurestores. - * Format: - * `projects/{project}/locations/{location}'` - */ - // const parent = 'abc123' - /** - * Required. The Featurestore to create. - */ - // const featurestore = {} - /** - * Required. The ID to use for this Featurestore, which will become the final component - * of the Featurestore's resource name. - * This value may be up to 60 characters, and valid characters are - * `[a-z0-9_]`. The first character cannot be a number. - * The value must be unique within the project and location. - */ - // const featurestoreId = 'abc123' - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callCreateFeaturestore() { - // Construct request - const request = { - parent, - featurestore, - featurestoreId, - }; - - // Run request - const [operation] = await aiplatformClient.createFeaturestore(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateFeaturestore(); - // [END aiplatform_v1_generated_FeaturestoreService_CreateFeaturestore_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_service.delete_entity_type.js b/samples/generated/v1/featurestore_service.delete_entity_type.js deleted file mode 100644 index 35a524f9..00000000 --- a/samples/generated/v1/featurestore_service.delete_entity_type.js +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_FeaturestoreService_DeleteEntityType_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the EntityType to be deleted. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` - */ - // const name = 'abc123' - /** - * If set to true, any Features for this EntityType will also be deleted. - * (Otherwise, the request will only work if the EntityType has no Features.) - */ - // const force = true - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callDeleteEntityType() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteEntityType(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteEntityType(); - // [END aiplatform_v1_generated_FeaturestoreService_DeleteEntityType_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_service.delete_feature.js b/samples/generated/v1/featurestore_service.delete_feature.js deleted file mode 100644 index 99e88823..00000000 --- a/samples/generated/v1/featurestore_service.delete_feature.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_FeaturestoreService_DeleteFeature_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Features to be deleted. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callDeleteFeature() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteFeature(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteFeature(); - // [END aiplatform_v1_generated_FeaturestoreService_DeleteFeature_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_service.delete_featurestore.js b/samples/generated/v1/featurestore_service.delete_featurestore.js deleted file mode 100644 index 87129231..00000000 --- a/samples/generated/v1/featurestore_service.delete_featurestore.js +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_FeaturestoreService_DeleteFeaturestore_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Featurestore to be deleted. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}` - */ - // const name = 'abc123' - /** - * If set to true, any EntityTypes and Features for this Featurestore will - * also be deleted. (Otherwise, the request will only work if the Featurestore - * has no EntityTypes.) - */ - // const force = true - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callDeleteFeaturestore() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteFeaturestore(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteFeaturestore(); - // [END aiplatform_v1_generated_FeaturestoreService_DeleteFeaturestore_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_service.export_feature_values.js b/samples/generated/v1/featurestore_service.export_feature_values.js deleted file mode 100644 index 44f3d068..00000000 --- a/samples/generated/v1/featurestore_service.export_feature_values.js +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(entityType, destination, featureSelector) { - // [START aiplatform_v1_generated_FeaturestoreService_ExportFeatureValues_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Exports the latest Feature values of all entities of the EntityType - * within a time range. - */ - // const snapshotExport = {} - /** - * Exports all historical values of all entities of the EntityType within a - * time range - */ - // const fullExport = {} - /** - * Required. The resource name of the EntityType from which to export Feature values. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` - */ - // const entityType = 'abc123' - /** - * Required. Specifies destination location and format. - */ - // const destination = {} - /** - * Required. Selects Features to export values of. - */ - // const featureSelector = {} - /** - * Per-Feature export settings. - */ - // const settings = 1234 - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callExportFeatureValues() { - // Construct request - const request = { - entityType, - destination, - featureSelector, - }; - - // Run request - const [operation] = await aiplatformClient.exportFeatureValues(request); - const [response] = await operation.promise(); - console.log(response); - } - - callExportFeatureValues(); - // [END aiplatform_v1_generated_FeaturestoreService_ExportFeatureValues_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_service.get_entity_type.js b/samples/generated/v1/featurestore_service.get_entity_type.js deleted file mode 100644 index 6c0f82b3..00000000 --- a/samples/generated/v1/featurestore_service.get_entity_type.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_FeaturestoreService_GetEntityType_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the EntityType resource. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callGetEntityType() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getEntityType(request); - console.log(response); - } - - callGetEntityType(); - // [END aiplatform_v1_generated_FeaturestoreService_GetEntityType_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_service.get_feature.js b/samples/generated/v1/featurestore_service.get_feature.js deleted file mode 100644 index 86677d01..00000000 --- a/samples/generated/v1/featurestore_service.get_feature.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_FeaturestoreService_GetFeature_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Feature resource. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callGetFeature() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getFeature(request); - console.log(response); - } - - callGetFeature(); - // [END aiplatform_v1_generated_FeaturestoreService_GetFeature_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_service.get_featurestore.js b/samples/generated/v1/featurestore_service.get_featurestore.js deleted file mode 100644 index acae2e51..00000000 --- a/samples/generated/v1/featurestore_service.get_featurestore.js +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_FeaturestoreService_GetFeaturestore_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Featurestore resource. - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callGetFeaturestore() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getFeaturestore(request); - console.log(response); - } - - callGetFeaturestore(); - // [END aiplatform_v1_generated_FeaturestoreService_GetFeaturestore_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_service.import_feature_values.js b/samples/generated/v1/featurestore_service.import_feature_values.js deleted file mode 100644 index b194ada8..00000000 --- a/samples/generated/v1/featurestore_service.import_feature_values.js +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(entityType, featureSpecs) { - // [START aiplatform_v1_generated_FeaturestoreService_ImportFeatureValues_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - */ - // const avroSource = {} - /** - */ - // const bigquerySource = {} - /** - */ - // const csvSource = {} - /** - * Source column that holds the Feature timestamp for all Feature - * values in each entity. - */ - // const featureTimeField = 'abc123' - /** - * Single Feature timestamp for all entities being imported. The - * timestamp must not have higher than millisecond precision. - */ - // const featureTime = {} - /** - * Required. The resource name of the EntityType grouping the Features for which values - * are being imported. Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entityType}` - */ - // const entityType = 'abc123' - /** - * Source column that holds entity IDs. If not provided, entity IDs are - * extracted from the column named `entity_id`. - */ - // const entityIdField = 'abc123' - /** - * Required. Specifications defining which Feature values to import from the entity. The - * request fails if no feature_specs are provided, and having multiple - * feature_specs for one Feature is not allowed. - */ - // const featureSpecs = 1234 - /** - * If set, data will not be imported for online serving. This - * is typically used for backfilling, where Feature generation timestamps are - * not in the timestamp range needed for online serving. - */ - // const disableOnlineServing = true - /** - * Specifies the number of workers that are used to write data to the - * Featurestore. Consider the online serving capacity that you require to - * achieve the desired import throughput without interfering with online - * serving. The value must be positive, and less than or equal to 100. - * If not set, defaults to using 1 worker. The low count ensures minimal - * impact on online serving performance. - */ - // const workerCount = 1234 - /** - * If true, API doesn't start ingestion analysis pipeline. - */ - // const disableIngestionAnalysis = true - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callImportFeatureValues() { - // Construct request - const request = { - entityType, - featureSpecs, - }; - - // Run request - const [operation] = await aiplatformClient.importFeatureValues(request); - const [response] = await operation.promise(); - console.log(response); - } - - callImportFeatureValues(); - // [END aiplatform_v1_generated_FeaturestoreService_ImportFeatureValues_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_service.list_entity_types.js b/samples/generated/v1/featurestore_service.list_entity_types.js deleted file mode 100644 index 4dc7a5ed..00000000 --- a/samples/generated/v1/featurestore_service.list_entity_types.js +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_FeaturestoreService_ListEntityTypes_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Featurestore to list EntityTypes. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}` - */ - // const parent = 'abc123' - /** - * Lists the EntityTypes that match the filter expression. The following - * filters are supported: - * * `create_time`: Supports `=`, `!=`, `<`, `>`, `>=`, and `<=` comparisons. - * Values must be in RFC 3339 format. - * * `update_time`: Supports `=`, `!=`, `<`, `>`, `>=`, and `<=` comparisons. - * Values must be in RFC 3339 format. - * * `labels`: Supports key-value equality as well as key presence. - * Examples: - * * `create_time > \"2020-01-31T15:30:00.000000Z\" OR - * update_time > \"2020-01-31T15:30:00.000000Z\"` --> EntityTypes created - * or updated after 2020-01-31T15:30:00.000000Z. - * * `labels.active = yes AND labels.env = prod` --> EntityTypes having both - * (active: yes) and (env: prod) labels. - * * `labels.env: *` --> Any EntityType which has a label with 'env' as the - * key. - */ - // const filter = 'abc123' - /** - * The maximum number of EntityTypes to return. The service may return fewer - * than this value. If unspecified, at most 1000 EntityTypes will be returned. - * The maximum value is 1000; any value greater than 1000 will be coerced to - * 1000. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * FeaturestoreService.ListEntityTypes google.cloud.aiplatform.v1.FeaturestoreService.ListEntityTypes call. - * Provide this to retrieve the subsequent page. - * When paginating, all other parameters provided to - * FeaturestoreService.ListEntityTypes google.cloud.aiplatform.v1.FeaturestoreService.ListEntityTypes must - * match the call that provided the page token. - */ - // const pageToken = 'abc123' - /** - * A comma-separated list of fields to order by, sorted in ascending order. - * Use "desc" after a field name for descending. - * Supported fields: - * * `entity_type_id` - * * `create_time` - * * `update_time` - */ - // const orderBy = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callListEntityTypes() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listEntityTypesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListEntityTypes(); - // [END aiplatform_v1_generated_FeaturestoreService_ListEntityTypes_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_service.list_features.js b/samples/generated/v1/featurestore_service.list_features.js deleted file mode 100644 index 14d7902e..00000000 --- a/samples/generated/v1/featurestore_service.list_features.js +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_FeaturestoreService_ListFeatures_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to list Features. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` - */ - // const parent = 'abc123' - /** - * Lists the Features that match the filter expression. The following - * filters are supported: - * * `value_type`: Supports = and != comparisons. - * * `create_time`: Supports =, !=, <, >, >=, and <= comparisons. Values must - * be in RFC 3339 format. - * * `update_time`: Supports =, !=, <, >, >=, and <= comparisons. Values must - * be in RFC 3339 format. - * * `labels`: Supports key-value equality as well as key presence. - * Examples: - * * `value_type = DOUBLE` --> Features whose type is DOUBLE. - * * `create_time > \"2020-01-31T15:30:00.000000Z\" OR - * update_time > \"2020-01-31T15:30:00.000000Z\"` --> EntityTypes created - * or updated after 2020-01-31T15:30:00.000000Z. - * * `labels.active = yes AND labels.env = prod` --> Features having both - * (active: yes) and (env: prod) labels. - * * `labels.env: *` --> Any Feature which has a label with 'env' as the - * key. - */ - // const filter = 'abc123' - /** - * The maximum number of Features to return. The service may return fewer - * than this value. If unspecified, at most 1000 Features will be returned. - * The maximum value is 1000; any value greater than 1000 will be coerced to - * 1000. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * FeaturestoreService.ListFeatures google.cloud.aiplatform.v1.FeaturestoreService.ListFeatures call. - * Provide this to retrieve the subsequent page. - * When paginating, all other parameters provided to - * FeaturestoreService.ListFeatures google.cloud.aiplatform.v1.FeaturestoreService.ListFeatures must - * match the call that provided the page token. - */ - // const pageToken = 'abc123' - /** - * A comma-separated list of fields to order by, sorted in ascending order. - * Use "desc" after a field name for descending. - * Supported fields: - * * `feature_id` - * * `value_type` - * * `create_time` - * * `update_time` - */ - // const orderBy = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - /** - * If set, return the most recent ListFeaturesRequest.latest_stats_count google.cloud.aiplatform.v1.ListFeaturesRequest.latest_stats_count - * of stats for each Feature in response. Valid value is 0, 10. If number of - * stats exists < ListFeaturesRequest.latest_stats_count google.cloud.aiplatform.v1.ListFeaturesRequest.latest_stats_count, return all - * existing stats. - */ - // const latestStatsCount = 1234 - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callListFeatures() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listFeaturesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListFeatures(); - // [END aiplatform_v1_generated_FeaturestoreService_ListFeatures_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_service.list_featurestores.js b/samples/generated/v1/featurestore_service.list_featurestores.js deleted file mode 100644 index 44e9e19e..00000000 --- a/samples/generated/v1/featurestore_service.list_featurestores.js +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_FeaturestoreService_ListFeaturestores_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to list Featurestores. - * Format: - * `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Lists the featurestores that match the filter expression. The following - * fields are supported: - * * `create_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. - * Values must be - * in RFC 3339 format. - * * `update_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. - * Values must be - * in RFC 3339 format. - * * `online_serving_config.fixed_node_count`: Supports `=`, `!=`, `<`, `>`, - * `<=`, and `>=` comparisons. - * * `labels`: Supports key-value equality and key presence. - * Examples: - * * `create_time > "2020-01-01" OR update_time > "2020-01-01"` - * Featurestores created or updated after 2020-01-01. - * * `labels.env = "prod"` - * Featurestores with label "env" set to "prod". - */ - // const filter = 'abc123' - /** - * The maximum number of Featurestores to return. The service may return fewer - * than this value. If unspecified, at most 100 Featurestores will be - * returned. The maximum value is 100; any value greater than 100 will be - * coerced to 100. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * FeaturestoreService.ListFeaturestores google.cloud.aiplatform.v1.FeaturestoreService.ListFeaturestores call. - * Provide this to retrieve the subsequent page. - * When paginating, all other parameters provided to - * FeaturestoreService.ListFeaturestores google.cloud.aiplatform.v1.FeaturestoreService.ListFeaturestores must - * match the call that provided the page token. - */ - // const pageToken = 'abc123' - /** - * A comma-separated list of fields to order by, sorted in ascending order. - * Use "desc" after a field name for descending. - * Supported Fields: - * * `create_time` - * * `update_time` - * * `online_serving_config.fixed_node_count` - */ - // const orderBy = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callListFeaturestores() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listFeaturestoresAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListFeaturestores(); - // [END aiplatform_v1_generated_FeaturestoreService_ListFeaturestores_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_service.search_features.js b/samples/generated/v1/featurestore_service.search_features.js deleted file mode 100644 index 611c707d..00000000 --- a/samples/generated/v1/featurestore_service.search_features.js +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(location) { - // [START aiplatform_v1_generated_FeaturestoreService_SearchFeatures_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to search Features. - * Format: - * `projects/{project}/locations/{location}` - */ - // const location = 'abc123' - /** - * Query string that is a conjunction of field-restricted queries and/or - * field-restricted filters. Field-restricted queries and filters can be - * combined using `AND` to form a conjunction. - * A field query is in the form FIELD:QUERY. This implicitly checks if QUERY - * exists as a substring within Feature's FIELD. The QUERY - * and the FIELD are converted to a sequence of words (i.e. tokens) for - * comparison. This is done by: - * * Removing leading/trailing whitespace and tokenizing the search value. - * Characters that are not one of alphanumeric `[a-zA-Z0-9]`, underscore - * `_`, or asterisk `*` are treated as delimiters for tokens. `*` is treated - * as a wildcard that matches characters within a token. - * * Ignoring case. - * * Prepending an asterisk to the first and appending an asterisk to the - * last token in QUERY. - * A QUERY must be either a singular token or a phrase. A phrase is one or - * multiple words enclosed in double quotation marks ("). With phrases, the - * order of the words is important. Words in the phrase must be matching in - * order and consecutively. - * Supported FIELDs for field-restricted queries: - * * `feature_id` - * * `description` - * * `entity_type_id` - * Examples: - * * `feature_id: foo` --> Matches a Feature with ID containing the substring - * `foo` (eg. `foo`, `foofeature`, `barfoo`). - * * `feature_id: foo*feature` --> Matches a Feature with ID containing the - * substring `foo*feature` (eg. `foobarfeature`). - * * `feature_id: foo AND description: bar` --> Matches a Feature with ID - * containing the substring `foo` and description containing the substring - * `bar`. - * Besides field queries, the following exact-match filters are - * supported. The exact-match filters do not support wildcards. Unlike - * field-restricted queries, exact-match filters are case-sensitive. - * * `feature_id`: Supports = comparisons. - * * `description`: Supports = comparisons. Multi-token filters should be - * enclosed in quotes. - * * `entity_type_id`: Supports = comparisons. - * * `value_type`: Supports = and != comparisons. - * * `labels`: Supports key-value equality as well as key presence. - * * `featurestore_id`: Supports = comparisons. - * Examples: - * * `description = "foo bar"` --> Any Feature with description exactly equal - * to `foo bar` - * * `value_type = DOUBLE` --> Features whose type is DOUBLE. - * * `labels.active = yes AND labels.env = prod` --> Features having both - * (active: yes) and (env: prod) labels. - * * `labels.env: *` --> Any Feature which has a label with `env` as the - * key. - */ - // const query = 'abc123' - /** - * The maximum number of Features to return. The service may return fewer - * than this value. If unspecified, at most 100 Features will be returned. - * The maximum value is 100; any value greater than 100 will be coerced to - * 100. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * FeaturestoreService.SearchFeatures google.cloud.aiplatform.v1.FeaturestoreService.SearchFeatures call. - * Provide this to retrieve the subsequent page. - * When paginating, all other parameters provided to - * FeaturestoreService.SearchFeatures google.cloud.aiplatform.v1.FeaturestoreService.SearchFeatures, except `page_size`, must - * match the call that provided the page token. - */ - // const pageToken = 'abc123' - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callSearchFeatures() { - // Construct request - const request = { - location, - }; - - // Run request - const iterable = await aiplatformClient.searchFeaturesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callSearchFeatures(); - // [END aiplatform_v1_generated_FeaturestoreService_SearchFeatures_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_service.update_entity_type.js b/samples/generated/v1/featurestore_service.update_entity_type.js deleted file mode 100644 index 9757c943..00000000 --- a/samples/generated/v1/featurestore_service.update_entity_type.js +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(entityType) { - // [START aiplatform_v1_generated_FeaturestoreService_UpdateEntityType_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The EntityType's `name` field is used to identify the EntityType to be - * updated. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` - */ - // const entityType = {} - /** - * Field mask is used to specify the fields to be overwritten in the - * EntityType resource by the update. - * The fields specified in the update_mask are relative to the resource, not - * the full request. A field will be overwritten if it is in the mask. If the - * user does not provide a mask then only the non-empty fields present in the - * request will be overwritten. Set the update_mask to `*` to override all - * fields. - * Updatable fields: - * * `description` - * * `labels` - * * `monitoring_config.snapshot_analysis.disabled` - * * `monitoring_config.snapshot_analysis.monitoring_interval_days` - * * `monitoring_config.snapshot_analysis.staleness_days` - * * `monitoring_config.import_features_analysis.state` - * * `monitoring_config.import_features_analysis.anomaly_detection_baseline` - * * `monitoring_config.numerical_threshold_config.value` - * * `monitoring_config.categorical_threshold_config.value` - */ - // const updateMask = {} - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callUpdateEntityType() { - // Construct request - const request = { - entityType, - }; - - // Run request - const response = await aiplatformClient.updateEntityType(request); - console.log(response); - } - - callUpdateEntityType(); - // [END aiplatform_v1_generated_FeaturestoreService_UpdateEntityType_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_service.update_feature.js b/samples/generated/v1/featurestore_service.update_feature.js deleted file mode 100644 index 819a2320..00000000 --- a/samples/generated/v1/featurestore_service.update_feature.js +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(feature) { - // [START aiplatform_v1_generated_FeaturestoreService_UpdateFeature_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Feature's `name` field is used to identify the Feature to be - * updated. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}` - */ - // const feature = {} - /** - * Field mask is used to specify the fields to be overwritten in the - * Features resource by the update. - * The fields specified in the update_mask are relative to the resource, not - * the full request. A field will be overwritten if it is in the mask. If the - * user does not provide a mask then only the non-empty fields present in the - * request will be overwritten. Set the update_mask to `*` to override all - * fields. - * Updatable fields: - * * `description` - * * `labels` - * * `disable_monitoring` - */ - // const updateMask = {} - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callUpdateFeature() { - // Construct request - const request = { - feature, - }; - - // Run request - const response = await aiplatformClient.updateFeature(request); - console.log(response); - } - - callUpdateFeature(); - // [END aiplatform_v1_generated_FeaturestoreService_UpdateFeature_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/featurestore_service.update_featurestore.js b/samples/generated/v1/featurestore_service.update_featurestore.js deleted file mode 100644 index f8d43801..00000000 --- a/samples/generated/v1/featurestore_service.update_featurestore.js +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(featurestore) { - // [START aiplatform_v1_generated_FeaturestoreService_UpdateFeaturestore_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Featurestore's `name` field is used to identify the Featurestore to be - * updated. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}` - */ - // const featurestore = {} - /** - * Field mask is used to specify the fields to be overwritten in the - * Featurestore resource by the update. - * The fields specified in the update_mask are relative to the resource, not - * the full request. A field will be overwritten if it is in the mask. If the - * user does not provide a mask then only the non-empty fields present in the - * request will be overwritten. Set the update_mask to `*` to override all - * fields. - * Updatable fields: - * * `labels` - * * `online_serving_config.fixed_node_count` - * * `online_serving_config.scaling` - */ - // const updateMask = {} - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callUpdateFeaturestore() { - // Construct request - const request = { - featurestore, - }; - - // Run request - const [operation] = await aiplatformClient.updateFeaturestore(request); - const [response] = await operation.promise(); - console.log(response); - } - - callUpdateFeaturestore(); - // [END aiplatform_v1_generated_FeaturestoreService_UpdateFeaturestore_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/index_endpoint_service.create_index_endpoint.js b/samples/generated/v1/index_endpoint_service.create_index_endpoint.js deleted file mode 100644 index b727f13e..00000000 --- a/samples/generated/v1/index_endpoint_service.create_index_endpoint.js +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, indexEndpoint) { - // [START aiplatform_v1_generated_IndexEndpointService_CreateIndexEndpoint_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the IndexEndpoint in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The IndexEndpoint to create. - */ - // const indexEndpoint = {} - - // Imports the Aiplatform library - const {IndexEndpointServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new IndexEndpointServiceClient(); - - async function callCreateIndexEndpoint() { - // Construct request - const request = { - parent, - indexEndpoint, - }; - - // Run request - const [operation] = await aiplatformClient.createIndexEndpoint(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateIndexEndpoint(); - // [END aiplatform_v1_generated_IndexEndpointService_CreateIndexEndpoint_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/index_endpoint_service.delete_index_endpoint.js b/samples/generated/v1/index_endpoint_service.delete_index_endpoint.js deleted file mode 100644 index ba6a0437..00000000 --- a/samples/generated/v1/index_endpoint_service.delete_index_endpoint.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_IndexEndpointService_DeleteIndexEndpoint_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the IndexEndpoint resource to be deleted. - * Format: - * `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {IndexEndpointServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new IndexEndpointServiceClient(); - - async function callDeleteIndexEndpoint() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteIndexEndpoint(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteIndexEndpoint(); - // [END aiplatform_v1_generated_IndexEndpointService_DeleteIndexEndpoint_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/index_endpoint_service.deploy_index.js b/samples/generated/v1/index_endpoint_service.deploy_index.js deleted file mode 100644 index 2dc6b7e4..00000000 --- a/samples/generated/v1/index_endpoint_service.deploy_index.js +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(indexEndpoint, deployedIndex) { - // [START aiplatform_v1_generated_IndexEndpointService_DeployIndex_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the IndexEndpoint resource into which to deploy an Index. - * Format: - * `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}` - */ - // const indexEndpoint = 'abc123' - /** - * Required. The DeployedIndex to be created within the IndexEndpoint. - */ - // const deployedIndex = {} - - // Imports the Aiplatform library - const {IndexEndpointServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new IndexEndpointServiceClient(); - - async function callDeployIndex() { - // Construct request - const request = { - indexEndpoint, - deployedIndex, - }; - - // Run request - const [operation] = await aiplatformClient.deployIndex(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeployIndex(); - // [END aiplatform_v1_generated_IndexEndpointService_DeployIndex_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/index_endpoint_service.get_index_endpoint.js b/samples/generated/v1/index_endpoint_service.get_index_endpoint.js deleted file mode 100644 index ed0867b7..00000000 --- a/samples/generated/v1/index_endpoint_service.get_index_endpoint.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_IndexEndpointService_GetIndexEndpoint_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the IndexEndpoint resource. - * Format: - * `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {IndexEndpointServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new IndexEndpointServiceClient(); - - async function callGetIndexEndpoint() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getIndexEndpoint(request); - console.log(response); - } - - callGetIndexEndpoint(); - // [END aiplatform_v1_generated_IndexEndpointService_GetIndexEndpoint_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/index_endpoint_service.list_index_endpoints.js b/samples/generated/v1/index_endpoint_service.list_index_endpoints.js deleted file mode 100644 index c9d1bb51..00000000 --- a/samples/generated/v1/index_endpoint_service.list_index_endpoints.js +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_IndexEndpointService_ListIndexEndpoints_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location from which to list the IndexEndpoints. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Optional. An expression for filtering the results of the request. For field names - * both snake_case and camelCase are supported. - * * `index_endpoint` supports = and !=. `index_endpoint` represents the - * IndexEndpoint ID, ie. the last segment of the IndexEndpoint's - * resourcename google.cloud.aiplatform.v1.IndexEndpoint.name. - * * `display_name` supports =, != and regex() - * (uses re2 (https://github.com/google/re2/wiki/Syntax) syntax) - * * `labels` supports general map functions that is: - * `labels.key=value` - key:value equality - * `labels.key:* or labels:key - key existence - * A key including a space must be quoted. `labels."a key"`. - * Some examples: - * * `index_endpoint="1"` - * * `display_name="myDisplayName"` - * * `regex(display_name, "^A") -> The display name starts with an A. - * * `labels.myKey="myValue"` - */ - // const filter = 'abc123' - /** - * Optional. The standard list page size. - */ - // const pageSize = 1234 - /** - * Optional. The standard list page token. - * Typically obtained via - * ListIndexEndpointsResponse.next_page_token google.cloud.aiplatform.v1.ListIndexEndpointsResponse.next_page_token of the previous - * IndexEndpointService.ListIndexEndpoints google.cloud.aiplatform.v1.IndexEndpointService.ListIndexEndpoints call. - */ - // const pageToken = 'abc123' - /** - * Optional. Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {IndexEndpointServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new IndexEndpointServiceClient(); - - async function callListIndexEndpoints() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listIndexEndpointsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListIndexEndpoints(); - // [END aiplatform_v1_generated_IndexEndpointService_ListIndexEndpoints_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/index_endpoint_service.mutate_deployed_index.js b/samples/generated/v1/index_endpoint_service.mutate_deployed_index.js deleted file mode 100644 index cfce6c9a..00000000 --- a/samples/generated/v1/index_endpoint_service.mutate_deployed_index.js +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(indexEndpoint, deployedIndex) { - // [START aiplatform_v1_generated_IndexEndpointService_MutateDeployedIndex_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the IndexEndpoint resource into which to deploy an Index. - * Format: - * `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}` - */ - // const indexEndpoint = 'abc123' - /** - * Required. The DeployedIndex to be updated within the IndexEndpoint. - * Currently, the updatable fields are DeployedIndex automatic_resources - * and DeployedIndex dedicated_resources - */ - // const deployedIndex = {} - - // Imports the Aiplatform library - const {IndexEndpointServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new IndexEndpointServiceClient(); - - async function callMutateDeployedIndex() { - // Construct request - const request = { - indexEndpoint, - deployedIndex, - }; - - // Run request - const [operation] = await aiplatformClient.mutateDeployedIndex(request); - const [response] = await operation.promise(); - console.log(response); - } - - callMutateDeployedIndex(); - // [END aiplatform_v1_generated_IndexEndpointService_MutateDeployedIndex_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/index_endpoint_service.undeploy_index.js b/samples/generated/v1/index_endpoint_service.undeploy_index.js deleted file mode 100644 index c3ae344f..00000000 --- a/samples/generated/v1/index_endpoint_service.undeploy_index.js +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(indexEndpoint, deployedIndexId) { - // [START aiplatform_v1_generated_IndexEndpointService_UndeployIndex_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the IndexEndpoint resource from which to undeploy an Index. - * Format: - * `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}` - */ - // const indexEndpoint = 'abc123' - /** - * Required. The ID of the DeployedIndex to be undeployed from the IndexEndpoint. - */ - // const deployedIndexId = 'abc123' - - // Imports the Aiplatform library - const {IndexEndpointServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new IndexEndpointServiceClient(); - - async function callUndeployIndex() { - // Construct request - const request = { - indexEndpoint, - deployedIndexId, - }; - - // Run request - const [operation] = await aiplatformClient.undeployIndex(request); - const [response] = await operation.promise(); - console.log(response); - } - - callUndeployIndex(); - // [END aiplatform_v1_generated_IndexEndpointService_UndeployIndex_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/index_endpoint_service.update_index_endpoint.js b/samples/generated/v1/index_endpoint_service.update_index_endpoint.js deleted file mode 100644 index 5ffece31..00000000 --- a/samples/generated/v1/index_endpoint_service.update_index_endpoint.js +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(indexEndpoint, updateMask) { - // [START aiplatform_v1_generated_IndexEndpointService_UpdateIndexEndpoint_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The IndexEndpoint which replaces the resource on the server. - */ - // const indexEndpoint = {} - /** - * Required. The update mask applies to the resource. See google.protobuf.FieldMask google.protobuf.FieldMask. - */ - // const updateMask = {} - - // Imports the Aiplatform library - const {IndexEndpointServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new IndexEndpointServiceClient(); - - async function callUpdateIndexEndpoint() { - // Construct request - const request = { - indexEndpoint, - updateMask, - }; - - // Run request - const response = await aiplatformClient.updateIndexEndpoint(request); - console.log(response); - } - - callUpdateIndexEndpoint(); - // [END aiplatform_v1_generated_IndexEndpointService_UpdateIndexEndpoint_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/index_service.create_index.js b/samples/generated/v1/index_service.create_index.js deleted file mode 100644 index 96c8fac0..00000000 --- a/samples/generated/v1/index_service.create_index.js +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, index) { - // [START aiplatform_v1_generated_IndexService_CreateIndex_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the Index in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The Index to create. - */ - // const index = {} - - // Imports the Aiplatform library - const {IndexServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new IndexServiceClient(); - - async function callCreateIndex() { - // Construct request - const request = { - parent, - index, - }; - - // Run request - const [operation] = await aiplatformClient.createIndex(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateIndex(); - // [END aiplatform_v1_generated_IndexService_CreateIndex_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/index_service.delete_index.js b/samples/generated/v1/index_service.delete_index.js deleted file mode 100644 index 40781b02..00000000 --- a/samples/generated/v1/index_service.delete_index.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_IndexService_DeleteIndex_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Index resource to be deleted. - * Format: - * `projects/{project}/locations/{location}/indexes/{index}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {IndexServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new IndexServiceClient(); - - async function callDeleteIndex() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteIndex(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteIndex(); - // [END aiplatform_v1_generated_IndexService_DeleteIndex_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/index_service.get_index.js b/samples/generated/v1/index_service.get_index.js deleted file mode 100644 index 8f746f02..00000000 --- a/samples/generated/v1/index_service.get_index.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_IndexService_GetIndex_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Index resource. - * Format: - * `projects/{project}/locations/{location}/indexes/{index}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {IndexServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new IndexServiceClient(); - - async function callGetIndex() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getIndex(request); - console.log(response); - } - - callGetIndex(); - // [END aiplatform_v1_generated_IndexService_GetIndex_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/index_service.list_indexes.js b/samples/generated/v1/index_service.list_indexes.js deleted file mode 100644 index bc39d123..00000000 --- a/samples/generated/v1/index_service.list_indexes.js +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_IndexService_ListIndexes_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location from which to list the Indexes. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained via - * ListIndexesResponse.next_page_token google.cloud.aiplatform.v1.ListIndexesResponse.next_page_token of the previous - * IndexService.ListIndexes google.cloud.aiplatform.v1.IndexService.ListIndexes call. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {IndexServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new IndexServiceClient(); - - async function callListIndexes() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listIndexesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListIndexes(); - // [END aiplatform_v1_generated_IndexService_ListIndexes_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/index_service.remove_datapoints.js b/samples/generated/v1/index_service.remove_datapoints.js deleted file mode 100644 index e4fc9bbb..00000000 --- a/samples/generated/v1/index_service.remove_datapoints.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(index) { - // [START aiplatform_v1_generated_IndexService_RemoveDatapoints_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Index resource to be updated. - * Format: - * `projects/{project}/locations/{location}/indexes/{index}` - */ - // const index = 'abc123' - /** - * A list of datapoint ids to be deleted. - */ - // const datapointIds = 'abc123' - - // Imports the Aiplatform library - const {IndexServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new IndexServiceClient(); - - async function callRemoveDatapoints() { - // Construct request - const request = { - index, - }; - - // Run request - const response = await aiplatformClient.removeDatapoints(request); - console.log(response); - } - - callRemoveDatapoints(); - // [END aiplatform_v1_generated_IndexService_RemoveDatapoints_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/index_service.update_index.js b/samples/generated/v1/index_service.update_index.js deleted file mode 100644 index 0cc48da6..00000000 --- a/samples/generated/v1/index_service.update_index.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(index) { - // [START aiplatform_v1_generated_IndexService_UpdateIndex_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Index which updates the resource on the server. - */ - // const index = {} - /** - * The update mask applies to the resource. - * For the `FieldMask` definition, see google.protobuf.FieldMask google.protobuf.FieldMask. - */ - // const updateMask = {} - - // Imports the Aiplatform library - const {IndexServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new IndexServiceClient(); - - async function callUpdateIndex() { - // Construct request - const request = { - index, - }; - - // Run request - const [operation] = await aiplatformClient.updateIndex(request); - const [response] = await operation.promise(); - console.log(response); - } - - callUpdateIndex(); - // [END aiplatform_v1_generated_IndexService_UpdateIndex_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/index_service.upsert_datapoints.js b/samples/generated/v1/index_service.upsert_datapoints.js deleted file mode 100644 index 4e8ce557..00000000 --- a/samples/generated/v1/index_service.upsert_datapoints.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(index) { - // [START aiplatform_v1_generated_IndexService_UpsertDatapoints_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Index resource to be updated. - * Format: - * `projects/{project}/locations/{location}/indexes/{index}` - */ - // const index = 'abc123' - /** - * A list of datapoints to be created/updated. - */ - // const datapoints = 1234 - - // Imports the Aiplatform library - const {IndexServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new IndexServiceClient(); - - async function callUpsertDatapoints() { - // Construct request - const request = { - index, - }; - - // Run request - const response = await aiplatformClient.upsertDatapoints(request); - console.log(response); - } - - callUpsertDatapoints(); - // [END aiplatform_v1_generated_IndexService_UpsertDatapoints_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.cancel_batch_prediction_job.js b/samples/generated/v1/job_service.cancel_batch_prediction_job.js deleted file mode 100644 index 06f335e2..00000000 --- a/samples/generated/v1/job_service.cancel_batch_prediction_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_JobService_CancelBatchPredictionJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the BatchPredictionJob to cancel. - * Format: - * `projects/{project}/locations/{location}/batchPredictionJobs/{batch_prediction_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callCancelBatchPredictionJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.cancelBatchPredictionJob(request); - console.log(response); - } - - callCancelBatchPredictionJob(); - // [END aiplatform_v1_generated_JobService_CancelBatchPredictionJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.cancel_custom_job.js b/samples/generated/v1/job_service.cancel_custom_job.js deleted file mode 100644 index 146ab7d1..00000000 --- a/samples/generated/v1/job_service.cancel_custom_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_JobService_CancelCustomJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the CustomJob to cancel. - * Format: - * `projects/{project}/locations/{location}/customJobs/{custom_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callCancelCustomJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.cancelCustomJob(request); - console.log(response); - } - - callCancelCustomJob(); - // [END aiplatform_v1_generated_JobService_CancelCustomJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.cancel_data_labeling_job.js b/samples/generated/v1/job_service.cancel_data_labeling_job.js deleted file mode 100644 index 8b3cf916..00000000 --- a/samples/generated/v1/job_service.cancel_data_labeling_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_JobService_CancelDataLabelingJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the DataLabelingJob. - * Format: - * `projects/{project}/locations/{location}/dataLabelingJobs/{data_labeling_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callCancelDataLabelingJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.cancelDataLabelingJob(request); - console.log(response); - } - - callCancelDataLabelingJob(); - // [END aiplatform_v1_generated_JobService_CancelDataLabelingJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.cancel_hyperparameter_tuning_job.js b/samples/generated/v1/job_service.cancel_hyperparameter_tuning_job.js deleted file mode 100644 index d22114a6..00000000 --- a/samples/generated/v1/job_service.cancel_hyperparameter_tuning_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_JobService_CancelHyperparameterTuningJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the HyperparameterTuningJob to cancel. - * Format: - * `projects/{project}/locations/{location}/hyperparameterTuningJobs/{hyperparameter_tuning_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callCancelHyperparameterTuningJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.cancelHyperparameterTuningJob(request); - console.log(response); - } - - callCancelHyperparameterTuningJob(); - // [END aiplatform_v1_generated_JobService_CancelHyperparameterTuningJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.create_batch_prediction_job.js b/samples/generated/v1/job_service.create_batch_prediction_job.js deleted file mode 100644 index 1b16ec02..00000000 --- a/samples/generated/v1/job_service.create_batch_prediction_job.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, batchPredictionJob) { - // [START aiplatform_v1_generated_JobService_CreateBatchPredictionJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the BatchPredictionJob in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The BatchPredictionJob to create. - */ - // const batchPredictionJob = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callCreateBatchPredictionJob() { - // Construct request - const request = { - parent, - batchPredictionJob, - }; - - // Run request - const response = await aiplatformClient.createBatchPredictionJob(request); - console.log(response); - } - - callCreateBatchPredictionJob(); - // [END aiplatform_v1_generated_JobService_CreateBatchPredictionJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.create_custom_job.js b/samples/generated/v1/job_service.create_custom_job.js deleted file mode 100644 index 51ebeba2..00000000 --- a/samples/generated/v1/job_service.create_custom_job.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, customJob) { - // [START aiplatform_v1_generated_JobService_CreateCustomJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the CustomJob in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The CustomJob to create. - */ - // const customJob = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callCreateCustomJob() { - // Construct request - const request = { - parent, - customJob, - }; - - // Run request - const response = await aiplatformClient.createCustomJob(request); - console.log(response); - } - - callCreateCustomJob(); - // [END aiplatform_v1_generated_JobService_CreateCustomJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.create_data_labeling_job.js b/samples/generated/v1/job_service.create_data_labeling_job.js deleted file mode 100644 index df0d4bc1..00000000 --- a/samples/generated/v1/job_service.create_data_labeling_job.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, dataLabelingJob) { - // [START aiplatform_v1_generated_JobService_CreateDataLabelingJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The parent of the DataLabelingJob. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The DataLabelingJob to create. - */ - // const dataLabelingJob = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callCreateDataLabelingJob() { - // Construct request - const request = { - parent, - dataLabelingJob, - }; - - // Run request - const response = await aiplatformClient.createDataLabelingJob(request); - console.log(response); - } - - callCreateDataLabelingJob(); - // [END aiplatform_v1_generated_JobService_CreateDataLabelingJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.create_hyperparameter_tuning_job.js b/samples/generated/v1/job_service.create_hyperparameter_tuning_job.js deleted file mode 100644 index 537ed99c..00000000 --- a/samples/generated/v1/job_service.create_hyperparameter_tuning_job.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, hyperparameterTuningJob) { - // [START aiplatform_v1_generated_JobService_CreateHyperparameterTuningJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the HyperparameterTuningJob in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The HyperparameterTuningJob to create. - */ - // const hyperparameterTuningJob = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callCreateHyperparameterTuningJob() { - // Construct request - const request = { - parent, - hyperparameterTuningJob, - }; - - // Run request - const response = await aiplatformClient.createHyperparameterTuningJob(request); - console.log(response); - } - - callCreateHyperparameterTuningJob(); - // [END aiplatform_v1_generated_JobService_CreateHyperparameterTuningJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.create_model_deployment_monitoring_job.js b/samples/generated/v1/job_service.create_model_deployment_monitoring_job.js deleted file mode 100644 index 362a1d9e..00000000 --- a/samples/generated/v1/job_service.create_model_deployment_monitoring_job.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, modelDeploymentMonitoringJob) { - // [START aiplatform_v1_generated_JobService_CreateModelDeploymentMonitoringJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The parent of the ModelDeploymentMonitoringJob. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The ModelDeploymentMonitoringJob to create - */ - // const modelDeploymentMonitoringJob = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callCreateModelDeploymentMonitoringJob() { - // Construct request - const request = { - parent, - modelDeploymentMonitoringJob, - }; - - // Run request - const response = await aiplatformClient.createModelDeploymentMonitoringJob(request); - console.log(response); - } - - callCreateModelDeploymentMonitoringJob(); - // [END aiplatform_v1_generated_JobService_CreateModelDeploymentMonitoringJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.delete_batch_prediction_job.js b/samples/generated/v1/job_service.delete_batch_prediction_job.js deleted file mode 100644 index 4a35d1b0..00000000 --- a/samples/generated/v1/job_service.delete_batch_prediction_job.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_JobService_DeleteBatchPredictionJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the BatchPredictionJob resource to be deleted. - * Format: - * `projects/{project}/locations/{location}/batchPredictionJobs/{batch_prediction_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callDeleteBatchPredictionJob() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteBatchPredictionJob(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteBatchPredictionJob(); - // [END aiplatform_v1_generated_JobService_DeleteBatchPredictionJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.delete_custom_job.js b/samples/generated/v1/job_service.delete_custom_job.js deleted file mode 100644 index 72f14f66..00000000 --- a/samples/generated/v1/job_service.delete_custom_job.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_JobService_DeleteCustomJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the CustomJob resource to be deleted. - * Format: - * `projects/{project}/locations/{location}/customJobs/{custom_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callDeleteCustomJob() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteCustomJob(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteCustomJob(); - // [END aiplatform_v1_generated_JobService_DeleteCustomJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.delete_data_labeling_job.js b/samples/generated/v1/job_service.delete_data_labeling_job.js deleted file mode 100644 index 7df44262..00000000 --- a/samples/generated/v1/job_service.delete_data_labeling_job.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_JobService_DeleteDataLabelingJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the DataLabelingJob to be deleted. - * Format: - * `projects/{project}/locations/{location}/dataLabelingJobs/{data_labeling_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callDeleteDataLabelingJob() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteDataLabelingJob(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteDataLabelingJob(); - // [END aiplatform_v1_generated_JobService_DeleteDataLabelingJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.delete_hyperparameter_tuning_job.js b/samples/generated/v1/job_service.delete_hyperparameter_tuning_job.js deleted file mode 100644 index 6b934dcc..00000000 --- a/samples/generated/v1/job_service.delete_hyperparameter_tuning_job.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_JobService_DeleteHyperparameterTuningJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the HyperparameterTuningJob resource to be deleted. - * Format: - * `projects/{project}/locations/{location}/hyperparameterTuningJobs/{hyperparameter_tuning_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callDeleteHyperparameterTuningJob() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteHyperparameterTuningJob(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteHyperparameterTuningJob(); - // [END aiplatform_v1_generated_JobService_DeleteHyperparameterTuningJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.delete_model_deployment_monitoring_job.js b/samples/generated/v1/job_service.delete_model_deployment_monitoring_job.js deleted file mode 100644 index ce3e2d8f..00000000 --- a/samples/generated/v1/job_service.delete_model_deployment_monitoring_job.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_JobService_DeleteModelDeploymentMonitoringJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the model monitoring job to delete. - * Format: - * `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callDeleteModelDeploymentMonitoringJob() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteModelDeploymentMonitoringJob(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteModelDeploymentMonitoringJob(); - // [END aiplatform_v1_generated_JobService_DeleteModelDeploymentMonitoringJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.get_batch_prediction_job.js b/samples/generated/v1/job_service.get_batch_prediction_job.js deleted file mode 100644 index d006e476..00000000 --- a/samples/generated/v1/job_service.get_batch_prediction_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_JobService_GetBatchPredictionJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the BatchPredictionJob resource. - * Format: - * `projects/{project}/locations/{location}/batchPredictionJobs/{batch_prediction_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callGetBatchPredictionJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getBatchPredictionJob(request); - console.log(response); - } - - callGetBatchPredictionJob(); - // [END aiplatform_v1_generated_JobService_GetBatchPredictionJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.get_custom_job.js b/samples/generated/v1/job_service.get_custom_job.js deleted file mode 100644 index 7a270254..00000000 --- a/samples/generated/v1/job_service.get_custom_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_JobService_GetCustomJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the CustomJob resource. - * Format: - * `projects/{project}/locations/{location}/customJobs/{custom_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callGetCustomJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getCustomJob(request); - console.log(response); - } - - callGetCustomJob(); - // [END aiplatform_v1_generated_JobService_GetCustomJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.get_data_labeling_job.js b/samples/generated/v1/job_service.get_data_labeling_job.js deleted file mode 100644 index 6968b5ff..00000000 --- a/samples/generated/v1/job_service.get_data_labeling_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_JobService_GetDataLabelingJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the DataLabelingJob. - * Format: - * `projects/{project}/locations/{location}/dataLabelingJobs/{data_labeling_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callGetDataLabelingJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getDataLabelingJob(request); - console.log(response); - } - - callGetDataLabelingJob(); - // [END aiplatform_v1_generated_JobService_GetDataLabelingJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.get_hyperparameter_tuning_job.js b/samples/generated/v1/job_service.get_hyperparameter_tuning_job.js deleted file mode 100644 index 3e2455ae..00000000 --- a/samples/generated/v1/job_service.get_hyperparameter_tuning_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_JobService_GetHyperparameterTuningJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the HyperparameterTuningJob resource. - * Format: - * `projects/{project}/locations/{location}/hyperparameterTuningJobs/{hyperparameter_tuning_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callGetHyperparameterTuningJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getHyperparameterTuningJob(request); - console.log(response); - } - - callGetHyperparameterTuningJob(); - // [END aiplatform_v1_generated_JobService_GetHyperparameterTuningJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.get_model_deployment_monitoring_job.js b/samples/generated/v1/job_service.get_model_deployment_monitoring_job.js deleted file mode 100644 index 10bc1e05..00000000 --- a/samples/generated/v1/job_service.get_model_deployment_monitoring_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_JobService_GetModelDeploymentMonitoringJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the ModelDeploymentMonitoringJob. - * Format: - * `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callGetModelDeploymentMonitoringJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getModelDeploymentMonitoringJob(request); - console.log(response); - } - - callGetModelDeploymentMonitoringJob(); - // [END aiplatform_v1_generated_JobService_GetModelDeploymentMonitoringJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.list_batch_prediction_jobs.js b/samples/generated/v1/job_service.list_batch_prediction_jobs.js deleted file mode 100644 index 8b024535..00000000 --- a/samples/generated/v1/job_service.list_batch_prediction_jobs.js +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_JobService_ListBatchPredictionJobs_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to list the BatchPredictionJobs - * from. Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - * Supported fields: - * * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. - * * `model_display_name` supports `=`, `!=` comparisons. - * * `state` supports `=`, `!=` comparisons. - * * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. - * `create_time` must be in RFC 3339 format. - * * `labels` supports general map functions that is: - * `labels.key=value` - key:value equality - * `labels.key:* - key existence - * Some examples of using the filter are: - * * `state="JOB_STATE_SUCCEEDED" AND display_name:"my_job_*"` - * * `state!="JOB_STATE_FAILED" OR display_name="my_job"` - * * `NOT display_name="my_job"` - * * `create_time>"2021-05-18T00:00:00Z"` - * * `labels.keyA=valueA` - * * `labels.keyB:*` - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained via - * ListBatchPredictionJobsResponse.next_page_token google.cloud.aiplatform.v1.ListBatchPredictionJobsResponse.next_page_token of the previous - * JobService.ListBatchPredictionJobs google.cloud.aiplatform.v1.JobService.ListBatchPredictionJobs call. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callListBatchPredictionJobs() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listBatchPredictionJobsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListBatchPredictionJobs(); - // [END aiplatform_v1_generated_JobService_ListBatchPredictionJobs_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.list_custom_jobs.js b/samples/generated/v1/job_service.list_custom_jobs.js deleted file mode 100644 index 3e0b9855..00000000 --- a/samples/generated/v1/job_service.list_custom_jobs.js +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_JobService_ListCustomJobs_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to list the CustomJobs from. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - * Supported fields: - * * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. - * * `state` supports `=`, `!=` comparisons. - * * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. - * `create_time` must be in RFC 3339 format. - * * `labels` supports general map functions that is: - * `labels.key=value` - key:value equality - * `labels.key:* - key existence - * Some examples of using the filter are: - * * `state="JOB_STATE_SUCCEEDED" AND display_name:"my_job_*"` - * * `state!="JOB_STATE_FAILED" OR display_name="my_job"` - * * `NOT display_name="my_job"` - * * `create_time>"2021-05-18T00:00:00Z"` - * * `labels.keyA=valueA` - * * `labels.keyB:*` - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained via - * ListCustomJobsResponse.next_page_token google.cloud.aiplatform.v1.ListCustomJobsResponse.next_page_token of the previous - * JobService.ListCustomJobs google.cloud.aiplatform.v1.JobService.ListCustomJobs call. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callListCustomJobs() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listCustomJobsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListCustomJobs(); - // [END aiplatform_v1_generated_JobService_ListCustomJobs_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.list_data_labeling_jobs.js b/samples/generated/v1/job_service.list_data_labeling_jobs.js deleted file mode 100644 index 35104fac..00000000 --- a/samples/generated/v1/job_service.list_data_labeling_jobs.js +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_JobService_ListDataLabelingJobs_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The parent of the DataLabelingJob. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - * Supported fields: - * * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. - * * `state` supports `=`, `!=` comparisons. - * * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. - * `create_time` must be in RFC 3339 format. - * * `labels` supports general map functions that is: - * `labels.key=value` - key:value equality - * `labels.key:* - key existence - * Some examples of using the filter are: - * * `state="JOB_STATE_SUCCEEDED" AND display_name:"my_job_*"` - * * `state!="JOB_STATE_FAILED" OR display_name="my_job"` - * * `NOT display_name="my_job"` - * * `create_time>"2021-05-18T00:00:00Z"` - * * `labels.keyA=valueA` - * * `labels.keyB:*` - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. FieldMask represents a set of - * symbolic field paths. For example, the mask can be `paths: "name"`. The - * "name" here is a field in DataLabelingJob. - * If this field is not set, all fields of the DataLabelingJob are returned. - */ - // const readMask = {} - /** - * A comma-separated list of fields to order by, sorted in ascending order by - * default. - * Use `desc` after a field name for descending. - */ - // const orderBy = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callListDataLabelingJobs() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listDataLabelingJobsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListDataLabelingJobs(); - // [END aiplatform_v1_generated_JobService_ListDataLabelingJobs_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.list_hyperparameter_tuning_jobs.js b/samples/generated/v1/job_service.list_hyperparameter_tuning_jobs.js deleted file mode 100644 index db8c9721..00000000 --- a/samples/generated/v1/job_service.list_hyperparameter_tuning_jobs.js +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_JobService_ListHyperparameterTuningJobs_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to list the HyperparameterTuningJobs - * from. Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - * Supported fields: - * * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. - * * `state` supports `=`, `!=` comparisons. - * * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. - * `create_time` must be in RFC 3339 format. - * * `labels` supports general map functions that is: - * `labels.key=value` - key:value equality - * `labels.key:* - key existence - * Some examples of using the filter are: - * * `state="JOB_STATE_SUCCEEDED" AND display_name:"my_job_*"` - * * `state!="JOB_STATE_FAILED" OR display_name="my_job"` - * * `NOT display_name="my_job"` - * * `create_time>"2021-05-18T00:00:00Z"` - * * `labels.keyA=valueA` - * * `labels.keyB:*` - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained via - * ListHyperparameterTuningJobsResponse.next_page_token google.cloud.aiplatform.v1.ListHyperparameterTuningJobsResponse.next_page_token of the previous - * JobService.ListHyperparameterTuningJobs google.cloud.aiplatform.v1.JobService.ListHyperparameterTuningJobs call. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callListHyperparameterTuningJobs() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listHyperparameterTuningJobsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListHyperparameterTuningJobs(); - // [END aiplatform_v1_generated_JobService_ListHyperparameterTuningJobs_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.list_model_deployment_monitoring_jobs.js b/samples/generated/v1/job_service.list_model_deployment_monitoring_jobs.js deleted file mode 100644 index d85e8b3e..00000000 --- a/samples/generated/v1/job_service.list_model_deployment_monitoring_jobs.js +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_JobService_ListModelDeploymentMonitoringJobs_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The parent of the ModelDeploymentMonitoringJob. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - * Supported fields: - * * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. - * * `state` supports `=`, `!=` comparisons. - * * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. - * `create_time` must be in RFC 3339 format. - * * `labels` supports general map functions that is: - * `labels.key=value` - key:value equality - * `labels.key:* - key existence - * Some examples of using the filter are: - * * `state="JOB_STATE_SUCCEEDED" AND display_name:"my_job_*"` - * * `state!="JOB_STATE_FAILED" OR display_name="my_job"` - * * `NOT display_name="my_job"` - * * `create_time>"2021-05-18T00:00:00Z"` - * * `labels.keyA=valueA` - * * `labels.keyB:*` - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read - */ - // const readMask = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callListModelDeploymentMonitoringJobs() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listModelDeploymentMonitoringJobsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListModelDeploymentMonitoringJobs(); - // [END aiplatform_v1_generated_JobService_ListModelDeploymentMonitoringJobs_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.pause_model_deployment_monitoring_job.js b/samples/generated/v1/job_service.pause_model_deployment_monitoring_job.js deleted file mode 100644 index 2007cdeb..00000000 --- a/samples/generated/v1/job_service.pause_model_deployment_monitoring_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_JobService_PauseModelDeploymentMonitoringJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the ModelDeploymentMonitoringJob to pause. - * Format: - * `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callPauseModelDeploymentMonitoringJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.pauseModelDeploymentMonitoringJob(request); - console.log(response); - } - - callPauseModelDeploymentMonitoringJob(); - // [END aiplatform_v1_generated_JobService_PauseModelDeploymentMonitoringJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.resume_model_deployment_monitoring_job.js b/samples/generated/v1/job_service.resume_model_deployment_monitoring_job.js deleted file mode 100644 index 06a80f59..00000000 --- a/samples/generated/v1/job_service.resume_model_deployment_monitoring_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_JobService_ResumeModelDeploymentMonitoringJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the ModelDeploymentMonitoringJob to resume. - * Format: - * `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callResumeModelDeploymentMonitoringJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.resumeModelDeploymentMonitoringJob(request); - console.log(response); - } - - callResumeModelDeploymentMonitoringJob(); - // [END aiplatform_v1_generated_JobService_ResumeModelDeploymentMonitoringJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.search_model_deployment_monitoring_stats_anomalies.js b/samples/generated/v1/job_service.search_model_deployment_monitoring_stats_anomalies.js deleted file mode 100644 index f63ad857..00000000 --- a/samples/generated/v1/job_service.search_model_deployment_monitoring_stats_anomalies.js +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(modelDeploymentMonitoringJob, deployedModelId, objectives) { - // [START aiplatform_v1_generated_JobService_SearchModelDeploymentMonitoringStatsAnomalies_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. ModelDeploymentMonitoring Job resource name. - * Format: - * `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}` - */ - // const modelDeploymentMonitoringJob = 'abc123' - /** - * Required. The DeployedModel ID of the - * ModelDeploymentMonitoringObjectiveConfig.deployed_model_id. - */ - // const deployedModelId = 'abc123' - /** - * The feature display name. If specified, only return the stats belonging to - * this feature. Format: - * ModelMonitoringStatsAnomalies.FeatureHistoricStatsAnomalies.feature_display_name google.cloud.aiplatform.v1.ModelMonitoringStatsAnomalies.FeatureHistoricStatsAnomalies.feature_display_name, - * example: "user_destination". - */ - // const featureDisplayName = 'abc123' - /** - * Required. Objectives of the stats to retrieve. - */ - // const objectives = 1234 - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * A page token received from a previous - * JobService.SearchModelDeploymentMonitoringStatsAnomalies google.cloud.aiplatform.v1.JobService.SearchModelDeploymentMonitoringStatsAnomalies - * call. - */ - // const pageToken = 'abc123' - /** - * The earliest timestamp of stats being generated. - * If not set, indicates fetching stats till the earliest possible one. - */ - // const startTime = {} - /** - * The latest timestamp of stats being generated. - * If not set, indicates feching stats till the latest possible one. - */ - // const endTime = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callSearchModelDeploymentMonitoringStatsAnomalies() { - // Construct request - const request = { - modelDeploymentMonitoringJob, - deployedModelId, - objectives, - }; - - // Run request - const iterable = await aiplatformClient.searchModelDeploymentMonitoringStatsAnomaliesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callSearchModelDeploymentMonitoringStatsAnomalies(); - // [END aiplatform_v1_generated_JobService_SearchModelDeploymentMonitoringStatsAnomalies_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/job_service.update_model_deployment_monitoring_job.js b/samples/generated/v1/job_service.update_model_deployment_monitoring_job.js deleted file mode 100644 index 0d3a751f..00000000 --- a/samples/generated/v1/job_service.update_model_deployment_monitoring_job.js +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(modelDeploymentMonitoringJob, updateMask) { - // [START aiplatform_v1_generated_JobService_UpdateModelDeploymentMonitoringJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The model monitoring configuration which replaces the resource on the - * server. - */ - // const modelDeploymentMonitoringJob = {} - /** - * Required. The update mask is used to specify the fields to be overwritten in the - * ModelDeploymentMonitoringJob resource by the update. - * The fields specified in the update_mask are relative to the resource, not - * the full request. A field will be overwritten if it is in the mask. If the - * user does not provide a mask then only the non-empty fields present in the - * request will be overwritten. Set the update_mask to `*` to override all - * fields. - * For the objective config, the user can either provide the update mask for - * model_deployment_monitoring_objective_configs or any combination of its - * nested fields, such as: - * model_deployment_monitoring_objective_configs.objective_config.training_dataset. - * Updatable fields: - * * `display_name` - * * `model_deployment_monitoring_schedule_config` - * * `model_monitoring_alert_config` - * * `logging_sampling_strategy` - * * `labels` - * * `log_ttl` - * * `enable_monitoring_pipeline_logs` - * . and - * * `model_deployment_monitoring_objective_configs` - * . or - * * `model_deployment_monitoring_objective_configs.objective_config.training_dataset` - * * `model_deployment_monitoring_objective_configs.objective_config.training_prediction_skew_detection_config` - * * `model_deployment_monitoring_objective_configs.objective_config.prediction_drift_detection_config` - */ - // const updateMask = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callUpdateModelDeploymentMonitoringJob() { - // Construct request - const request = { - modelDeploymentMonitoringJob, - updateMask, - }; - - // Run request - const [operation] = await aiplatformClient.updateModelDeploymentMonitoringJob(request); - const [response] = await operation.promise(); - console.log(response); - } - - callUpdateModelDeploymentMonitoringJob(); - // [END aiplatform_v1_generated_JobService_UpdateModelDeploymentMonitoringJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.add_context_artifacts_and_executions.js b/samples/generated/v1/metadata_service.add_context_artifacts_and_executions.js deleted file mode 100644 index 6d5ca63e..00000000 --- a/samples/generated/v1/metadata_service.add_context_artifacts_and_executions.js +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(context) { - // [START aiplatform_v1_generated_MetadataService_AddContextArtifactsAndExecutions_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Context that the Artifacts and Executions - * belong to. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}` - */ - // const context = 'abc123' - /** - * The resource names of the Artifacts to attribute to the Context. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/artifacts/{artifact}` - */ - // const artifacts = 'abc123' - /** - * The resource names of the Executions to associate with the - * Context. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}` - */ - // const executions = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callAddContextArtifactsAndExecutions() { - // Construct request - const request = { - context, - }; - - // Run request - const response = await aiplatformClient.addContextArtifactsAndExecutions(request); - console.log(response); - } - - callAddContextArtifactsAndExecutions(); - // [END aiplatform_v1_generated_MetadataService_AddContextArtifactsAndExecutions_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.add_context_children.js b/samples/generated/v1/metadata_service.add_context_children.js deleted file mode 100644 index a9d2b920..00000000 --- a/samples/generated/v1/metadata_service.add_context_children.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(context) { - // [START aiplatform_v1_generated_MetadataService_AddContextChildren_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the parent Context. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}` - */ - // const context = 'abc123' - /** - * The resource names of the child Contexts. - */ - // const childContexts = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callAddContextChildren() { - // Construct request - const request = { - context, - }; - - // Run request - const response = await aiplatformClient.addContextChildren(request); - console.log(response); - } - - callAddContextChildren(); - // [END aiplatform_v1_generated_MetadataService_AddContextChildren_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.add_execution_events.js b/samples/generated/v1/metadata_service.add_execution_events.js deleted file mode 100644 index b029b738..00000000 --- a/samples/generated/v1/metadata_service.add_execution_events.js +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(execution) { - // [START aiplatform_v1_generated_MetadataService_AddExecutionEvents_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Execution that the Events connect - * Artifacts with. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}` - */ - // const execution = 'abc123' - /** - * The Events to create and add. - */ - // const events = 1234 - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callAddExecutionEvents() { - // Construct request - const request = { - execution, - }; - - // Run request - const response = await aiplatformClient.addExecutionEvents(request); - console.log(response); - } - - callAddExecutionEvents(); - // [END aiplatform_v1_generated_MetadataService_AddExecutionEvents_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.create_artifact.js b/samples/generated/v1/metadata_service.create_artifact.js deleted file mode 100644 index 68275734..00000000 --- a/samples/generated/v1/metadata_service.create_artifact.js +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, artifact) { - // [START aiplatform_v1_generated_MetadataService_CreateArtifact_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the MetadataStore where the Artifact should - * be created. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * Required. The Artifact to create. - */ - // const artifact = {} - /** - * The {artifact} portion of the resource name with the format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/artifacts/{artifact}` - * If not provided, the Artifact's ID will be a UUID generated by the service. - * Must be 4-128 characters in length. Valid characters are `/[a-z][0-9]-/`. - * Must be unique across all Artifacts in the parent MetadataStore. (Otherwise - * the request will fail with ALREADY_EXISTS, or PERMISSION_DENIED if the - * caller can't view the preexisting Artifact.) - */ - // const artifactId = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callCreateArtifact() { - // Construct request - const request = { - parent, - artifact, - }; - - // Run request - const response = await aiplatformClient.createArtifact(request); - console.log(response); - } - - callCreateArtifact(); - // [END aiplatform_v1_generated_MetadataService_CreateArtifact_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.create_context.js b/samples/generated/v1/metadata_service.create_context.js deleted file mode 100644 index bf0d9c3d..00000000 --- a/samples/generated/v1/metadata_service.create_context.js +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, context) { - // [START aiplatform_v1_generated_MetadataService_CreateContext_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the MetadataStore where the Context should be - * created. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * Required. The Context to create. - */ - // const context = {} - /** - * The {context} portion of the resource name with the format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}`. - * If not provided, the Context's ID will be a UUID generated by the service. - * Must be 4-128 characters in length. Valid characters are `/[a-z][0-9]-/`. - * Must be unique across all Contexts in the parent MetadataStore. (Otherwise - * the request will fail with ALREADY_EXISTS, or PERMISSION_DENIED if the - * caller can't view the preexisting Context.) - */ - // const contextId = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callCreateContext() { - // Construct request - const request = { - parent, - context, - }; - - // Run request - const response = await aiplatformClient.createContext(request); - console.log(response); - } - - callCreateContext(); - // [END aiplatform_v1_generated_MetadataService_CreateContext_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.create_execution.js b/samples/generated/v1/metadata_service.create_execution.js deleted file mode 100644 index eb0a6ae3..00000000 --- a/samples/generated/v1/metadata_service.create_execution.js +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, execution) { - // [START aiplatform_v1_generated_MetadataService_CreateExecution_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the MetadataStore where the Execution should - * be created. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * Required. The Execution to create. - */ - // const execution = {} - /** - * The {execution} portion of the resource name with the format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}` - * If not provided, the Execution's ID will be a UUID generated by the - * service. - * Must be 4-128 characters in length. Valid characters are `/[a-z][0-9]-/`. - * Must be unique across all Executions in the parent MetadataStore. - * (Otherwise the request will fail with ALREADY_EXISTS, or PERMISSION_DENIED - * if the caller can't view the preexisting Execution.) - */ - // const executionId = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callCreateExecution() { - // Construct request - const request = { - parent, - execution, - }; - - // Run request - const response = await aiplatformClient.createExecution(request); - console.log(response); - } - - callCreateExecution(); - // [END aiplatform_v1_generated_MetadataService_CreateExecution_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.create_metadata_schema.js b/samples/generated/v1/metadata_service.create_metadata_schema.js deleted file mode 100644 index c1a796d9..00000000 --- a/samples/generated/v1/metadata_service.create_metadata_schema.js +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, metadataSchema) { - // [START aiplatform_v1_generated_MetadataService_CreateMetadataSchema_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the MetadataStore where the MetadataSchema should - * be created. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * Required. The MetadataSchema to create. - */ - // const metadataSchema = {} - /** - * The {metadata_schema} portion of the resource name with the format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/metadataSchemas/{metadataschema}` - * If not provided, the MetadataStore's ID will be a UUID generated by the - * service. - * Must be 4-128 characters in length. Valid characters are `/[a-z][0-9]-/`. - * Must be unique across all MetadataSchemas in the parent Location. - * (Otherwise the request will fail with ALREADY_EXISTS, or PERMISSION_DENIED - * if the caller can't view the preexisting MetadataSchema.) - */ - // const metadataSchemaId = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callCreateMetadataSchema() { - // Construct request - const request = { - parent, - metadataSchema, - }; - - // Run request - const response = await aiplatformClient.createMetadataSchema(request); - console.log(response); - } - - callCreateMetadataSchema(); - // [END aiplatform_v1_generated_MetadataService_CreateMetadataSchema_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.create_metadata_store.js b/samples/generated/v1/metadata_service.create_metadata_store.js deleted file mode 100644 index 2767869b..00000000 --- a/samples/generated/v1/metadata_service.create_metadata_store.js +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, metadataStore) { - // [START aiplatform_v1_generated_MetadataService_CreateMetadataStore_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location where the MetadataStore should - * be created. - * Format: `projects/{project}/locations/{location}/` - */ - // const parent = 'abc123' - /** - * Required. The MetadataStore to create. - */ - // const metadataStore = {} - /** - * The {metadatastore} portion of the resource name with the format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - * If not provided, the MetadataStore's ID will be a UUID generated by the - * service. - * Must be 4-128 characters in length. Valid characters are `/[a-z][0-9]-/`. - * Must be unique across all MetadataStores in the parent Location. - * (Otherwise the request will fail with ALREADY_EXISTS, or PERMISSION_DENIED - * if the caller can't view the preexisting MetadataStore.) - */ - // const metadataStoreId = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callCreateMetadataStore() { - // Construct request - const request = { - parent, - metadataStore, - }; - - // Run request - const [operation] = await aiplatformClient.createMetadataStore(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateMetadataStore(); - // [END aiplatform_v1_generated_MetadataService_CreateMetadataStore_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.delete_artifact.js b/samples/generated/v1/metadata_service.delete_artifact.js deleted file mode 100644 index 54f61b88..00000000 --- a/samples/generated/v1/metadata_service.delete_artifact.js +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_MetadataService_DeleteArtifact_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Artifact to delete. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/artifacts/{artifact}` - */ - // const name = 'abc123' - /** - * Optional. The etag of the Artifact to delete. - * If this is provided, it must match the server's etag. Otherwise, the - * request will fail with a FAILED_PRECONDITION. - */ - // const etag = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callDeleteArtifact() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteArtifact(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteArtifact(); - // [END aiplatform_v1_generated_MetadataService_DeleteArtifact_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.delete_context.js b/samples/generated/v1/metadata_service.delete_context.js deleted file mode 100644 index 07840fb1..00000000 --- a/samples/generated/v1/metadata_service.delete_context.js +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_MetadataService_DeleteContext_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Context to delete. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}` - */ - // const name = 'abc123' - /** - * The force deletion semantics is still undefined. - * Users should not use this field. - */ - // const force = true - /** - * Optional. The etag of the Context to delete. - * If this is provided, it must match the server's etag. Otherwise, the - * request will fail with a FAILED_PRECONDITION. - */ - // const etag = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callDeleteContext() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteContext(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteContext(); - // [END aiplatform_v1_generated_MetadataService_DeleteContext_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.delete_execution.js b/samples/generated/v1/metadata_service.delete_execution.js deleted file mode 100644 index bb4423a3..00000000 --- a/samples/generated/v1/metadata_service.delete_execution.js +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_MetadataService_DeleteExecution_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Execution to delete. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}` - */ - // const name = 'abc123' - /** - * Optional. The etag of the Execution to delete. - * If this is provided, it must match the server's etag. Otherwise, the - * request will fail with a FAILED_PRECONDITION. - */ - // const etag = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callDeleteExecution() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteExecution(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteExecution(); - // [END aiplatform_v1_generated_MetadataService_DeleteExecution_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.delete_metadata_store.js b/samples/generated/v1/metadata_service.delete_metadata_store.js deleted file mode 100644 index 8e547f47..00000000 --- a/samples/generated/v1/metadata_service.delete_metadata_store.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_MetadataService_DeleteMetadataStore_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the MetadataStore to delete. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callDeleteMetadataStore() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteMetadataStore(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteMetadataStore(); - // [END aiplatform_v1_generated_MetadataService_DeleteMetadataStore_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.get_artifact.js b/samples/generated/v1/metadata_service.get_artifact.js deleted file mode 100644 index d84a6aaf..00000000 --- a/samples/generated/v1/metadata_service.get_artifact.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_MetadataService_GetArtifact_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Artifact to retrieve. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/artifacts/{artifact}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callGetArtifact() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getArtifact(request); - console.log(response); - } - - callGetArtifact(); - // [END aiplatform_v1_generated_MetadataService_GetArtifact_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.get_context.js b/samples/generated/v1/metadata_service.get_context.js deleted file mode 100644 index 6f6cb2f0..00000000 --- a/samples/generated/v1/metadata_service.get_context.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_MetadataService_GetContext_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Context to retrieve. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callGetContext() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getContext(request); - console.log(response); - } - - callGetContext(); - // [END aiplatform_v1_generated_MetadataService_GetContext_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.get_execution.js b/samples/generated/v1/metadata_service.get_execution.js deleted file mode 100644 index cb12920c..00000000 --- a/samples/generated/v1/metadata_service.get_execution.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_MetadataService_GetExecution_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Execution to retrieve. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callGetExecution() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getExecution(request); - console.log(response); - } - - callGetExecution(); - // [END aiplatform_v1_generated_MetadataService_GetExecution_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.get_metadata_schema.js b/samples/generated/v1/metadata_service.get_metadata_schema.js deleted file mode 100644 index 673d1831..00000000 --- a/samples/generated/v1/metadata_service.get_metadata_schema.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_MetadataService_GetMetadataSchema_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the MetadataSchema to retrieve. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/metadataSchemas/{metadataschema}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callGetMetadataSchema() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getMetadataSchema(request); - console.log(response); - } - - callGetMetadataSchema(); - // [END aiplatform_v1_generated_MetadataService_GetMetadataSchema_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.get_metadata_store.js b/samples/generated/v1/metadata_service.get_metadata_store.js deleted file mode 100644 index fbd429e3..00000000 --- a/samples/generated/v1/metadata_service.get_metadata_store.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_MetadataService_GetMetadataStore_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the MetadataStore to retrieve. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callGetMetadataStore() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getMetadataStore(request); - console.log(response); - } - - callGetMetadataStore(); - // [END aiplatform_v1_generated_MetadataService_GetMetadataStore_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.list_artifacts.js b/samples/generated/v1/metadata_service.list_artifacts.js deleted file mode 100644 index 01c231f9..00000000 --- a/samples/generated/v1/metadata_service.list_artifacts.js +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_MetadataService_ListArtifacts_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The MetadataStore whose Artifacts should be listed. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * The maximum number of Artifacts to return. The service may return fewer. - * Must be in range 1-1000, inclusive. Defaults to 100. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous MetadataService.ListArtifacts google.cloud.aiplatform.v1.MetadataService.ListArtifacts - * call. Provide this to retrieve the subsequent page. - * When paginating, all other provided parameters must match the call that - * provided the page token. (Otherwise the request will fail with - * INVALID_ARGUMENT error.) - */ - // const pageToken = 'abc123' - /** - * Filter specifying the boolean condition for the Artifacts to satisfy in - * order to be part of the result set. - * The syntax to define filter query is based on https://google.aip.dev/160. - * The supported set of filters include the following: - * * **Attribute filtering**: - * For example: `display_name = "test"`. - * Supported fields include: `name`, `display_name`, `uri`, `state`, - * `schema_title`, `create_time`, and `update_time`. - * Time fields, such as `create_time` and `update_time`, require values - * specified in RFC-3339 format. - * For example: `create_time = "2020-11-19T11:30:00-04:00"` - * * **Metadata field**: - * To filter on metadata fields use traversal operation as follows: - * `metadata..`. - * For example: `metadata.field_1.number_value = 10.0` - * * **Context based filtering**: - * To filter Artifacts based on the contexts to which they belong, use the - * function operator with the full resource name - * `in_context()`. - * For example: - * `in_context("projects//locations//metadataStores//contexts/")` - * Each of the above supported filter types can be combined together using - * logical operators (`AND` & `OR`). - * For example: `display_name = "test" AND metadata.field1.bool_value = true`. - */ - // const filter = 'abc123' - /** - * How the list of messages is ordered. Specify the values to order by and an - * ordering operation. The default sorting order is ascending. To specify - * descending order for a field, users append a " desc" suffix; for example: - * "foo desc, bar". - * Subfields are specified with a `.` character, such as foo.bar. - * see https://google.aip.dev/132#ordering for more details. - */ - // const orderBy = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callListArtifacts() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listArtifactsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListArtifacts(); - // [END aiplatform_v1_generated_MetadataService_ListArtifacts_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.list_contexts.js b/samples/generated/v1/metadata_service.list_contexts.js deleted file mode 100644 index fb467faa..00000000 --- a/samples/generated/v1/metadata_service.list_contexts.js +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_MetadataService_ListContexts_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The MetadataStore whose Contexts should be listed. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * The maximum number of Contexts to return. The service may return fewer. - * Must be in range 1-1000, inclusive. Defaults to 100. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous MetadataService.ListContexts google.cloud.aiplatform.v1.MetadataService.ListContexts - * call. Provide this to retrieve the subsequent page. - * When paginating, all other provided parameters must match the call that - * provided the page token. (Otherwise the request will fail with - * INVALID_ARGUMENT error.) - */ - // const pageToken = 'abc123' - /** - * Filter specifying the boolean condition for the Contexts to satisfy in - * order to be part of the result set. - * The syntax to define filter query is based on https://google.aip.dev/160. - * Following are the supported set of filters: - * * **Attribute filtering**: - * For example: `display_name = "test"`. - * Supported fields include: `name`, `display_name`, `schema_title`, - * `create_time`, and `update_time`. - * Time fields, such as `create_time` and `update_time`, require values - * specified in RFC-3339 format. - * For example: `create_time = "2020-11-19T11:30:00-04:00"`. - * * **Metadata field**: - * To filter on metadata fields use traversal operation as follows: - * `metadata..`. - * For example: `metadata.field_1.number_value = 10.0`. - * * **Parent Child filtering**: - * To filter Contexts based on parent-child relationship use the HAS - * operator as follows: - * ``` - * parent_contexts: - * "projects//locations//metadataStores//contexts/" - * child_contexts: - * "projects//locations//metadataStores//contexts/" - * ``` - * Each of the above supported filters can be combined together using - * logical operators (`AND` & `OR`). - * For example: `display_name = "test" AND metadata.field1.bool_value = true`. - */ - // const filter = 'abc123' - /** - * How the list of messages is ordered. Specify the values to order by and an - * ordering operation. The default sorting order is ascending. To specify - * descending order for a field, users append a " desc" suffix; for example: - * "foo desc, bar". - * Subfields are specified with a `.` character, such as foo.bar. - * see https://google.aip.dev/132#ordering for more details. - */ - // const orderBy = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callListContexts() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listContextsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListContexts(); - // [END aiplatform_v1_generated_MetadataService_ListContexts_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.list_executions.js b/samples/generated/v1/metadata_service.list_executions.js deleted file mode 100644 index 721df98b..00000000 --- a/samples/generated/v1/metadata_service.list_executions.js +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_MetadataService_ListExecutions_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The MetadataStore whose Executions should be listed. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * The maximum number of Executions to return. The service may return fewer. - * Must be in range 1-1000, inclusive. Defaults to 100. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous MetadataService.ListExecutions google.cloud.aiplatform.v1.MetadataService.ListExecutions - * call. Provide this to retrieve the subsequent page. - * When paginating, all other provided parameters must match the call that - * provided the page token. (Otherwise the request will fail with an - * INVALID_ARGUMENT error.) - */ - // const pageToken = 'abc123' - /** - * Filter specifying the boolean condition for the Executions to satisfy in - * order to be part of the result set. - * The syntax to define filter query is based on https://google.aip.dev/160. - * Following are the supported set of filters: - * * **Attribute filtering**: - * For example: `display_name = "test"`. - * Supported fields include: `name`, `display_name`, `state`, - * `schema_title`, `create_time`, and `update_time`. - * Time fields, such as `create_time` and `update_time`, require values - * specified in RFC-3339 format. - * For example: `create_time = "2020-11-19T11:30:00-04:00"`. - * * **Metadata field**: - * To filter on metadata fields use traversal operation as follows: - * `metadata..` - * For example: `metadata.field_1.number_value = 10.0` - * * **Context based filtering**: - * To filter Executions based on the contexts to which they belong use - * the function operator with the full resource name: - * `in_context()`. - * For example: - * `in_context("projects//locations//metadataStores//contexts/")` - * Each of the above supported filters can be combined together using - * logical operators (`AND` & `OR`). - * For example: `display_name = "test" AND metadata.field1.bool_value = true`. - */ - // const filter = 'abc123' - /** - * How the list of messages is ordered. Specify the values to order by and an - * ordering operation. The default sorting order is ascending. To specify - * descending order for a field, users append a " desc" suffix; for example: - * "foo desc, bar". - * Subfields are specified with a `.` character, such as foo.bar. - * see https://google.aip.dev/132#ordering for more details. - */ - // const orderBy = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callListExecutions() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listExecutionsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListExecutions(); - // [END aiplatform_v1_generated_MetadataService_ListExecutions_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.list_metadata_schemas.js b/samples/generated/v1/metadata_service.list_metadata_schemas.js deleted file mode 100644 index 9d3f9726..00000000 --- a/samples/generated/v1/metadata_service.list_metadata_schemas.js +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_MetadataService_ListMetadataSchemas_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The MetadataStore whose MetadataSchemas should be listed. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * The maximum number of MetadataSchemas to return. The service may return - * fewer. - * Must be in range 1-1000, inclusive. Defaults to 100. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * MetadataService.ListMetadataSchemas google.cloud.aiplatform.v1.MetadataService.ListMetadataSchemas call. Provide this to retrieve the - * next page. - * When paginating, all other provided parameters must match the call that - * provided the page token. (Otherwise the request will fail with - * INVALID_ARGUMENT error.) - */ - // const pageToken = 'abc123' - /** - * A query to filter available MetadataSchemas for matching results. - */ - // const filter = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callListMetadataSchemas() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listMetadataSchemasAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListMetadataSchemas(); - // [END aiplatform_v1_generated_MetadataService_ListMetadataSchemas_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.list_metadata_stores.js b/samples/generated/v1/metadata_service.list_metadata_stores.js deleted file mode 100644 index ad311f16..00000000 --- a/samples/generated/v1/metadata_service.list_metadata_stores.js +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_MetadataService_ListMetadataStores_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Location whose MetadataStores should be listed. - * Format: - * `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * The maximum number of Metadata Stores to return. The service may return - * fewer. - * Must be in range 1-1000, inclusive. Defaults to 100. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * MetadataService.ListMetadataStores google.cloud.aiplatform.v1.MetadataService.ListMetadataStores call. Provide this to retrieve the - * subsequent page. - * When paginating, all other provided parameters must match the call that - * provided the page token. (Otherwise the request will fail with - * INVALID_ARGUMENT error.) - */ - // const pageToken = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callListMetadataStores() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listMetadataStoresAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListMetadataStores(); - // [END aiplatform_v1_generated_MetadataService_ListMetadataStores_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.purge_artifacts.js b/samples/generated/v1/metadata_service.purge_artifacts.js deleted file mode 100644 index 25744524..00000000 --- a/samples/generated/v1/metadata_service.purge_artifacts.js +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, filter) { - // [START aiplatform_v1_generated_MetadataService_PurgeArtifacts_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The metadata store to purge Artifacts from. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * Required. A required filter matching the Artifacts to be purged. - * E.g., `update_time <= 2020-11-19T11:30:00-04:00`. - */ - // const filter = 'abc123' - /** - * Optional. Flag to indicate to actually perform the purge. - * If `force` is set to false, the method will return a sample of - * Artifact names that would be deleted. - */ - // const force = true - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callPurgeArtifacts() { - // Construct request - const request = { - parent, - filter, - }; - - // Run request - const [operation] = await aiplatformClient.purgeArtifacts(request); - const [response] = await operation.promise(); - console.log(response); - } - - callPurgeArtifacts(); - // [END aiplatform_v1_generated_MetadataService_PurgeArtifacts_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.purge_contexts.js b/samples/generated/v1/metadata_service.purge_contexts.js deleted file mode 100644 index 4ec1aef6..00000000 --- a/samples/generated/v1/metadata_service.purge_contexts.js +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, filter) { - // [START aiplatform_v1_generated_MetadataService_PurgeContexts_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The metadata store to purge Contexts from. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * Required. A required filter matching the Contexts to be purged. - * E.g., `update_time <= 2020-11-19T11:30:00-04:00`. - */ - // const filter = 'abc123' - /** - * Optional. Flag to indicate to actually perform the purge. - * If `force` is set to false, the method will return a sample of - * Context names that would be deleted. - */ - // const force = true - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callPurgeContexts() { - // Construct request - const request = { - parent, - filter, - }; - - // Run request - const [operation] = await aiplatformClient.purgeContexts(request); - const [response] = await operation.promise(); - console.log(response); - } - - callPurgeContexts(); - // [END aiplatform_v1_generated_MetadataService_PurgeContexts_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.purge_executions.js b/samples/generated/v1/metadata_service.purge_executions.js deleted file mode 100644 index f33acefe..00000000 --- a/samples/generated/v1/metadata_service.purge_executions.js +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, filter) { - // [START aiplatform_v1_generated_MetadataService_PurgeExecutions_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The metadata store to purge Executions from. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * Required. A required filter matching the Executions to be purged. - * E.g., `update_time <= 2020-11-19T11:30:00-04:00`. - */ - // const filter = 'abc123' - /** - * Optional. Flag to indicate to actually perform the purge. - * If `force` is set to false, the method will return a sample of - * Execution names that would be deleted. - */ - // const force = true - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callPurgeExecutions() { - // Construct request - const request = { - parent, - filter, - }; - - // Run request - const [operation] = await aiplatformClient.purgeExecutions(request); - const [response] = await operation.promise(); - console.log(response); - } - - callPurgeExecutions(); - // [END aiplatform_v1_generated_MetadataService_PurgeExecutions_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.query_artifact_lineage_subgraph.js b/samples/generated/v1/metadata_service.query_artifact_lineage_subgraph.js deleted file mode 100644 index 267069f3..00000000 --- a/samples/generated/v1/metadata_service.query_artifact_lineage_subgraph.js +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(artifact) { - // [START aiplatform_v1_generated_MetadataService_QueryArtifactLineageSubgraph_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Artifact whose Lineage needs to be retrieved as a - * LineageSubgraph. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/artifacts/{artifact}` - * The request may error with FAILED_PRECONDITION if the number of Artifacts, - * the number of Executions, or the number of Events that would be returned - * for the Context exceeds 1000. - */ - // const artifact = 'abc123' - /** - * Specifies the size of the lineage graph in terms of number of hops from the - * specified artifact. - * Negative Value: INVALID_ARGUMENT error is returned - * 0: Only input artifact is returned. - * No value: Transitive closure is performed to return the complete graph. - */ - // const maxHops = 1234 - /** - * Filter specifying the boolean condition for the Artifacts to satisfy in - * order to be part of the Lineage Subgraph. - * The syntax to define filter query is based on https://google.aip.dev/160. - * The supported set of filters include the following: - * * **Attribute filtering**: - * For example: `display_name = "test"` - * Supported fields include: `name`, `display_name`, `uri`, `state`, - * `schema_title`, `create_time`, and `update_time`. - * Time fields, such as `create_time` and `update_time`, require values - * specified in RFC-3339 format. - * For example: `create_time = "2020-11-19T11:30:00-04:00"` - * * **Metadata field**: - * To filter on metadata fields use traversal operation as follows: - * `metadata..`. - * For example: `metadata.field_1.number_value = 10.0` - * Each of the above supported filter types can be combined together using - * logical operators (`AND` & `OR`). - * For example: `display_name = "test" AND metadata.field1.bool_value = true`. - */ - // const filter = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callQueryArtifactLineageSubgraph() { - // Construct request - const request = { - artifact, - }; - - // Run request - const response = await aiplatformClient.queryArtifactLineageSubgraph(request); - console.log(response); - } - - callQueryArtifactLineageSubgraph(); - // [END aiplatform_v1_generated_MetadataService_QueryArtifactLineageSubgraph_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.query_context_lineage_subgraph.js b/samples/generated/v1/metadata_service.query_context_lineage_subgraph.js deleted file mode 100644 index d220da30..00000000 --- a/samples/generated/v1/metadata_service.query_context_lineage_subgraph.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(context) { - // [START aiplatform_v1_generated_MetadataService_QueryContextLineageSubgraph_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Context whose Artifacts and Executions - * should be retrieved as a LineageSubgraph. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}` - * The request may error with FAILED_PRECONDITION if the number of Artifacts, - * the number of Executions, or the number of Events that would be returned - * for the Context exceeds 1000. - */ - // const context = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callQueryContextLineageSubgraph() { - // Construct request - const request = { - context, - }; - - // Run request - const response = await aiplatformClient.queryContextLineageSubgraph(request); - console.log(response); - } - - callQueryContextLineageSubgraph(); - // [END aiplatform_v1_generated_MetadataService_QueryContextLineageSubgraph_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.query_execution_inputs_and_outputs.js b/samples/generated/v1/metadata_service.query_execution_inputs_and_outputs.js deleted file mode 100644 index f26601d3..00000000 --- a/samples/generated/v1/metadata_service.query_execution_inputs_and_outputs.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(execution) { - // [START aiplatform_v1_generated_MetadataService_QueryExecutionInputsAndOutputs_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Execution whose input and output Artifacts should - * be retrieved as a LineageSubgraph. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}` - */ - // const execution = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callQueryExecutionInputsAndOutputs() { - // Construct request - const request = { - execution, - }; - - // Run request - const response = await aiplatformClient.queryExecutionInputsAndOutputs(request); - console.log(response); - } - - callQueryExecutionInputsAndOutputs(); - // [END aiplatform_v1_generated_MetadataService_QueryExecutionInputsAndOutputs_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.remove_context_children.js b/samples/generated/v1/metadata_service.remove_context_children.js deleted file mode 100644 index be6ef239..00000000 --- a/samples/generated/v1/metadata_service.remove_context_children.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(context) { - // [START aiplatform_v1_generated_MetadataService_RemoveContextChildren_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the parent Context. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}` - */ - // const context = 'abc123' - /** - * The resource names of the child Contexts. - */ - // const childContexts = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callRemoveContextChildren() { - // Construct request - const request = { - context, - }; - - // Run request - const response = await aiplatformClient.removeContextChildren(request); - console.log(response); - } - - callRemoveContextChildren(); - // [END aiplatform_v1_generated_MetadataService_RemoveContextChildren_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.update_artifact.js b/samples/generated/v1/metadata_service.update_artifact.js deleted file mode 100644 index b448b66b..00000000 --- a/samples/generated/v1/metadata_service.update_artifact.js +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(artifact) { - // [START aiplatform_v1_generated_MetadataService_UpdateArtifact_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Artifact containing updates. - * The Artifact's Artifact.name google.cloud.aiplatform.v1.Artifact.name field is used to identify the Artifact to - * be updated. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/artifacts/{artifact}` - */ - // const artifact = {} - /** - * Optional. A FieldMask indicating which fields should be updated. - * Functionality of this field is not yet supported. - */ - // const updateMask = {} - /** - * If set to true, and the Artifact google.cloud.aiplatform.v1.Artifact is not found, a new Artifact google.cloud.aiplatform.v1.Artifact is - * created. - */ - // const allowMissing = true - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callUpdateArtifact() { - // Construct request - const request = { - artifact, - }; - - // Run request - const response = await aiplatformClient.updateArtifact(request); - console.log(response); - } - - callUpdateArtifact(); - // [END aiplatform_v1_generated_MetadataService_UpdateArtifact_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.update_context.js b/samples/generated/v1/metadata_service.update_context.js deleted file mode 100644 index d1f592fa..00000000 --- a/samples/generated/v1/metadata_service.update_context.js +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(context) { - // [START aiplatform_v1_generated_MetadataService_UpdateContext_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Context containing updates. - * The Context's Context.name google.cloud.aiplatform.v1.Context.name field is used to identify the Context to be - * updated. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}` - */ - // const context = {} - /** - * Optional. A FieldMask indicating which fields should be updated. - * Functionality of this field is not yet supported. - */ - // const updateMask = {} - /** - * If set to true, and the Context google.cloud.aiplatform.v1.Context is not found, a new Context google.cloud.aiplatform.v1.Context is - * created. - */ - // const allowMissing = true - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callUpdateContext() { - // Construct request - const request = { - context, - }; - - // Run request - const response = await aiplatformClient.updateContext(request); - console.log(response); - } - - callUpdateContext(); - // [END aiplatform_v1_generated_MetadataService_UpdateContext_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/metadata_service.update_execution.js b/samples/generated/v1/metadata_service.update_execution.js deleted file mode 100644 index be8ad363..00000000 --- a/samples/generated/v1/metadata_service.update_execution.js +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(execution) { - // [START aiplatform_v1_generated_MetadataService_UpdateExecution_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Execution containing updates. - * The Execution's Execution.name google.cloud.aiplatform.v1.Execution.name field is used to identify the Execution - * to be updated. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}` - */ - // const execution = {} - /** - * Optional. A FieldMask indicating which fields should be updated. - * Functionality of this field is not yet supported. - */ - // const updateMask = {} - /** - * If set to true, and the Execution google.cloud.aiplatform.v1.Execution is not found, a new Execution google.cloud.aiplatform.v1.Execution - * is created. - */ - // const allowMissing = true - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callUpdateExecution() { - // Construct request - const request = { - execution, - }; - - // Run request - const response = await aiplatformClient.updateExecution(request); - console.log(response); - } - - callUpdateExecution(); - // [END aiplatform_v1_generated_MetadataService_UpdateExecution_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/migration_service.batch_migrate_resources.js b/samples/generated/v1/migration_service.batch_migrate_resources.js deleted file mode 100644 index 54ae5c5d..00000000 --- a/samples/generated/v1/migration_service.batch_migrate_resources.js +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, migrateResourceRequests) { - // [START aiplatform_v1_generated_MigrationService_BatchMigrateResources_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The location of the migrated resource will live in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The request messages specifying the resources to migrate. - * They must be in the same location as the destination. - * Up to 50 resources can be migrated in one batch. - */ - // const migrateResourceRequests = 1234 - - // Imports the Aiplatform library - const {MigrationServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MigrationServiceClient(); - - async function callBatchMigrateResources() { - // Construct request - const request = { - parent, - migrateResourceRequests, - }; - - // Run request - const [operation] = await aiplatformClient.batchMigrateResources(request); - const [response] = await operation.promise(); - console.log(response); - } - - callBatchMigrateResources(); - // [END aiplatform_v1_generated_MigrationService_BatchMigrateResources_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/migration_service.search_migratable_resources.js b/samples/generated/v1/migration_service.search_migratable_resources.js deleted file mode 100644 index a00413f2..00000000 --- a/samples/generated/v1/migration_service.search_migratable_resources.js +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_MigrationService_SearchMigratableResources_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The location that the migratable resources should be searched from. - * It's the Vertex AI location that the resources can be migrated to, not - * the resources' original location. - * Format: - * `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * The standard page size. - * The default and maximum value is 100. - */ - // const pageSize = 1234 - /** - * The standard page token. - */ - // const pageToken = 'abc123' - /** - * A filter for your search. You can use the following types of filters: - * * Resource type filters. The following strings filter for a specific type - * of MigratableResource google.cloud.aiplatform.v1.MigratableResource: - * * `ml_engine_model_version:*` - * * `automl_model:*` - * * `automl_dataset:*` - * * `data_labeling_dataset:*` - * * "Migrated or not" filters. The following strings filter for resources - * that either have or have not already been migrated: - * * `last_migrate_time:*` filters for migrated resources. - * * `NOT last_migrate_time:*` filters for not yet migrated resources. - */ - // const filter = 'abc123' - - // Imports the Aiplatform library - const {MigrationServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new MigrationServiceClient(); - - async function callSearchMigratableResources() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.searchMigratableResourcesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callSearchMigratableResources(); - // [END aiplatform_v1_generated_MigrationService_SearchMigratableResources_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/model_service.batch_import_model_evaluation_slices.js b/samples/generated/v1/model_service.batch_import_model_evaluation_slices.js deleted file mode 100644 index 9e174fdc..00000000 --- a/samples/generated/v1/model_service.batch_import_model_evaluation_slices.js +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, modelEvaluationSlices) { - // [START aiplatform_v1_generated_ModelService_BatchImportModelEvaluationSlices_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the parent ModelEvaluation resource. - * Format: - * `projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}` - */ - // const parent = 'abc123' - /** - * Required. Model evaluation slice resource to be imported. - */ - // const modelEvaluationSlices = 1234 - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callBatchImportModelEvaluationSlices() { - // Construct request - const request = { - parent, - modelEvaluationSlices, - }; - - // Run request - const response = await aiplatformClient.batchImportModelEvaluationSlices(request); - console.log(response); - } - - callBatchImportModelEvaluationSlices(); - // [END aiplatform_v1_generated_ModelService_BatchImportModelEvaluationSlices_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/model_service.delete_model.js b/samples/generated/v1/model_service.delete_model.js deleted file mode 100644 index 15a3fd79..00000000 --- a/samples/generated/v1/model_service.delete_model.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_ModelService_DeleteModel_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Model resource to be deleted. - * Format: `projects/{project}/locations/{location}/models/{model}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callDeleteModel() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteModel(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteModel(); - // [END aiplatform_v1_generated_ModelService_DeleteModel_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/model_service.delete_model_version.js b/samples/generated/v1/model_service.delete_model_version.js deleted file mode 100644 index 333d8f96..00000000 --- a/samples/generated/v1/model_service.delete_model_version.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_ModelService_DeleteModelVersion_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the model version to be deleted, with a version ID explicitly - * included. - * Example: `projects/{project}/locations/{location}/models/{model}@1234` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callDeleteModelVersion() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteModelVersion(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteModelVersion(); - // [END aiplatform_v1_generated_ModelService_DeleteModelVersion_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/model_service.export_model.js b/samples/generated/v1/model_service.export_model.js deleted file mode 100644 index 41567d3b..00000000 --- a/samples/generated/v1/model_service.export_model.js +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name, outputConfig) { - // [START aiplatform_v1_generated_ModelService_ExportModel_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Model to export. - * The resource name may contain version id or version alias to specify the - * version, if no version is specified, the default version will be exported. - */ - // const name = 'abc123' - /** - * Required. The desired output location and configuration. - */ - // const outputConfig = {} - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callExportModel() { - // Construct request - const request = { - name, - outputConfig, - }; - - // Run request - const [operation] = await aiplatformClient.exportModel(request); - const [response] = await operation.promise(); - console.log(response); - } - - callExportModel(); - // [END aiplatform_v1_generated_ModelService_ExportModel_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/model_service.get_model.js b/samples/generated/v1/model_service.get_model.js deleted file mode 100644 index 1784f5e1..00000000 --- a/samples/generated/v1/model_service.get_model.js +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_ModelService_GetModel_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Model resource. - * Format: `projects/{project}/locations/{location}/models/{model}` - * In order to retrieve a specific version of the model, also provide - * the version ID or version alias. - * Example: `projects/{project}/locations/{location}/models/{model}@2` - * or - * `projects/{project}/locations/{location}/models/{model}@golden` - * If no version ID or alias is specified, the "default" version will be - * returned. The "default" version alias is created for the first version of - * the model, and can be moved to other versions later on. There will be - * exactly one default version. - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callGetModel() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getModel(request); - console.log(response); - } - - callGetModel(); - // [END aiplatform_v1_generated_ModelService_GetModel_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/model_service.get_model_evaluation.js b/samples/generated/v1/model_service.get_model_evaluation.js deleted file mode 100644 index 071ae0cf..00000000 --- a/samples/generated/v1/model_service.get_model_evaluation.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_ModelService_GetModelEvaluation_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the ModelEvaluation resource. - * Format: - * `projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callGetModelEvaluation() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getModelEvaluation(request); - console.log(response); - } - - callGetModelEvaluation(); - // [END aiplatform_v1_generated_ModelService_GetModelEvaluation_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/model_service.get_model_evaluation_slice.js b/samples/generated/v1/model_service.get_model_evaluation_slice.js deleted file mode 100644 index 4c99c75e..00000000 --- a/samples/generated/v1/model_service.get_model_evaluation_slice.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_ModelService_GetModelEvaluationSlice_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the ModelEvaluationSlice resource. - * Format: - * `projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}/slices/{slice}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callGetModelEvaluationSlice() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getModelEvaluationSlice(request); - console.log(response); - } - - callGetModelEvaluationSlice(); - // [END aiplatform_v1_generated_ModelService_GetModelEvaluationSlice_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/model_service.import_model_evaluation.js b/samples/generated/v1/model_service.import_model_evaluation.js deleted file mode 100644 index 19d05d29..00000000 --- a/samples/generated/v1/model_service.import_model_evaluation.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, modelEvaluation) { - // [START aiplatform_v1_generated_ModelService_ImportModelEvaluation_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the parent model resource. - * Format: `projects/{project}/locations/{location}/models/{model}` - */ - // const parent = 'abc123' - /** - * Required. Model evaluation resource to be imported. - */ - // const modelEvaluation = {} - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callImportModelEvaluation() { - // Construct request - const request = { - parent, - modelEvaluation, - }; - - // Run request - const response = await aiplatformClient.importModelEvaluation(request); - console.log(response); - } - - callImportModelEvaluation(); - // [END aiplatform_v1_generated_ModelService_ImportModelEvaluation_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/model_service.list_model_evaluation_slices.js b/samples/generated/v1/model_service.list_model_evaluation_slices.js deleted file mode 100644 index d009365f..00000000 --- a/samples/generated/v1/model_service.list_model_evaluation_slices.js +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_ModelService_ListModelEvaluationSlices_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the ModelEvaluation to list the ModelEvaluationSlices - * from. Format: - * `projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - * * `slice.dimension` - for =. - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained via - * ListModelEvaluationSlicesResponse.next_page_token google.cloud.aiplatform.v1.ListModelEvaluationSlicesResponse.next_page_token of the previous - * ModelService.ListModelEvaluationSlices google.cloud.aiplatform.v1.ModelService.ListModelEvaluationSlices call. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callListModelEvaluationSlices() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listModelEvaluationSlicesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListModelEvaluationSlices(); - // [END aiplatform_v1_generated_ModelService_ListModelEvaluationSlices_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/model_service.list_model_evaluations.js b/samples/generated/v1/model_service.list_model_evaluations.js deleted file mode 100644 index 32d43823..00000000 --- a/samples/generated/v1/model_service.list_model_evaluations.js +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_ModelService_ListModelEvaluations_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Model to list the ModelEvaluations from. - * Format: `projects/{project}/locations/{location}/models/{model}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained via - * ListModelEvaluationsResponse.next_page_token google.cloud.aiplatform.v1.ListModelEvaluationsResponse.next_page_token of the previous - * ModelService.ListModelEvaluations google.cloud.aiplatform.v1.ModelService.ListModelEvaluations call. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callListModelEvaluations() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listModelEvaluationsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListModelEvaluations(); - // [END aiplatform_v1_generated_ModelService_ListModelEvaluations_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/model_service.list_model_versions.js b/samples/generated/v1/model_service.list_model_versions.js deleted file mode 100644 index 487de862..00000000 --- a/samples/generated/v1/model_service.list_model_versions.js +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_ModelService_ListModelVersions_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the model to list versions for. - */ - // const name = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained via - * ListModelVersionsResponse.next_page_token google.cloud.aiplatform.v1.ListModelVersionsResponse.next_page_token of the previous - * ModelService.ListModelversions call. - */ - // const pageToken = 'abc123' - /** - * An expression for filtering the results of the request. For field names - * both snake_case and camelCase are supported. - * * `labels` supports general map functions that is: - * * `labels.key=value` - key:value equality - * * `labels.key:* or labels:key - key existence - * * A key including a space must be quoted. `labels."a key"`. - * Some examples: - * * `labels.myKey="myValue"` - */ - // const filter = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callListModelVersions() { - // Construct request - const request = { - name, - }; - - // Run request - const iterable = await aiplatformClient.listModelVersionsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListModelVersions(); - // [END aiplatform_v1_generated_ModelService_ListModelVersions_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/model_service.list_models.js b/samples/generated/v1/model_service.list_models.js deleted file mode 100644 index cf0a6ddb..00000000 --- a/samples/generated/v1/model_service.list_models.js +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_ModelService_ListModels_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to list the Models from. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * An expression for filtering the results of the request. For field names - * both snake_case and camelCase are supported. - * * `model` supports = and !=. `model` represents the Model ID, - * i.e. the last segment of the Model's resource name google.cloud.aiplatform.v1.Model.name. - * * `display_name` supports = and != - * * `labels` supports general map functions that is: - * * `labels.key=value` - key:value equality - * * `labels.key:* or labels:key - key existence - * * A key including a space must be quoted. `labels."a key"`. - * Some examples: - * * `model=1234` - * * `displayName="myDisplayName"` - * * `labels.myKey="myValue"` - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained via - * ListModelsResponse.next_page_token google.cloud.aiplatform.v1.ListModelsResponse.next_page_token of the previous - * ModelService.ListModels google.cloud.aiplatform.v1.ModelService.ListModels call. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - /** - * A comma-separated list of fields to order by, sorted in ascending order. - * Use "desc" after a field name for descending. - * Supported fields: - * * `display_name` - * * `create_time` - * * `update_time` - * Example: `display_name, create_time desc`. - */ - // const orderBy = 'abc123' - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callListModels() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listModelsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListModels(); - // [END aiplatform_v1_generated_ModelService_ListModels_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/model_service.merge_version_aliases.js b/samples/generated/v1/model_service.merge_version_aliases.js deleted file mode 100644 index a2ea691a..00000000 --- a/samples/generated/v1/model_service.merge_version_aliases.js +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name, versionAliases) { - // [START aiplatform_v1_generated_ModelService_MergeVersionAliases_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the model version to merge aliases, with a version ID - * explicitly included. - * Example: `projects/{project}/locations/{location}/models/{model}@1234` - */ - // const name = 'abc123' - /** - * Required. The set of version aliases to merge. - * The alias should be at most 128 characters, and match - * `[a-z][a-zA-Z0-9-]{0,126}[a-z-0-9]`. - * Add the `-` prefix to an alias means removing that alias from the version. - * `-` is NOT counted in the 128 characters. Example: `-golden` means removing - * the `golden` alias from the version. - * There is NO ordering in aliases, which means - * 1) The aliases returned from GetModel API might not have the exactly same - * order from this MergeVersionAliases API. 2) Adding and deleting the same - * alias in the request is not recommended, and the 2 operations will be - * cancelled out. - */ - // const versionAliases = 'abc123' - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callMergeVersionAliases() { - // Construct request - const request = { - name, - versionAliases, - }; - - // Run request - const response = await aiplatformClient.mergeVersionAliases(request); - console.log(response); - } - - callMergeVersionAliases(); - // [END aiplatform_v1_generated_ModelService_MergeVersionAliases_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/model_service.update_model.js b/samples/generated/v1/model_service.update_model.js deleted file mode 100644 index 4e4c2721..00000000 --- a/samples/generated/v1/model_service.update_model.js +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(model, updateMask) { - // [START aiplatform_v1_generated_ModelService_UpdateModel_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Model which replaces the resource on the server. - * When Model Versioning is enabled, the model.name will be used to determine - * whether to update the model or model version. - * 1. model.name with the @ value, e.g. models/123@1, refers to a version - * specific update. - * 2. model.name without the @ value, e.g. models/123, refers to a model - * update. - * 3. model.name with @-, e.g. models/123@-, refers to a model update. - * 4. Supported model fields: display_name, description; supported - * version-specific fields: version_description. Labels are supported in both - * scenarios. Both the model labels and the version labels are merged when a - * model is returned. When updating labels, if the request is for - * model-specific update, model label gets updated. Otherwise, version labels - * get updated. - * 5. A model name or model version name fields update mismatch will cause a - * precondition error. - * 6. One request cannot update both the model and the version fields. You - * must update them separately. - */ - // const model = {} - /** - * Required. The update mask applies to the resource. - * For the `FieldMask` definition, see google.protobuf.FieldMask google.protobuf.FieldMask. - */ - // const updateMask = {} - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callUpdateModel() { - // Construct request - const request = { - model, - updateMask, - }; - - // Run request - const response = await aiplatformClient.updateModel(request); - console.log(response); - } - - callUpdateModel(); - // [END aiplatform_v1_generated_ModelService_UpdateModel_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/model_service.upload_model.js b/samples/generated/v1/model_service.upload_model.js deleted file mode 100644 index d96da4f8..00000000 --- a/samples/generated/v1/model_service.upload_model.js +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, model) { - // [START aiplatform_v1_generated_ModelService_UploadModel_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location into which to upload the Model. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Optional. The resource name of the model into which to upload the version. Only - * specify this field when uploading a new version. - */ - // const parentModel = 'abc123' - /** - * Optional. The ID to use for the uploaded Model, which will become the final - * component of the model resource name. - * This value may be up to 63 characters, and valid characters are - * `[a-z0-9_-]`. The first character cannot be a number or hyphen. - */ - // const modelId = 'abc123' - /** - * Required. The Model to create. - */ - // const model = {} - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callUploadModel() { - // Construct request - const request = { - parent, - model, - }; - - // Run request - const [operation] = await aiplatformClient.uploadModel(request); - const [response] = await operation.promise(); - console.log(response); - } - - callUploadModel(); - // [END aiplatform_v1_generated_ModelService_UploadModel_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/pipeline_service.cancel_pipeline_job.js b/samples/generated/v1/pipeline_service.cancel_pipeline_job.js deleted file mode 100644 index 4b9560a9..00000000 --- a/samples/generated/v1/pipeline_service.cancel_pipeline_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_PipelineService_CancelPipelineJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the PipelineJob to cancel. - * Format: - * `projects/{project}/locations/{location}/pipelineJobs/{pipeline_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {PipelineServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new PipelineServiceClient(); - - async function callCancelPipelineJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.cancelPipelineJob(request); - console.log(response); - } - - callCancelPipelineJob(); - // [END aiplatform_v1_generated_PipelineService_CancelPipelineJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/pipeline_service.cancel_training_pipeline.js b/samples/generated/v1/pipeline_service.cancel_training_pipeline.js deleted file mode 100644 index 38ba30b5..00000000 --- a/samples/generated/v1/pipeline_service.cancel_training_pipeline.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_PipelineService_CancelTrainingPipeline_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the TrainingPipeline to cancel. - * Format: - * `projects/{project}/locations/{location}/trainingPipelines/{training_pipeline}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {PipelineServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new PipelineServiceClient(); - - async function callCancelTrainingPipeline() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.cancelTrainingPipeline(request); - console.log(response); - } - - callCancelTrainingPipeline(); - // [END aiplatform_v1_generated_PipelineService_CancelTrainingPipeline_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/pipeline_service.create_pipeline_job.js b/samples/generated/v1/pipeline_service.create_pipeline_job.js deleted file mode 100644 index 992d9784..00000000 --- a/samples/generated/v1/pipeline_service.create_pipeline_job.js +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, pipelineJob) { - // [START aiplatform_v1_generated_PipelineService_CreatePipelineJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the PipelineJob in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The PipelineJob to create. - */ - // const pipelineJob = {} - /** - * The ID to use for the PipelineJob, which will become the final component of - * the PipelineJob name. If not provided, an ID will be automatically - * generated. - * This value should be less than 128 characters, and valid characters - * are /[a-z][0-9]-/. - */ - // const pipelineJobId = 'abc123' - - // Imports the Aiplatform library - const {PipelineServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new PipelineServiceClient(); - - async function callCreatePipelineJob() { - // Construct request - const request = { - parent, - pipelineJob, - }; - - // Run request - const response = await aiplatformClient.createPipelineJob(request); - console.log(response); - } - - callCreatePipelineJob(); - // [END aiplatform_v1_generated_PipelineService_CreatePipelineJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/pipeline_service.create_training_pipeline.js b/samples/generated/v1/pipeline_service.create_training_pipeline.js deleted file mode 100644 index 644661d7..00000000 --- a/samples/generated/v1/pipeline_service.create_training_pipeline.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, trainingPipeline) { - // [START aiplatform_v1_generated_PipelineService_CreateTrainingPipeline_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the TrainingPipeline in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The TrainingPipeline to create. - */ - // const trainingPipeline = {} - - // Imports the Aiplatform library - const {PipelineServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new PipelineServiceClient(); - - async function callCreateTrainingPipeline() { - // Construct request - const request = { - parent, - trainingPipeline, - }; - - // Run request - const response = await aiplatformClient.createTrainingPipeline(request); - console.log(response); - } - - callCreateTrainingPipeline(); - // [END aiplatform_v1_generated_PipelineService_CreateTrainingPipeline_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/pipeline_service.delete_pipeline_job.js b/samples/generated/v1/pipeline_service.delete_pipeline_job.js deleted file mode 100644 index a8a65dc2..00000000 --- a/samples/generated/v1/pipeline_service.delete_pipeline_job.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_PipelineService_DeletePipelineJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the PipelineJob resource to be deleted. - * Format: - * `projects/{project}/locations/{location}/pipelineJobs/{pipeline_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {PipelineServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new PipelineServiceClient(); - - async function callDeletePipelineJob() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deletePipelineJob(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeletePipelineJob(); - // [END aiplatform_v1_generated_PipelineService_DeletePipelineJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/pipeline_service.delete_training_pipeline.js b/samples/generated/v1/pipeline_service.delete_training_pipeline.js deleted file mode 100644 index adae4e51..00000000 --- a/samples/generated/v1/pipeline_service.delete_training_pipeline.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_PipelineService_DeleteTrainingPipeline_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the TrainingPipeline resource to be deleted. - * Format: - * `projects/{project}/locations/{location}/trainingPipelines/{training_pipeline}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {PipelineServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new PipelineServiceClient(); - - async function callDeleteTrainingPipeline() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteTrainingPipeline(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteTrainingPipeline(); - // [END aiplatform_v1_generated_PipelineService_DeleteTrainingPipeline_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/pipeline_service.get_pipeline_job.js b/samples/generated/v1/pipeline_service.get_pipeline_job.js deleted file mode 100644 index d73fb0d2..00000000 --- a/samples/generated/v1/pipeline_service.get_pipeline_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_PipelineService_GetPipelineJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the PipelineJob resource. - * Format: - * `projects/{project}/locations/{location}/pipelineJobs/{pipeline_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {PipelineServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new PipelineServiceClient(); - - async function callGetPipelineJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getPipelineJob(request); - console.log(response); - } - - callGetPipelineJob(); - // [END aiplatform_v1_generated_PipelineService_GetPipelineJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/pipeline_service.get_training_pipeline.js b/samples/generated/v1/pipeline_service.get_training_pipeline.js deleted file mode 100644 index b39ea1e4..00000000 --- a/samples/generated/v1/pipeline_service.get_training_pipeline.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_PipelineService_GetTrainingPipeline_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the TrainingPipeline resource. - * Format: - * `projects/{project}/locations/{location}/trainingPipelines/{training_pipeline}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {PipelineServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new PipelineServiceClient(); - - async function callGetTrainingPipeline() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getTrainingPipeline(request); - console.log(response); - } - - callGetTrainingPipeline(); - // [END aiplatform_v1_generated_PipelineService_GetTrainingPipeline_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/pipeline_service.list_pipeline_jobs.js b/samples/generated/v1/pipeline_service.list_pipeline_jobs.js deleted file mode 100644 index 8aaef0f9..00000000 --- a/samples/generated/v1/pipeline_service.list_pipeline_jobs.js +++ /dev/null @@ -1,126 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_PipelineService_ListPipelineJobs_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to list the PipelineJobs from. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Lists the PipelineJobs that match the filter expression. The following - * fields are supported: - * * `pipeline_name`: Supports `=` and `!=` comparisons. - * * `display_name`: Supports `=`, `!=` comparisons, and `:` wildcard. - * * `pipeline_job_user_id`: Supports `=`, `!=` comparisons, and `:` wildcard. - * for example, can check if pipeline's display_name contains *step* by - * doing display_name:\"*step*\" - * * `state`: Supports `=` and `!=` comparisons. - * * `create_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. - * Values must be in RFC 3339 format. - * * `update_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. - * Values must be in RFC 3339 format. - * * `end_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. - * Values must be in RFC 3339 format. - * * `labels`: Supports key-value equality and key presence. - * * `template_uri`: Supports `=`, `!=` comparisons, and `:` wildcard. - * * `template_metadata.version`: Supports `=`, `!=` comparisons, and `:` - * wildcard. - * Filter expressions can be combined together using logical operators - * (`AND` & `OR`). - * For example: `pipeline_name="test" AND create_time>"2020-05-18T13:30:00Z"`. - * The syntax to define filter expression is based on - * https://google.aip.dev/160. - * Examples: - * * `create_time>"2021-05-18T00:00:00Z" OR - * update_time>"2020-05-18T00:00:00Z"` PipelineJobs created or updated - * after 2020-05-18 00:00:00 UTC. - * * `labels.env = "prod"` - * PipelineJobs with label "env" set to "prod". - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained via - * ListPipelineJobsResponse.next_page_token google.cloud.aiplatform.v1.ListPipelineJobsResponse.next_page_token of the previous - * PipelineService.ListPipelineJobs google.cloud.aiplatform.v1.PipelineService.ListPipelineJobs call. - */ - // const pageToken = 'abc123' - /** - * A comma-separated list of fields to order by. The default sort order is in - * ascending order. Use "desc" after a field name for descending. You can have - * multiple order_by fields provided e.g. "create_time desc, end_time", - * "end_time, start_time, update_time" For example, using "create_time desc, - * end_time" will order results by create time in descending order, and if - * there are multiple jobs having the same create time, order them by the end - * time in ascending order. if order_by is not specified, it will order by - * default order is create time in descending order. Supported fields: - * * `create_time` - * * `update_time` - * * `end_time` - * * `start_time` - */ - // const orderBy = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {PipelineServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new PipelineServiceClient(); - - async function callListPipelineJobs() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listPipelineJobsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListPipelineJobs(); - // [END aiplatform_v1_generated_PipelineService_ListPipelineJobs_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/pipeline_service.list_training_pipelines.js b/samples/generated/v1/pipeline_service.list_training_pipelines.js deleted file mode 100644 index d9eafc16..00000000 --- a/samples/generated/v1/pipeline_service.list_training_pipelines.js +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_PipelineService_ListTrainingPipelines_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to list the TrainingPipelines from. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - * Supported fields: - * * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. - * * `state` supports `=`, `!=` comparisons. - * * `training_task_definition` `=`, `!=` comparisons, and `:` wildcard. - * * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. - * `create_time` must be in RFC 3339 format. - * * `labels` supports general map functions that is: - * `labels.key=value` - key:value equality - * `labels.key:* - key existence - * Some examples of using the filter are: - * * `state="PIPELINE_STATE_SUCCEEDED" AND display_name:"my_pipeline_*"` - * * `state!="PIPELINE_STATE_FAILED" OR display_name="my_pipeline"` - * * `NOT display_name="my_pipeline"` - * * `create_time>"2021-05-18T00:00:00Z"` - * * `training_task_definition:"*automl_text_classification*"` - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained via - * ListTrainingPipelinesResponse.next_page_token google.cloud.aiplatform.v1.ListTrainingPipelinesResponse.next_page_token of the previous - * PipelineService.ListTrainingPipelines google.cloud.aiplatform.v1.PipelineService.ListTrainingPipelines call. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {PipelineServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new PipelineServiceClient(); - - async function callListTrainingPipelines() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listTrainingPipelinesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListTrainingPipelines(); - // [END aiplatform_v1_generated_PipelineService_ListTrainingPipelines_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/prediction_service.explain.js b/samples/generated/v1/prediction_service.explain.js deleted file mode 100644 index b73994f7..00000000 --- a/samples/generated/v1/prediction_service.explain.js +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(endpoint, instances) { - // [START aiplatform_v1_generated_PredictionService_Explain_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Endpoint requested to serve the explanation. - * Format: - * `projects/{project}/locations/{location}/endpoints/{endpoint}` - */ - // const endpoint = 'abc123' - /** - * Required. The instances that are the input to the explanation call. - * A DeployedModel may have an upper limit on the number of instances it - * supports per request, and when it is exceeded the explanation call errors - * in case of AutoML Models, or, in case of customer created Models, the - * behaviour is as documented by that Model. - * The schema of any single instance may be specified via Endpoint's - * DeployedModels' Model's google.cloud.aiplatform.v1.DeployedModel.model - * PredictSchemata's google.cloud.aiplatform.v1.Model.predict_schemata - * instance_schema_uri google.cloud.aiplatform.v1.PredictSchemata.instance_schema_uri. - */ - // const instances = 1234 - /** - * The parameters that govern the prediction. The schema of the parameters may - * be specified via Endpoint's DeployedModels' Model's google.cloud.aiplatform.v1.DeployedModel.model - * PredictSchemata's google.cloud.aiplatform.v1.Model.predict_schemata - * parameters_schema_uri google.cloud.aiplatform.v1.PredictSchemata.parameters_schema_uri. - */ - // const parameters = {} - /** - * If specified, overrides the - * explanation_spec google.cloud.aiplatform.v1.DeployedModel.explanation_spec of the DeployedModel. - * Can be used for explaining prediction results with different - * configurations, such as: - * - Explaining top-5 predictions results as opposed to top-1; - * - Increasing path count or step count of the attribution methods to reduce - * approximate errors; - * - Using different baselines for explaining the prediction results. - */ - // const explanationSpecOverride = {} - /** - * If specified, this ExplainRequest will be served by the chosen - * DeployedModel, overriding Endpoint.traffic_split google.cloud.aiplatform.v1.Endpoint.traffic_split. - */ - // const deployedModelId = 'abc123' - - // Imports the Aiplatform library - const {PredictionServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new PredictionServiceClient(); - - async function callExplain() { - // Construct request - const request = { - endpoint, - instances, - }; - - // Run request - const response = await aiplatformClient.explain(request); - console.log(response); - } - - callExplain(); - // [END aiplatform_v1_generated_PredictionService_Explain_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/prediction_service.predict.js b/samples/generated/v1/prediction_service.predict.js deleted file mode 100644 index 62de4f91..00000000 --- a/samples/generated/v1/prediction_service.predict.js +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(endpoint, instances) { - // [START aiplatform_v1_generated_PredictionService_Predict_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Endpoint requested to serve the prediction. - * Format: - * `projects/{project}/locations/{location}/endpoints/{endpoint}` - */ - // const endpoint = 'abc123' - /** - * Required. The instances that are the input to the prediction call. - * A DeployedModel may have an upper limit on the number of instances it - * supports per request, and when it is exceeded the prediction call errors - * in case of AutoML Models, or, in case of customer created Models, the - * behaviour is as documented by that Model. - * The schema of any single instance may be specified via Endpoint's - * DeployedModels' Model's google.cloud.aiplatform.v1.DeployedModel.model - * PredictSchemata's google.cloud.aiplatform.v1.Model.predict_schemata - * instance_schema_uri google.cloud.aiplatform.v1.PredictSchemata.instance_schema_uri. - */ - // const instances = 1234 - /** - * The parameters that govern the prediction. The schema of the parameters may - * be specified via Endpoint's DeployedModels' Model's google.cloud.aiplatform.v1.DeployedModel.model - * PredictSchemata's google.cloud.aiplatform.v1.Model.predict_schemata - * parameters_schema_uri google.cloud.aiplatform.v1.PredictSchemata.parameters_schema_uri. - */ - // const parameters = {} - - // Imports the Aiplatform library - const {PredictionServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new PredictionServiceClient(); - - async function callPredict() { - // Construct request - const request = { - endpoint, - instances, - }; - - // Run request - const response = await aiplatformClient.predict(request); - console.log(response); - } - - callPredict(); - // [END aiplatform_v1_generated_PredictionService_Predict_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/prediction_service.raw_predict.js b/samples/generated/v1/prediction_service.raw_predict.js deleted file mode 100644 index b7ffd239..00000000 --- a/samples/generated/v1/prediction_service.raw_predict.js +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(endpoint) { - // [START aiplatform_v1_generated_PredictionService_RawPredict_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Endpoint requested to serve the prediction. - * Format: - * `projects/{project}/locations/{location}/endpoints/{endpoint}` - */ - // const endpoint = 'abc123' - /** - * The prediction input. Supports HTTP headers and arbitrary data payload. - * A DeployedModel google.cloud.aiplatform.v1.DeployedModel may have an upper limit on the number of instances it - * supports per request. When this limit it is exceeded for an AutoML model, - * the RawPredict google.cloud.aiplatform.v1.PredictionService.RawPredict method returns an error. - * When this limit is exceeded for a custom-trained model, the behavior varies - * depending on the model. - * You can specify the schema for each instance in the - * predict_schemata.instance_schema_uri google.cloud.aiplatform.v1.PredictSchemata.instance_schema_uri - * field when you create a Model google.cloud.aiplatform.v1.Model. This schema applies when you deploy the - * `Model` as a `DeployedModel` to an Endpoint google.cloud.aiplatform.v1.Endpoint and use the `RawPredict` - * method. - */ - // const httpBody = {} - - // Imports the Aiplatform library - const {PredictionServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new PredictionServiceClient(); - - async function callRawPredict() { - // Construct request - const request = { - endpoint, - }; - - // Run request - const response = await aiplatformClient.rawPredict(request); - console.log(response); - } - - callRawPredict(); - // [END aiplatform_v1_generated_PredictionService_RawPredict_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/snippet_metadata.google.cloud.aiplatform.v1.json b/samples/generated/v1/snippet_metadata.google.cloud.aiplatform.v1.json deleted file mode 100644 index a314edf6..00000000 --- a/samples/generated/v1/snippet_metadata.google.cloud.aiplatform.v1.json +++ /dev/null @@ -1,8955 +0,0 @@ -{ - "clientLibrary": { - "name": "nodejs-aiplatform", - "version": "2.3.0", - "language": "TYPESCRIPT", - "apis": [ - { - "id": "google.cloud.aiplatform.v1", - "version": "v1" - } - ] - }, - "snippets": [ - { - "regionTag": "aiplatform_v1_generated_DatasetService_CreateDataset_async", - "title": "DatasetService createDataset Sample", - "origin": "API_DEFINITION", - "description": " Creates a Dataset.", - "canonical": true, - "file": "dataset_service.create_dataset.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 60, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateDataset", - "fullName": "google.cloud.aiplatform.v1.DatasetService.CreateDataset", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "dataset", - "type": ".google.cloud.aiplatform.v1.Dataset" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1.DatasetServiceClient" - }, - "method": { - "shortName": "CreateDataset", - "fullName": "google.cloud.aiplatform.v1.DatasetService.CreateDataset", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_DatasetService_GetDataset_async", - "title": "DatasetService getDataset Sample", - "origin": "API_DEFINITION", - "description": " Gets a Dataset.", - "canonical": true, - "file": "dataset_service.get_dataset.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 57, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetDataset", - "fullName": "google.cloud.aiplatform.v1.DatasetService.GetDataset", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Dataset", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1.DatasetServiceClient" - }, - "method": { - "shortName": "GetDataset", - "fullName": "google.cloud.aiplatform.v1.DatasetService.GetDataset", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_DatasetService_UpdateDataset_async", - "title": "DatasetService updateDataset Sample", - "origin": "API_DEFINITION", - "description": " Updates a Dataset.", - "canonical": true, - "file": "dataset_service.update_dataset.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 63, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateDataset", - "fullName": "google.cloud.aiplatform.v1.DatasetService.UpdateDataset", - "async": true, - "parameters": [ - { - "name": "dataset", - "type": ".google.cloud.aiplatform.v1.Dataset" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Dataset", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1.DatasetServiceClient" - }, - "method": { - "shortName": "UpdateDataset", - "fullName": "google.cloud.aiplatform.v1.DatasetService.UpdateDataset", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_DatasetService_ListDatasets_async", - "title": "DatasetService listDatasets Sample", - "origin": "API_DEFINITION", - "description": " Lists Datasets in a Location.", - "canonical": true, - "file": "dataset_service.list_datasets.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 91, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListDatasets", - "fullName": "google.cloud.aiplatform.v1.DatasetService.ListDatasets", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListDatasetsResponse", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1.DatasetServiceClient" - }, - "method": { - "shortName": "ListDatasets", - "fullName": "google.cloud.aiplatform.v1.DatasetService.ListDatasets", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_DatasetService_DeleteDataset_async", - "title": "DatasetService deleteDataset Sample", - "origin": "API_DEFINITION", - "description": " Deletes a Dataset.", - "canonical": true, - "file": "dataset_service.delete_dataset.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteDataset", - "fullName": "google.cloud.aiplatform.v1.DatasetService.DeleteDataset", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1.DatasetServiceClient" - }, - "method": { - "shortName": "DeleteDataset", - "fullName": "google.cloud.aiplatform.v1.DatasetService.DeleteDataset", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_DatasetService_ImportData_async", - "title": "DatasetService importData Sample", - "origin": "API_DEFINITION", - "description": " Imports data into a Dataset.", - "canonical": true, - "file": "dataset_service.import_data.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 62, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ImportData", - "fullName": "google.cloud.aiplatform.v1.DatasetService.ImportData", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "import_configs", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1.DatasetServiceClient" - }, - "method": { - "shortName": "ImportData", - "fullName": "google.cloud.aiplatform.v1.DatasetService.ImportData", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_DatasetService_ExportData_async", - "title": "DatasetService exportData Sample", - "origin": "API_DEFINITION", - "description": " Exports data from a Dataset.", - "canonical": true, - "file": "dataset_service.export_data.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 61, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ExportData", - "fullName": "google.cloud.aiplatform.v1.DatasetService.ExportData", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "export_config", - "type": ".google.cloud.aiplatform.v1.ExportDataConfig" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1.DatasetServiceClient" - }, - "method": { - "shortName": "ExportData", - "fullName": "google.cloud.aiplatform.v1.DatasetService.ExportData", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_DatasetService_ListDataItems_async", - "title": "DatasetService listDataItems Sample", - "origin": "API_DEFINITION", - "description": " Lists DataItems in a Dataset.", - "canonical": true, - "file": "dataset_service.list_data_items.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 78, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListDataItems", - "fullName": "google.cloud.aiplatform.v1.DatasetService.ListDataItems", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListDataItemsResponse", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1.DatasetServiceClient" - }, - "method": { - "shortName": "ListDataItems", - "fullName": "google.cloud.aiplatform.v1.DatasetService.ListDataItems", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_DatasetService_ListSavedQueries_async", - "title": "DatasetService listSavedQueries Sample", - "origin": "API_DEFINITION", - "description": " Lists SavedQueries in a Dataset.", - "canonical": true, - "file": "dataset_service.list_saved_queries.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 78, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListSavedQueries", - "fullName": "google.cloud.aiplatform.v1.DatasetService.ListSavedQueries", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListSavedQueriesResponse", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1.DatasetServiceClient" - }, - "method": { - "shortName": "ListSavedQueries", - "fullName": "google.cloud.aiplatform.v1.DatasetService.ListSavedQueries", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_DatasetService_GetAnnotationSpec_async", - "title": "DatasetService getAnnotationSpec Sample", - "origin": "API_DEFINITION", - "description": " Gets an AnnotationSpec.", - "canonical": true, - "file": "dataset_service.get_annotation_spec.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetAnnotationSpec", - "fullName": "google.cloud.aiplatform.v1.DatasetService.GetAnnotationSpec", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.AnnotationSpec", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1.DatasetServiceClient" - }, - "method": { - "shortName": "GetAnnotationSpec", - "fullName": "google.cloud.aiplatform.v1.DatasetService.GetAnnotationSpec", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_DatasetService_ListAnnotations_async", - "title": "DatasetService listAnnotations Sample", - "origin": "API_DEFINITION", - "description": " Lists Annotations belongs to a dataitem", - "canonical": true, - "file": "dataset_service.list_annotations.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 78, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListAnnotations", - "fullName": "google.cloud.aiplatform.v1.DatasetService.ListAnnotations", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListAnnotationsResponse", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1.DatasetServiceClient" - }, - "method": { - "shortName": "ListAnnotations", - "fullName": "google.cloud.aiplatform.v1.DatasetService.ListAnnotations", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_EndpointService_CreateEndpoint_async", - "title": "DatasetService createEndpoint Sample", - "origin": "API_DEFINITION", - "description": " Creates an Endpoint.", - "canonical": true, - "file": "endpoint_service.create_endpoint.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 71, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateEndpoint", - "fullName": "google.cloud.aiplatform.v1.EndpointService.CreateEndpoint", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "endpoint", - "type": ".google.cloud.aiplatform.v1.Endpoint" - }, - { - "name": "endpoint_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "EndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1.EndpointServiceClient" - }, - "method": { - "shortName": "CreateEndpoint", - "fullName": "google.cloud.aiplatform.v1.EndpointService.CreateEndpoint", - "service": { - "shortName": "EndpointService", - "fullName": "google.cloud.aiplatform.v1.EndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_EndpointService_GetEndpoint_async", - "title": "DatasetService getEndpoint Sample", - "origin": "API_DEFINITION", - "description": " Gets an Endpoint.", - "canonical": true, - "file": "endpoint_service.get_endpoint.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetEndpoint", - "fullName": "google.cloud.aiplatform.v1.EndpointService.GetEndpoint", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Endpoint", - "client": { - "shortName": "EndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1.EndpointServiceClient" - }, - "method": { - "shortName": "GetEndpoint", - "fullName": "google.cloud.aiplatform.v1.EndpointService.GetEndpoint", - "service": { - "shortName": "EndpointService", - "fullName": "google.cloud.aiplatform.v1.EndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_EndpointService_ListEndpoints_async", - "title": "DatasetService listEndpoints Sample", - "origin": "API_DEFINITION", - "description": " Lists Endpoints in a Location.", - "canonical": true, - "file": "endpoint_service.list_endpoints.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 97, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListEndpoints", - "fullName": "google.cloud.aiplatform.v1.EndpointService.ListEndpoints", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListEndpointsResponse", - "client": { - "shortName": "EndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1.EndpointServiceClient" - }, - "method": { - "shortName": "ListEndpoints", - "fullName": "google.cloud.aiplatform.v1.EndpointService.ListEndpoints", - "service": { - "shortName": "EndpointService", - "fullName": "google.cloud.aiplatform.v1.EndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_EndpointService_UpdateEndpoint_async", - "title": "DatasetService updateEndpoint Sample", - "origin": "API_DEFINITION", - "description": " Updates an Endpoint.", - "canonical": true, - "file": "endpoint_service.update_endpoint.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 58, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateEndpoint", - "fullName": "google.cloud.aiplatform.v1.EndpointService.UpdateEndpoint", - "async": true, - "parameters": [ - { - "name": "endpoint", - "type": ".google.cloud.aiplatform.v1.Endpoint" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Endpoint", - "client": { - "shortName": "EndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1.EndpointServiceClient" - }, - "method": { - "shortName": "UpdateEndpoint", - "fullName": "google.cloud.aiplatform.v1.EndpointService.UpdateEndpoint", - "service": { - "shortName": "EndpointService", - "fullName": "google.cloud.aiplatform.v1.EndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_EndpointService_DeleteEndpoint_async", - "title": "DatasetService deleteEndpoint Sample", - "origin": "API_DEFINITION", - "description": " Deletes an Endpoint.", - "canonical": true, - "file": "endpoint_service.delete_endpoint.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteEndpoint", - "fullName": "google.cloud.aiplatform.v1.EndpointService.DeleteEndpoint", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "EndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1.EndpointServiceClient" - }, - "method": { - "shortName": "DeleteEndpoint", - "fullName": "google.cloud.aiplatform.v1.EndpointService.DeleteEndpoint", - "service": { - "shortName": "EndpointService", - "fullName": "google.cloud.aiplatform.v1.EndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_EndpointService_DeployModel_async", - "title": "DatasetService deployModel Sample", - "origin": "API_DEFINITION", - "description": " Deploys a Model into this Endpoint, creating a DeployedModel within it.", - "canonical": true, - "file": "endpoint_service.deploy_model.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 76, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeployModel", - "fullName": "google.cloud.aiplatform.v1.EndpointService.DeployModel", - "async": true, - "parameters": [ - { - "name": "endpoint", - "type": "TYPE_STRING" - }, - { - "name": "deployed_model", - "type": ".google.cloud.aiplatform.v1.DeployedModel" - }, - { - "name": "traffic_split", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "EndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1.EndpointServiceClient" - }, - "method": { - "shortName": "DeployModel", - "fullName": "google.cloud.aiplatform.v1.EndpointService.DeployModel", - "service": { - "shortName": "EndpointService", - "fullName": "google.cloud.aiplatform.v1.EndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_EndpointService_UndeployModel_async", - "title": "DatasetService undeployModel Sample", - "origin": "API_DEFINITION", - "description": " Undeploys a Model from an Endpoint, removing a DeployedModel from it, and freeing all resources it's using.", - "canonical": true, - "file": "endpoint_service.undeploy_model.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 71, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UndeployModel", - "fullName": "google.cloud.aiplatform.v1.EndpointService.UndeployModel", - "async": true, - "parameters": [ - { - "name": "endpoint", - "type": "TYPE_STRING" - }, - { - "name": "deployed_model_id", - "type": "TYPE_STRING" - }, - { - "name": "traffic_split", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "EndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1.EndpointServiceClient" - }, - "method": { - "shortName": "UndeployModel", - "fullName": "google.cloud.aiplatform.v1.EndpointService.UndeployModel", - "service": { - "shortName": "EndpointService", - "fullName": "google.cloud.aiplatform.v1.EndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_ReadFeatureValues_async", - "title": "DatasetService readFeatureValues Sample", - "origin": "API_DEFINITION", - "description": " Reads Feature values of a specific entity of an EntityType. For reading feature values of multiple entities of an EntityType, please use StreamingReadFeatureValues.", - "canonical": true, - "file": "featurestore_online_serving_service.read_feature_values.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 69, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.ReadFeatureValues", - "async": true, - "parameters": [ - { - "name": "entity_type", - "type": "TYPE_STRING" - }, - { - "name": "entity_id", - "type": "TYPE_STRING" - }, - { - "name": "feature_selector", - "type": ".google.cloud.aiplatform.v1.FeatureSelector" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ReadFeatureValuesResponse", - "client": { - "shortName": "FeaturestoreOnlineServingServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingServiceClient" - }, - "method": { - "shortName": "ReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.ReadFeatureValues", - "service": { - "shortName": "FeaturestoreOnlineServingService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_StreamingReadFeatureValues_async", - "title": "DatasetService streamingReadFeatureValues Sample", - "origin": "API_DEFINITION", - "description": " Reads Feature values for multiple entities. Depending on their size, data for different entities may be broken up across multiple responses.", - "canonical": true, - "file": "featurestore_online_serving_service.streaming_read_feature_values.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 73, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "StreamingReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.StreamingReadFeatureValues", - "async": true, - "parameters": [ - { - "name": "entity_type", - "type": "TYPE_STRING" - }, - { - "name": "entity_ids", - "type": "TYPE_STRING[]" - }, - { - "name": "feature_selector", - "type": ".google.cloud.aiplatform.v1.FeatureSelector" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ReadFeatureValuesResponse", - "client": { - "shortName": "FeaturestoreOnlineServingServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingServiceClient" - }, - "method": { - "shortName": "StreamingReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.StreamingReadFeatureValues", - "service": { - "shortName": "FeaturestoreOnlineServingService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_CreateFeaturestore_async", - "title": "DatasetService createFeaturestore Sample", - "origin": "API_DEFINITION", - "description": " Creates a new Featurestore in a given project and location.", - "canonical": true, - "file": "featurestore_service.create_featurestore.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 70, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateFeaturestore", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.CreateFeaturestore", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "featurestore", - "type": ".google.cloud.aiplatform.v1.Featurestore" - }, - { - "name": "featurestore_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "CreateFeaturestore", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.CreateFeaturestore", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_GetFeaturestore_async", - "title": "DatasetService getFeaturestore Sample", - "origin": "API_DEFINITION", - "description": " Gets details of a single Featurestore.", - "canonical": true, - "file": "featurestore_service.get_featurestore.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 53, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetFeaturestore", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.GetFeaturestore", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Featurestore", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "GetFeaturestore", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.GetFeaturestore", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_ListFeaturestores_async", - "title": "DatasetService listFeaturestores Sample", - "origin": "API_DEFINITION", - "description": " Lists Featurestores in a given project and location.", - "canonical": true, - "file": "featurestore_service.list_featurestores.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 105, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListFeaturestores", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ListFeaturestores", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListFeaturestoresResponse", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "ListFeaturestores", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ListFeaturestores", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_UpdateFeaturestore_async", - "title": "DatasetService updateFeaturestore Sample", - "origin": "API_DEFINITION", - "description": " Updates the parameters of a single Featurestore.", - "canonical": true, - "file": "featurestore_service.update_featurestore.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 71, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateFeaturestore", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.UpdateFeaturestore", - "async": true, - "parameters": [ - { - "name": "featurestore", - "type": ".google.cloud.aiplatform.v1.Featurestore" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "UpdateFeaturestore", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.UpdateFeaturestore", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_DeleteFeaturestore_async", - "title": "DatasetService deleteFeaturestore Sample", - "origin": "API_DEFINITION", - "description": " Deletes a single Featurestore. The Featurestore must not contain any EntityTypes or `force` must be set to true for the request to succeed.", - "canonical": true, - "file": "featurestore_service.delete_featurestore.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 62, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteFeaturestore", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.DeleteFeaturestore", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "force", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "DeleteFeaturestore", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.DeleteFeaturestore", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_CreateEntityType_async", - "title": "DatasetService createEntityType Sample", - "origin": "API_DEFINITION", - "description": " Creates a new EntityType in a given Featurestore.", - "canonical": true, - "file": "featurestore_service.create_entity_type.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 69, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateEntityType", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.CreateEntityType", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "entity_type", - "type": ".google.cloud.aiplatform.v1.EntityType" - }, - { - "name": "entity_type_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "CreateEntityType", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.CreateEntityType", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_GetEntityType_async", - "title": "DatasetService getEntityType Sample", - "origin": "API_DEFINITION", - "description": " Gets details of a single EntityType.", - "canonical": true, - "file": "featurestore_service.get_entity_type.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetEntityType", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.GetEntityType", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.EntityType", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "GetEntityType", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.GetEntityType", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_ListEntityTypes_async", - "title": "DatasetService listEntityTypes Sample", - "origin": "API_DEFINITION", - "description": " Lists EntityTypes in a given Featurestore.", - "canonical": true, - "file": "featurestore_service.list_entity_types.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 104, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListEntityTypes", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ListEntityTypes", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListEntityTypesResponse", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "ListEntityTypes", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ListEntityTypes", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_UpdateEntityType_async", - "title": "DatasetService updateEntityType Sample", - "origin": "API_DEFINITION", - "description": " Updates the parameters of a single EntityType.", - "canonical": true, - "file": "featurestore_service.update_entity_type.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 76, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateEntityType", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.UpdateEntityType", - "async": true, - "parameters": [ - { - "name": "entity_type", - "type": ".google.cloud.aiplatform.v1.EntityType" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.EntityType", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "UpdateEntityType", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.UpdateEntityType", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_DeleteEntityType_async", - "title": "DatasetService deleteEntityType Sample", - "origin": "API_DEFINITION", - "description": " Deletes a single EntityType. The EntityType must not have any Features or `force` must be set to true for the request to succeed.", - "canonical": true, - "file": "featurestore_service.delete_entity_type.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 61, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteEntityType", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.DeleteEntityType", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "force", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "DeleteEntityType", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.DeleteEntityType", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_CreateFeature_async", - "title": "DatasetService createFeature Sample", - "origin": "API_DEFINITION", - "description": " Creates a new Feature in a given EntityType.", - "canonical": true, - "file": "featurestore_service.create_feature.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 70, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateFeature", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.CreateFeature", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "feature", - "type": ".google.cloud.aiplatform.v1.Feature" - }, - { - "name": "feature_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "CreateFeature", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.CreateFeature", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_BatchCreateFeatures_async", - "title": "DatasetService batchCreateFeatures Sample", - "origin": "API_DEFINITION", - "description": " Creates a batch of Features in a given EntityType.", - "canonical": true, - "file": "featurestore_service.batch_create_features.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 64, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "BatchCreateFeatures", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.BatchCreateFeatures", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "requests", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "BatchCreateFeatures", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.BatchCreateFeatures", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_GetFeature_async", - "title": "DatasetService getFeature Sample", - "origin": "API_DEFINITION", - "description": " Gets details of a single Feature.", - "canonical": true, - "file": "featurestore_service.get_feature.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetFeature", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.GetFeature", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Feature", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "GetFeature", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.GetFeature", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_ListFeatures_async", - "title": "DatasetService listFeatures Sample", - "origin": "API_DEFINITION", - "description": " Lists Features in a given EntityType.", - "canonical": true, - "file": "featurestore_service.list_features.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 114, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListFeatures", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ListFeatures", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "latest_stats_count", - "type": "TYPE_INT32" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListFeaturesResponse", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "ListFeatures", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ListFeatures", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_UpdateFeature_async", - "title": "DatasetService updateFeature Sample", - "origin": "API_DEFINITION", - "description": " Updates the parameters of a single Feature.", - "canonical": true, - "file": "featurestore_service.update_feature.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 70, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateFeature", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.UpdateFeature", - "async": true, - "parameters": [ - { - "name": "feature", - "type": ".google.cloud.aiplatform.v1.Feature" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Feature", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "UpdateFeature", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.UpdateFeature", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_DeleteFeature_async", - "title": "DatasetService deleteFeature Sample", - "origin": "API_DEFINITION", - "description": " Deletes a single Feature.", - "canonical": true, - "file": "featurestore_service.delete_feature.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteFeature", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.DeleteFeature", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "DeleteFeature", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.DeleteFeature", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_ImportFeatureValues_async", - "title": "DatasetService importFeatureValues Sample", - "origin": "API_DEFINITION", - "description": " Imports Feature values into the Featurestore from a source storage. The progress of the import is tracked by the returned operation. The imported features are guaranteed to be visible to subsequent read operations after the operation is marked as successfully done. If an import operation fails, the Feature values returned from reads and exports may be inconsistent. If consistency is required, the caller must retry the same import request again and wait till the new operation returned is marked as successfully done. There are also scenarios where the caller can cause inconsistency. - Source data for import contains multiple distinct Feature values for the same entity ID and timestamp. - Source is modified during an import. This includes adding, updating, or removing source data and/or metadata. Examples of updating metadata include but are not limited to changing storage location, storage class, or retention policy. - Online serving cluster is under-provisioned.", - "canonical": true, - "file": "featurestore_service.import_feature_values.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 106, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ImportFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ImportFeatureValues", - "async": true, - "parameters": [ - { - "name": "avro_source", - "type": ".google.cloud.aiplatform.v1.AvroSource" - }, - { - "name": "bigquery_source", - "type": ".google.cloud.aiplatform.v1.BigQuerySource" - }, - { - "name": "csv_source", - "type": ".google.cloud.aiplatform.v1.CsvSource" - }, - { - "name": "feature_time_field", - "type": "TYPE_STRING" - }, - { - "name": "feature_time", - "type": ".google.protobuf.Timestamp" - }, - { - "name": "entity_type", - "type": "TYPE_STRING" - }, - { - "name": "entity_id_field", - "type": "TYPE_STRING" - }, - { - "name": "feature_specs", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "disable_online_serving", - "type": "TYPE_BOOL" - }, - { - "name": "worker_count", - "type": "TYPE_INT32" - }, - { - "name": "disable_ingestion_analysis", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "ImportFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ImportFeatureValues", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_BatchReadFeatureValues_async", - "title": "DatasetService batchReadFeatureValues Sample", - "origin": "API_DEFINITION", - "description": " Batch reads Feature values from a Featurestore. This API enables batch reading Feature values, where each read instance in the batch may read Feature values of entities from one or more EntityTypes. Point-in-time correctness is guaranteed for Feature values of each read instance as of each instance's read timestamp.", - "canonical": true, - "file": "featurestore_service.batch_read_feature_values.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 103, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "BatchReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.BatchReadFeatureValues", - "async": true, - "parameters": [ - { - "name": "csv_read_instances", - "type": ".google.cloud.aiplatform.v1.CsvSource" - }, - { - "name": "bigquery_read_instances", - "type": ".google.cloud.aiplatform.v1.BigQuerySource" - }, - { - "name": "featurestore", - "type": "TYPE_STRING" - }, - { - "name": "destination", - "type": ".google.cloud.aiplatform.v1.FeatureValueDestination" - }, - { - "name": "pass_through_fields", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "entity_type_specs", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "BatchReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.BatchReadFeatureValues", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_ExportFeatureValues_async", - "title": "DatasetService exportFeatureValues Sample", - "origin": "API_DEFINITION", - "description": " Exports Feature values from all the entities of a target EntityType.", - "canonical": true, - "file": "featurestore_service.export_feature_values.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 80, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ExportFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ExportFeatureValues", - "async": true, - "parameters": [ - { - "name": "snapshot_export", - "type": ".google.cloud.aiplatform.v1.ExportFeatureValuesRequest.SnapshotExport" - }, - { - "name": "full_export", - "type": ".google.cloud.aiplatform.v1.ExportFeatureValuesRequest.FullExport" - }, - { - "name": "entity_type", - "type": "TYPE_STRING" - }, - { - "name": "destination", - "type": ".google.cloud.aiplatform.v1.FeatureValueDestination" - }, - { - "name": "feature_selector", - "type": ".google.cloud.aiplatform.v1.FeatureSelector" - }, - { - "name": "settings", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "ExportFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ExportFeatureValues", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_SearchFeatures_async", - "title": "DatasetService searchFeatures Sample", - "origin": "API_DEFINITION", - "description": " Searches Features matching a query in a given project.", - "canonical": true, - "file": "featurestore_service.search_features.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 124, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "SearchFeatures", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.SearchFeatures", - "async": true, - "parameters": [ - { - "name": "location", - "type": "TYPE_STRING" - }, - { - "name": "query", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.SearchFeaturesResponse", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "SearchFeatures", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.SearchFeatures", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_CreateIndexEndpoint_async", - "title": "DatasetService createIndexEndpoint Sample", - "origin": "API_DEFINITION", - "description": " Creates an IndexEndpoint.", - "canonical": true, - "file": "index_endpoint_service.create_index_endpoint.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 60, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.CreateIndexEndpoint", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "index_endpoint", - "type": ".google.cloud.aiplatform.v1.IndexEndpoint" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "IndexEndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointServiceClient" - }, - "method": { - "shortName": "CreateIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.CreateIndexEndpoint", - "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_GetIndexEndpoint_async", - "title": "DatasetService getIndexEndpoint Sample", - "origin": "API_DEFINITION", - "description": " Gets an IndexEndpoint.", - "canonical": true, - "file": "index_endpoint_service.get_index_endpoint.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.GetIndexEndpoint", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.IndexEndpoint", - "client": { - "shortName": "IndexEndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointServiceClient" - }, - "method": { - "shortName": "GetIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.GetIndexEndpoint", - "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_ListIndexEndpoints_async", - "title": "DatasetService listIndexEndpoints Sample", - "origin": "API_DEFINITION", - "description": " Lists IndexEndpoints in a Location.", - "canonical": true, - "file": "index_endpoint_service.list_index_endpoints.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 90, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListIndexEndpoints", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.ListIndexEndpoints", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListIndexEndpointsResponse", - "client": { - "shortName": "IndexEndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointServiceClient" - }, - "method": { - "shortName": "ListIndexEndpoints", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.ListIndexEndpoints", - "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_UpdateIndexEndpoint_async", - "title": "DatasetService updateIndexEndpoint Sample", - "origin": "API_DEFINITION", - "description": " Updates an IndexEndpoint.", - "canonical": true, - "file": "index_endpoint_service.update_index_endpoint.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 58, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.UpdateIndexEndpoint", - "async": true, - "parameters": [ - { - "name": "index_endpoint", - "type": ".google.cloud.aiplatform.v1.IndexEndpoint" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.IndexEndpoint", - "client": { - "shortName": "IndexEndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointServiceClient" - }, - "method": { - "shortName": "UpdateIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.UpdateIndexEndpoint", - "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_DeleteIndexEndpoint_async", - "title": "DatasetService deleteIndexEndpoint Sample", - "origin": "API_DEFINITION", - "description": " Deletes an IndexEndpoint.", - "canonical": true, - "file": "index_endpoint_service.delete_index_endpoint.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.DeleteIndexEndpoint", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "IndexEndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointServiceClient" - }, - "method": { - "shortName": "DeleteIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.DeleteIndexEndpoint", - "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_DeployIndex_async", - "title": "DatasetService deployIndex Sample", - "origin": "API_DEFINITION", - "description": " Deploys an Index into this IndexEndpoint, creating a DeployedIndex within it. Only non-empty Indexes can be deployed.", - "canonical": true, - "file": "index_endpoint_service.deploy_index.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 61, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeployIndex", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.DeployIndex", - "async": true, - "parameters": [ - { - "name": "index_endpoint", - "type": "TYPE_STRING" - }, - { - "name": "deployed_index", - "type": ".google.cloud.aiplatform.v1.DeployedIndex" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "IndexEndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointServiceClient" - }, - "method": { - "shortName": "DeployIndex", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.DeployIndex", - "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_UndeployIndex_async", - "title": "DatasetService undeployIndex Sample", - "origin": "API_DEFINITION", - "description": " Undeploys an Index from an IndexEndpoint, removing a DeployedIndex from it, and freeing all resources it's using.", - "canonical": true, - "file": "index_endpoint_service.undeploy_index.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 61, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UndeployIndex", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.UndeployIndex", - "async": true, - "parameters": [ - { - "name": "index_endpoint", - "type": "TYPE_STRING" - }, - { - "name": "deployed_index_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "IndexEndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointServiceClient" - }, - "method": { - "shortName": "UndeployIndex", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.UndeployIndex", - "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_MutateDeployedIndex_async", - "title": "DatasetService mutateDeployedIndex Sample", - "origin": "API_DEFINITION", - "description": " Update an existing DeployedIndex under an IndexEndpoint.", - "canonical": true, - "file": "index_endpoint_service.mutate_deployed_index.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 63, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "MutateDeployedIndex", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.MutateDeployedIndex", - "async": true, - "parameters": [ - { - "name": "index_endpoint", - "type": "TYPE_STRING" - }, - { - "name": "deployed_index", - "type": ".google.cloud.aiplatform.v1.DeployedIndex" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "IndexEndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointServiceClient" - }, - "method": { - "shortName": "MutateDeployedIndex", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.MutateDeployedIndex", - "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_IndexService_CreateIndex_async", - "title": "DatasetService createIndex Sample", - "origin": "API_DEFINITION", - "description": " Creates an Index.", - "canonical": true, - "file": "index_service.create_index.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 60, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateIndex", - "fullName": "google.cloud.aiplatform.v1.IndexService.CreateIndex", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "index", - "type": ".google.cloud.aiplatform.v1.Index" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "IndexServiceClient", - "fullName": "google.cloud.aiplatform.v1.IndexServiceClient" - }, - "method": { - "shortName": "CreateIndex", - "fullName": "google.cloud.aiplatform.v1.IndexService.CreateIndex", - "service": { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1.IndexService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_IndexService_GetIndex_async", - "title": "DatasetService getIndex Sample", - "origin": "API_DEFINITION", - "description": " Gets an Index.", - "canonical": true, - "file": "index_service.get_index.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetIndex", - "fullName": "google.cloud.aiplatform.v1.IndexService.GetIndex", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Index", - "client": { - "shortName": "IndexServiceClient", - "fullName": "google.cloud.aiplatform.v1.IndexServiceClient" - }, - "method": { - "shortName": "GetIndex", - "fullName": "google.cloud.aiplatform.v1.IndexService.GetIndex", - "service": { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1.IndexService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_IndexService_ListIndexes_async", - "title": "DatasetService listIndexes Sample", - "origin": "API_DEFINITION", - "description": " Lists Indexes in a Location.", - "canonical": true, - "file": "index_service.list_indexes.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 75, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListIndexes", - "fullName": "google.cloud.aiplatform.v1.IndexService.ListIndexes", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListIndexesResponse", - "client": { - "shortName": "IndexServiceClient", - "fullName": "google.cloud.aiplatform.v1.IndexServiceClient" - }, - "method": { - "shortName": "ListIndexes", - "fullName": "google.cloud.aiplatform.v1.IndexService.ListIndexes", - "service": { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1.IndexService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_IndexService_UpdateIndex_async", - "title": "DatasetService updateIndex Sample", - "origin": "API_DEFINITION", - "description": " Updates an Index.", - "canonical": true, - "file": "index_service.update_index.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateIndex", - "fullName": "google.cloud.aiplatform.v1.IndexService.UpdateIndex", - "async": true, - "parameters": [ - { - "name": "index", - "type": ".google.cloud.aiplatform.v1.Index" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "IndexServiceClient", - "fullName": "google.cloud.aiplatform.v1.IndexServiceClient" - }, - "method": { - "shortName": "UpdateIndex", - "fullName": "google.cloud.aiplatform.v1.IndexService.UpdateIndex", - "service": { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1.IndexService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_IndexService_DeleteIndex_async", - "title": "DatasetService deleteIndex Sample", - "origin": "API_DEFINITION", - "description": " Deletes an Index. An Index can only be deleted when all its [DeployedIndexes][google.cloud.aiplatform.v1.Index.deployed_indexes] had been undeployed.", - "canonical": true, - "file": "index_service.delete_index.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteIndex", - "fullName": "google.cloud.aiplatform.v1.IndexService.DeleteIndex", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "IndexServiceClient", - "fullName": "google.cloud.aiplatform.v1.IndexServiceClient" - }, - "method": { - "shortName": "DeleteIndex", - "fullName": "google.cloud.aiplatform.v1.IndexService.DeleteIndex", - "service": { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1.IndexService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_IndexService_UpsertDatapoints_async", - "title": "DatasetService upsertDatapoints Sample", - "origin": "API_DEFINITION", - "description": " Add/update Datapoints into an Index.", - "canonical": true, - "file": "index_service.upsert_datapoints.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpsertDatapoints", - "fullName": "google.cloud.aiplatform.v1.IndexService.UpsertDatapoints", - "async": true, - "parameters": [ - { - "name": "index", - "type": "TYPE_STRING" - }, - { - "name": "datapoints", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1.UpsertDatapointsResponse", - "client": { - "shortName": "IndexServiceClient", - "fullName": "google.cloud.aiplatform.v1.IndexServiceClient" - }, - "method": { - "shortName": "UpsertDatapoints", - "fullName": "google.cloud.aiplatform.v1.IndexService.UpsertDatapoints", - "service": { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1.IndexService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_IndexService_RemoveDatapoints_async", - "title": "DatasetService removeDatapoints Sample", - "origin": "API_DEFINITION", - "description": " Remove Datapoints from an Index.", - "canonical": true, - "file": "index_service.remove_datapoints.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "RemoveDatapoints", - "fullName": "google.cloud.aiplatform.v1.IndexService.RemoveDatapoints", - "async": true, - "parameters": [ - { - "name": "index", - "type": "TYPE_STRING" - }, - { - "name": "datapoint_ids", - "type": "TYPE_STRING[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1.RemoveDatapointsResponse", - "client": { - "shortName": "IndexServiceClient", - "fullName": "google.cloud.aiplatform.v1.IndexServiceClient" - }, - "method": { - "shortName": "RemoveDatapoints", - "fullName": "google.cloud.aiplatform.v1.IndexService.RemoveDatapoints", - "service": { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1.IndexService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_CreateCustomJob_async", - "title": "DatasetService createCustomJob Sample", - "origin": "API_DEFINITION", - "description": " Creates a CustomJob. A created CustomJob right away will be attempted to be run.", - "canonical": true, - "file": "job_service.create_custom_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateCustomJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateCustomJob", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "custom_job", - "type": ".google.cloud.aiplatform.v1.CustomJob" - } - ], - "resultType": ".google.cloud.aiplatform.v1.CustomJob", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "CreateCustomJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateCustomJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_GetCustomJob_async", - "title": "DatasetService getCustomJob Sample", - "origin": "API_DEFINITION", - "description": " Gets a CustomJob.", - "canonical": true, - "file": "job_service.get_custom_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetCustomJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetCustomJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.CustomJob", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "GetCustomJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetCustomJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_ListCustomJobs_async", - "title": "DatasetService listCustomJobs Sample", - "origin": "API_DEFINITION", - "description": " Lists CustomJobs in a Location.", - "canonical": true, - "file": "job_service.list_custom_jobs.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 90, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListCustomJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListCustomJobs", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListCustomJobsResponse", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "ListCustomJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListCustomJobs", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_DeleteCustomJob_async", - "title": "DatasetService deleteCustomJob Sample", - "origin": "API_DEFINITION", - "description": " Deletes a CustomJob.", - "canonical": true, - "file": "job_service.delete_custom_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteCustomJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteCustomJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "DeleteCustomJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteCustomJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_CancelCustomJob_async", - "title": "DatasetService cancelCustomJob Sample", - "origin": "API_DEFINITION", - "description": " Cancels a CustomJob. Starts asynchronous cancellation on the CustomJob. The server makes a best effort to cancel the job, but success is not guaranteed. Clients can use [JobService.GetCustomJob][google.cloud.aiplatform.v1.JobService.GetCustomJob] or other methods to check whether the cancellation succeeded or whether the job completed despite cancellation. On successful cancellation, the CustomJob is not deleted; instead it becomes a job with a [CustomJob.error][google.cloud.aiplatform.v1.CustomJob.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to `Code.CANCELLED`, and [CustomJob.state][google.cloud.aiplatform.v1.CustomJob.state] is set to `CANCELLED`.", - "canonical": true, - "file": "job_service.cancel_custom_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CancelCustomJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CancelCustomJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.protobuf.Empty", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "CancelCustomJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CancelCustomJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_CreateDataLabelingJob_async", - "title": "DatasetService createDataLabelingJob Sample", - "origin": "API_DEFINITION", - "description": " Creates a DataLabelingJob.", - "canonical": true, - "file": "job_service.create_data_labeling_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateDataLabelingJob", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "data_labeling_job", - "type": ".google.cloud.aiplatform.v1.DataLabelingJob" - } - ], - "resultType": ".google.cloud.aiplatform.v1.DataLabelingJob", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "CreateDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateDataLabelingJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_GetDataLabelingJob_async", - "title": "DatasetService getDataLabelingJob Sample", - "origin": "API_DEFINITION", - "description": " Gets a DataLabelingJob.", - "canonical": true, - "file": "job_service.get_data_labeling_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetDataLabelingJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.DataLabelingJob", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "GetDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetDataLabelingJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_ListDataLabelingJobs_async", - "title": "DatasetService listDataLabelingJobs Sample", - "origin": "API_DEFINITION", - "description": " Lists DataLabelingJobs in a Location.", - "canonical": true, - "file": "job_service.list_data_labeling_jobs.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 96, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListDataLabelingJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListDataLabelingJobs", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListDataLabelingJobsResponse", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "ListDataLabelingJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListDataLabelingJobs", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_DeleteDataLabelingJob_async", - "title": "DatasetService deleteDataLabelingJob Sample", - "origin": "API_DEFINITION", - "description": " Deletes a DataLabelingJob.", - "canonical": true, - "file": "job_service.delete_data_labeling_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteDataLabelingJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "DeleteDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteDataLabelingJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_CancelDataLabelingJob_async", - "title": "DatasetService cancelDataLabelingJob Sample", - "origin": "API_DEFINITION", - "description": " Cancels a DataLabelingJob. Success of cancellation is not guaranteed.", - "canonical": true, - "file": "job_service.cancel_data_labeling_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CancelDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CancelDataLabelingJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.protobuf.Empty", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "CancelDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CancelDataLabelingJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_CreateHyperparameterTuningJob_async", - "title": "DatasetService createHyperparameterTuningJob Sample", - "origin": "API_DEFINITION", - "description": " Creates a HyperparameterTuningJob", - "canonical": true, - "file": "job_service.create_hyperparameter_tuning_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateHyperparameterTuningJob", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "hyperparameter_tuning_job", - "type": ".google.cloud.aiplatform.v1.HyperparameterTuningJob" - } - ], - "resultType": ".google.cloud.aiplatform.v1.HyperparameterTuningJob", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "CreateHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateHyperparameterTuningJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_GetHyperparameterTuningJob_async", - "title": "DatasetService getHyperparameterTuningJob Sample", - "origin": "API_DEFINITION", - "description": " Gets a HyperparameterTuningJob", - "canonical": true, - "file": "job_service.get_hyperparameter_tuning_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetHyperparameterTuningJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.HyperparameterTuningJob", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "GetHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetHyperparameterTuningJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_ListHyperparameterTuningJobs_async", - "title": "DatasetService listHyperparameterTuningJobs Sample", - "origin": "API_DEFINITION", - "description": " Lists HyperparameterTuningJobs in a Location.", - "canonical": true, - "file": "job_service.list_hyperparameter_tuning_jobs.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 90, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListHyperparameterTuningJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListHyperparameterTuningJobs", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListHyperparameterTuningJobsResponse", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "ListHyperparameterTuningJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListHyperparameterTuningJobs", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_DeleteHyperparameterTuningJob_async", - "title": "DatasetService deleteHyperparameterTuningJob Sample", - "origin": "API_DEFINITION", - "description": " Deletes a HyperparameterTuningJob.", - "canonical": true, - "file": "job_service.delete_hyperparameter_tuning_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteHyperparameterTuningJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "DeleteHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteHyperparameterTuningJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_CancelHyperparameterTuningJob_async", - "title": "DatasetService cancelHyperparameterTuningJob Sample", - "origin": "API_DEFINITION", - "description": " Cancels a HyperparameterTuningJob. Starts asynchronous cancellation on the HyperparameterTuningJob. The server makes a best effort to cancel the job, but success is not guaranteed. Clients can use [JobService.GetHyperparameterTuningJob][google.cloud.aiplatform.v1.JobService.GetHyperparameterTuningJob] or other methods to check whether the cancellation succeeded or whether the job completed despite cancellation. On successful cancellation, the HyperparameterTuningJob is not deleted; instead it becomes a job with a [HyperparameterTuningJob.error][google.cloud.aiplatform.v1.HyperparameterTuningJob.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to `Code.CANCELLED`, and [HyperparameterTuningJob.state][google.cloud.aiplatform.v1.HyperparameterTuningJob.state] is set to `CANCELLED`.", - "canonical": true, - "file": "job_service.cancel_hyperparameter_tuning_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CancelHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CancelHyperparameterTuningJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.protobuf.Empty", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "CancelHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CancelHyperparameterTuningJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_CreateBatchPredictionJob_async", - "title": "DatasetService createBatchPredictionJob Sample", - "origin": "API_DEFINITION", - "description": " Creates a BatchPredictionJob. A BatchPredictionJob once created will right away be attempted to start.", - "canonical": true, - "file": "job_service.create_batch_prediction_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateBatchPredictionJob", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "batch_prediction_job", - "type": ".google.cloud.aiplatform.v1.BatchPredictionJob" - } - ], - "resultType": ".google.cloud.aiplatform.v1.BatchPredictionJob", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "CreateBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateBatchPredictionJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_GetBatchPredictionJob_async", - "title": "DatasetService getBatchPredictionJob Sample", - "origin": "API_DEFINITION", - "description": " Gets a BatchPredictionJob", - "canonical": true, - "file": "job_service.get_batch_prediction_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetBatchPredictionJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.BatchPredictionJob", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "GetBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetBatchPredictionJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_ListBatchPredictionJobs_async", - "title": "DatasetService listBatchPredictionJobs Sample", - "origin": "API_DEFINITION", - "description": " Lists BatchPredictionJobs in a Location.", - "canonical": true, - "file": "job_service.list_batch_prediction_jobs.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 91, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListBatchPredictionJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListBatchPredictionJobs", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListBatchPredictionJobsResponse", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "ListBatchPredictionJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListBatchPredictionJobs", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_DeleteBatchPredictionJob_async", - "title": "DatasetService deleteBatchPredictionJob Sample", - "origin": "API_DEFINITION", - "description": " Deletes a BatchPredictionJob. Can only be called on jobs that already finished.", - "canonical": true, - "file": "job_service.delete_batch_prediction_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteBatchPredictionJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "DeleteBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteBatchPredictionJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_CancelBatchPredictionJob_async", - "title": "DatasetService cancelBatchPredictionJob Sample", - "origin": "API_DEFINITION", - "description": " Cancels a BatchPredictionJob. Starts asynchronous cancellation on the BatchPredictionJob. The server makes the best effort to cancel the job, but success is not guaranteed. Clients can use [JobService.GetBatchPredictionJob][google.cloud.aiplatform.v1.JobService.GetBatchPredictionJob] or other methods to check whether the cancellation succeeded or whether the job completed despite cancellation. On a successful cancellation, the BatchPredictionJob is not deleted;instead its [BatchPredictionJob.state][google.cloud.aiplatform.v1.BatchPredictionJob.state] is set to `CANCELLED`. Any files already outputted by the job are not deleted.", - "canonical": true, - "file": "job_service.cancel_batch_prediction_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CancelBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CancelBatchPredictionJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.protobuf.Empty", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "CancelBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CancelBatchPredictionJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_CreateModelDeploymentMonitoringJob_async", - "title": "DatasetService createModelDeploymentMonitoringJob Sample", - "origin": "API_DEFINITION", - "description": " Creates a ModelDeploymentMonitoringJob. It will run periodically on a configured interval.", - "canonical": true, - "file": "job_service.create_model_deployment_monitoring_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateModelDeploymentMonitoringJob", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "model_deployment_monitoring_job", - "type": ".google.cloud.aiplatform.v1.ModelDeploymentMonitoringJob" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ModelDeploymentMonitoringJob", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "CreateModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateModelDeploymentMonitoringJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_SearchModelDeploymentMonitoringStatsAnomalies_async", - "title": "DatasetService searchModelDeploymentMonitoringStatsAnomalies Sample", - "origin": "API_DEFINITION", - "description": " Searches Model Monitoring Statistics generated within a given time window.", - "canonical": true, - "file": "job_service.search_model_deployment_monitoring_stats_anomalies.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 95, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "SearchModelDeploymentMonitoringStatsAnomalies", - "fullName": "google.cloud.aiplatform.v1.JobService.SearchModelDeploymentMonitoringStatsAnomalies", - "async": true, - "parameters": [ - { - "name": "model_deployment_monitoring_job", - "type": "TYPE_STRING" - }, - { - "name": "deployed_model_id", - "type": "TYPE_STRING" - }, - { - "name": "feature_display_name", - "type": "TYPE_STRING" - }, - { - "name": "objectives", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "start_time", - "type": ".google.protobuf.Timestamp" - }, - { - "name": "end_time", - "type": ".google.protobuf.Timestamp" - } - ], - "resultType": ".google.cloud.aiplatform.v1.SearchModelDeploymentMonitoringStatsAnomaliesResponse", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "SearchModelDeploymentMonitoringStatsAnomalies", - "fullName": "google.cloud.aiplatform.v1.JobService.SearchModelDeploymentMonitoringStatsAnomalies", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_GetModelDeploymentMonitoringJob_async", - "title": "DatasetService getModelDeploymentMonitoringJob Sample", - "origin": "API_DEFINITION", - "description": " Gets a ModelDeploymentMonitoringJob.", - "canonical": true, - "file": "job_service.get_model_deployment_monitoring_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetModelDeploymentMonitoringJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ModelDeploymentMonitoringJob", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "GetModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetModelDeploymentMonitoringJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_ListModelDeploymentMonitoringJobs_async", - "title": "DatasetService listModelDeploymentMonitoringJobs Sample", - "origin": "API_DEFINITION", - "description": " Lists ModelDeploymentMonitoringJobs in a Location.", - "canonical": true, - "file": "job_service.list_model_deployment_monitoring_jobs.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 87, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListModelDeploymentMonitoringJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListModelDeploymentMonitoringJobs", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListModelDeploymentMonitoringJobsResponse", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "ListModelDeploymentMonitoringJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListModelDeploymentMonitoringJobs", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_UpdateModelDeploymentMonitoringJob_async", - "title": "DatasetService updateModelDeploymentMonitoringJob Sample", - "origin": "API_DEFINITION", - "description": " Updates a ModelDeploymentMonitoringJob.", - "canonical": true, - "file": "job_service.update_model_deployment_monitoring_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 84, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.UpdateModelDeploymentMonitoringJob", - "async": true, - "parameters": [ - { - "name": "model_deployment_monitoring_job", - "type": ".google.cloud.aiplatform.v1.ModelDeploymentMonitoringJob" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "UpdateModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.UpdateModelDeploymentMonitoringJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_DeleteModelDeploymentMonitoringJob_async", - "title": "DatasetService deleteModelDeploymentMonitoringJob Sample", - "origin": "API_DEFINITION", - "description": " Deletes a ModelDeploymentMonitoringJob.", - "canonical": true, - "file": "job_service.delete_model_deployment_monitoring_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteModelDeploymentMonitoringJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "DeleteModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteModelDeploymentMonitoringJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_PauseModelDeploymentMonitoringJob_async", - "title": "DatasetService pauseModelDeploymentMonitoringJob Sample", - "origin": "API_DEFINITION", - "description": " Pauses a ModelDeploymentMonitoringJob. If the job is running, the server makes a best effort to cancel the job. Will mark [ModelDeploymentMonitoringJob.state][google.cloud.aiplatform.v1.ModelDeploymentMonitoringJob.state] to 'PAUSED'.", - "canonical": true, - "file": "job_service.pause_model_deployment_monitoring_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "PauseModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.PauseModelDeploymentMonitoringJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.protobuf.Empty", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "PauseModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.PauseModelDeploymentMonitoringJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_JobService_ResumeModelDeploymentMonitoringJob_async", - "title": "DatasetService resumeModelDeploymentMonitoringJob Sample", - "origin": "API_DEFINITION", - "description": " Resumes a paused ModelDeploymentMonitoringJob. It will start to run from next scheduled time. A deleted ModelDeploymentMonitoringJob can't be resumed.", - "canonical": true, - "file": "job_service.resume_model_deployment_monitoring_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ResumeModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.ResumeModelDeploymentMonitoringJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.protobuf.Empty", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1.JobServiceClient" - }, - "method": { - "shortName": "ResumeModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.ResumeModelDeploymentMonitoringJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_CreateMetadataStore_async", - "title": "DatasetService createMetadataStore Sample", - "origin": "API_DEFINITION", - "description": " Initializes a MetadataStore, including allocation of resources.", - "canonical": true, - "file": "metadata_service.create_metadata_store.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 72, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateMetadataStore", - "fullName": "google.cloud.aiplatform.v1.MetadataService.CreateMetadataStore", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "metadata_store", - "type": ".google.cloud.aiplatform.v1.MetadataStore" - }, - { - "name": "metadata_store_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "CreateMetadataStore", - "fullName": "google.cloud.aiplatform.v1.MetadataService.CreateMetadataStore", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_GetMetadataStore_async", - "title": "DatasetService getMetadataStore Sample", - "origin": "API_DEFINITION", - "description": " Retrieves a specific MetadataStore.", - "canonical": true, - "file": "metadata_service.get_metadata_store.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetMetadataStore", - "fullName": "google.cloud.aiplatform.v1.MetadataService.GetMetadataStore", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.MetadataStore", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "GetMetadataStore", - "fullName": "google.cloud.aiplatform.v1.MetadataService.GetMetadataStore", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_ListMetadataStores_async", - "title": "DatasetService listMetadataStores Sample", - "origin": "API_DEFINITION", - "description": " Lists MetadataStores for a Location.", - "canonical": true, - "file": "metadata_service.list_metadata_stores.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 72, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListMetadataStores", - "fullName": "google.cloud.aiplatform.v1.MetadataService.ListMetadataStores", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListMetadataStoresResponse", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "ListMetadataStores", - "fullName": "google.cloud.aiplatform.v1.MetadataService.ListMetadataStores", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_DeleteMetadataStore_async", - "title": "DatasetService deleteMetadataStore Sample", - "origin": "API_DEFINITION", - "description": " Deletes a single MetadataStore and all its child resources (Artifacts, Executions, and Contexts).", - "canonical": true, - "file": "metadata_service.delete_metadata_store.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteMetadataStore", - "fullName": "google.cloud.aiplatform.v1.MetadataService.DeleteMetadataStore", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "force", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "DeleteMetadataStore", - "fullName": "google.cloud.aiplatform.v1.MetadataService.DeleteMetadataStore", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_CreateArtifact_async", - "title": "DatasetService createArtifact Sample", - "origin": "API_DEFINITION", - "description": " Creates an Artifact associated with a MetadataStore.", - "canonical": true, - "file": "metadata_service.create_artifact.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 71, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateArtifact", - "fullName": "google.cloud.aiplatform.v1.MetadataService.CreateArtifact", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "artifact", - "type": ".google.cloud.aiplatform.v1.Artifact" - }, - { - "name": "artifact_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Artifact", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "CreateArtifact", - "fullName": "google.cloud.aiplatform.v1.MetadataService.CreateArtifact", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_GetArtifact_async", - "title": "DatasetService getArtifact Sample", - "origin": "API_DEFINITION", - "description": " Retrieves a specific Artifact.", - "canonical": true, - "file": "metadata_service.get_artifact.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetArtifact", - "fullName": "google.cloud.aiplatform.v1.MetadataService.GetArtifact", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Artifact", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "GetArtifact", - "fullName": "google.cloud.aiplatform.v1.MetadataService.GetArtifact", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_ListArtifacts_async", - "title": "DatasetService listArtifacts Sample", - "origin": "API_DEFINITION", - "description": " Lists Artifacts in the MetadataStore.", - "canonical": true, - "file": "metadata_service.list_artifacts.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 106, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListArtifacts", - "fullName": "google.cloud.aiplatform.v1.MetadataService.ListArtifacts", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListArtifactsResponse", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "ListArtifacts", - "fullName": "google.cloud.aiplatform.v1.MetadataService.ListArtifacts", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_UpdateArtifact_async", - "title": "DatasetService updateArtifact Sample", - "origin": "API_DEFINITION", - "description": " Updates a stored Artifact.", - "canonical": true, - "file": "metadata_service.update_artifact.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 67, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateArtifact", - "fullName": "google.cloud.aiplatform.v1.MetadataService.UpdateArtifact", - "async": true, - "parameters": [ - { - "name": "artifact", - "type": ".google.cloud.aiplatform.v1.Artifact" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "allow_missing", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Artifact", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "UpdateArtifact", - "fullName": "google.cloud.aiplatform.v1.MetadataService.UpdateArtifact", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_DeleteArtifact_async", - "title": "DatasetService deleteArtifact Sample", - "origin": "API_DEFINITION", - "description": " Deletes an Artifact.", - "canonical": true, - "file": "metadata_service.delete_artifact.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 62, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteArtifact", - "fullName": "google.cloud.aiplatform.v1.MetadataService.DeleteArtifact", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "etag", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "DeleteArtifact", - "fullName": "google.cloud.aiplatform.v1.MetadataService.DeleteArtifact", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_PurgeArtifacts_async", - "title": "DatasetService purgeArtifacts Sample", - "origin": "API_DEFINITION", - "description": " Purges Artifacts.", - "canonical": true, - "file": "metadata_service.purge_artifacts.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 68, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "PurgeArtifacts", - "fullName": "google.cloud.aiplatform.v1.MetadataService.PurgeArtifacts", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "force", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "PurgeArtifacts", - "fullName": "google.cloud.aiplatform.v1.MetadataService.PurgeArtifacts", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_CreateContext_async", - "title": "DatasetService createContext Sample", - "origin": "API_DEFINITION", - "description": " Creates a Context associated with a MetadataStore.", - "canonical": true, - "file": "metadata_service.create_context.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 71, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateContext", - "fullName": "google.cloud.aiplatform.v1.MetadataService.CreateContext", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "context", - "type": ".google.cloud.aiplatform.v1.Context" - }, - { - "name": "context_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Context", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "CreateContext", - "fullName": "google.cloud.aiplatform.v1.MetadataService.CreateContext", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_GetContext_async", - "title": "DatasetService getContext Sample", - "origin": "API_DEFINITION", - "description": " Retrieves a specific Context.", - "canonical": true, - "file": "metadata_service.get_context.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetContext", - "fullName": "google.cloud.aiplatform.v1.MetadataService.GetContext", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Context", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "GetContext", - "fullName": "google.cloud.aiplatform.v1.MetadataService.GetContext", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_ListContexts_async", - "title": "DatasetService listContexts Sample", - "origin": "API_DEFINITION", - "description": " Lists Contexts on the MetadataStore.", - "canonical": true, - "file": "metadata_service.list_contexts.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 109, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListContexts", - "fullName": "google.cloud.aiplatform.v1.MetadataService.ListContexts", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListContextsResponse", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "ListContexts", - "fullName": "google.cloud.aiplatform.v1.MetadataService.ListContexts", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_UpdateContext_async", - "title": "DatasetService updateContext Sample", - "origin": "API_DEFINITION", - "description": " Updates a stored Context.", - "canonical": true, - "file": "metadata_service.update_context.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 67, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateContext", - "fullName": "google.cloud.aiplatform.v1.MetadataService.UpdateContext", - "async": true, - "parameters": [ - { - "name": "context", - "type": ".google.cloud.aiplatform.v1.Context" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "allow_missing", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Context", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "UpdateContext", - "fullName": "google.cloud.aiplatform.v1.MetadataService.UpdateContext", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_DeleteContext_async", - "title": "DatasetService deleteContext Sample", - "origin": "API_DEFINITION", - "description": " Deletes a stored Context.", - "canonical": true, - "file": "metadata_service.delete_context.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 67, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteContext", - "fullName": "google.cloud.aiplatform.v1.MetadataService.DeleteContext", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "force", - "type": "TYPE_BOOL" - }, - { - "name": "etag", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "DeleteContext", - "fullName": "google.cloud.aiplatform.v1.MetadataService.DeleteContext", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_PurgeContexts_async", - "title": "DatasetService purgeContexts Sample", - "origin": "API_DEFINITION", - "description": " Purges Contexts.", - "canonical": true, - "file": "metadata_service.purge_contexts.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 68, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "PurgeContexts", - "fullName": "google.cloud.aiplatform.v1.MetadataService.PurgeContexts", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "force", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "PurgeContexts", - "fullName": "google.cloud.aiplatform.v1.MetadataService.PurgeContexts", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_AddContextArtifactsAndExecutions_async", - "title": "DatasetService addContextArtifactsAndExecutions Sample", - "origin": "API_DEFINITION", - "description": " Adds a set of Artifacts and Executions to a Context. If any of the Artifacts or Executions have already been added to a Context, they are simply skipped.", - "canonical": true, - "file": "metadata_service.add_context_artifacts_and_executions.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 69, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "AddContextArtifactsAndExecutions", - "fullName": "google.cloud.aiplatform.v1.MetadataService.AddContextArtifactsAndExecutions", - "async": true, - "parameters": [ - { - "name": "context", - "type": "TYPE_STRING" - }, - { - "name": "artifacts", - "type": "TYPE_STRING[]" - }, - { - "name": "executions", - "type": "TYPE_STRING[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1.AddContextArtifactsAndExecutionsResponse", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "AddContextArtifactsAndExecutions", - "fullName": "google.cloud.aiplatform.v1.MetadataService.AddContextArtifactsAndExecutions", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_AddContextChildren_async", - "title": "DatasetService addContextChildren Sample", - "origin": "API_DEFINITION", - "description": " Adds a set of Contexts as children to a parent Context. If any of the child Contexts have already been added to the parent Context, they are simply skipped. If this call would create a cycle or cause any Context to have more than 10 parents, the request will fail with an INVALID_ARGUMENT error.", - "canonical": true, - "file": "metadata_service.add_context_children.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "AddContextChildren", - "fullName": "google.cloud.aiplatform.v1.MetadataService.AddContextChildren", - "async": true, - "parameters": [ - { - "name": "context", - "type": "TYPE_STRING" - }, - { - "name": "child_contexts", - "type": "TYPE_STRING[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1.AddContextChildrenResponse", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "AddContextChildren", - "fullName": "google.cloud.aiplatform.v1.MetadataService.AddContextChildren", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_RemoveContextChildren_async", - "title": "DatasetService removeContextChildren Sample", - "origin": "API_DEFINITION", - "description": " Remove a set of children contexts from a parent Context. If any of the child Contexts were NOT added to the parent Context, they are simply skipped.", - "canonical": true, - "file": "metadata_service.remove_context_children.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "RemoveContextChildren", - "fullName": "google.cloud.aiplatform.v1.MetadataService.RemoveContextChildren", - "async": true, - "parameters": [ - { - "name": "context", - "type": "TYPE_STRING" - }, - { - "name": "child_contexts", - "type": "TYPE_STRING[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1.RemoveContextChildrenResponse", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "RemoveContextChildren", - "fullName": "google.cloud.aiplatform.v1.MetadataService.RemoveContextChildren", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_QueryContextLineageSubgraph_async", - "title": "DatasetService queryContextLineageSubgraph Sample", - "origin": "API_DEFINITION", - "description": " Retrieves Artifacts and Executions within the specified Context, connected by Event edges and returned as a LineageSubgraph.", - "canonical": true, - "file": "metadata_service.query_context_lineage_subgraph.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "QueryContextLineageSubgraph", - "fullName": "google.cloud.aiplatform.v1.MetadataService.QueryContextLineageSubgraph", - "async": true, - "parameters": [ - { - "name": "context", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.LineageSubgraph", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "QueryContextLineageSubgraph", - "fullName": "google.cloud.aiplatform.v1.MetadataService.QueryContextLineageSubgraph", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_CreateExecution_async", - "title": "DatasetService createExecution Sample", - "origin": "API_DEFINITION", - "description": " Creates an Execution associated with a MetadataStore.", - "canonical": true, - "file": "metadata_service.create_execution.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 72, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateExecution", - "fullName": "google.cloud.aiplatform.v1.MetadataService.CreateExecution", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "execution", - "type": ".google.cloud.aiplatform.v1.Execution" - }, - { - "name": "execution_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Execution", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "CreateExecution", - "fullName": "google.cloud.aiplatform.v1.MetadataService.CreateExecution", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_GetExecution_async", - "title": "DatasetService getExecution Sample", - "origin": "API_DEFINITION", - "description": " Retrieves a specific Execution.", - "canonical": true, - "file": "metadata_service.get_execution.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetExecution", - "fullName": "google.cloud.aiplatform.v1.MetadataService.GetExecution", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Execution", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "GetExecution", - "fullName": "google.cloud.aiplatform.v1.MetadataService.GetExecution", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_ListExecutions_async", - "title": "DatasetService listExecutions Sample", - "origin": "API_DEFINITION", - "description": " Lists Executions in the MetadataStore.", - "canonical": true, - "file": "metadata_service.list_executions.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 106, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListExecutions", - "fullName": "google.cloud.aiplatform.v1.MetadataService.ListExecutions", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListExecutionsResponse", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "ListExecutions", - "fullName": "google.cloud.aiplatform.v1.MetadataService.ListExecutions", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_UpdateExecution_async", - "title": "DatasetService updateExecution Sample", - "origin": "API_DEFINITION", - "description": " Updates a stored Execution.", - "canonical": true, - "file": "metadata_service.update_execution.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 67, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateExecution", - "fullName": "google.cloud.aiplatform.v1.MetadataService.UpdateExecution", - "async": true, - "parameters": [ - { - "name": "execution", - "type": ".google.cloud.aiplatform.v1.Execution" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "allow_missing", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Execution", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "UpdateExecution", - "fullName": "google.cloud.aiplatform.v1.MetadataService.UpdateExecution", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_DeleteExecution_async", - "title": "DatasetService deleteExecution Sample", - "origin": "API_DEFINITION", - "description": " Deletes an Execution.", - "canonical": true, - "file": "metadata_service.delete_execution.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 62, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteExecution", - "fullName": "google.cloud.aiplatform.v1.MetadataService.DeleteExecution", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "etag", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "DeleteExecution", - "fullName": "google.cloud.aiplatform.v1.MetadataService.DeleteExecution", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_PurgeExecutions_async", - "title": "DatasetService purgeExecutions Sample", - "origin": "API_DEFINITION", - "description": " Purges Executions.", - "canonical": true, - "file": "metadata_service.purge_executions.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 68, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "PurgeExecutions", - "fullName": "google.cloud.aiplatform.v1.MetadataService.PurgeExecutions", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "force", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "PurgeExecutions", - "fullName": "google.cloud.aiplatform.v1.MetadataService.PurgeExecutions", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_AddExecutionEvents_async", - "title": "DatasetService addExecutionEvents Sample", - "origin": "API_DEFINITION", - "description": " Adds Events to the specified Execution. An Event indicates whether an Artifact was used as an input or output for an Execution. If an Event already exists between the Execution and the Artifact, the Event is skipped.", - "canonical": true, - "file": "metadata_service.add_execution_events.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 60, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "AddExecutionEvents", - "fullName": "google.cloud.aiplatform.v1.MetadataService.AddExecutionEvents", - "async": true, - "parameters": [ - { - "name": "execution", - "type": "TYPE_STRING" - }, - { - "name": "events", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1.AddExecutionEventsResponse", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "AddExecutionEvents", - "fullName": "google.cloud.aiplatform.v1.MetadataService.AddExecutionEvents", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_QueryExecutionInputsAndOutputs_async", - "title": "DatasetService queryExecutionInputsAndOutputs Sample", - "origin": "API_DEFINITION", - "description": " Obtains the set of input and output Artifacts for this Execution, in the form of LineageSubgraph that also contains the Execution and connecting Events.", - "canonical": true, - "file": "metadata_service.query_execution_inputs_and_outputs.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "QueryExecutionInputsAndOutputs", - "fullName": "google.cloud.aiplatform.v1.MetadataService.QueryExecutionInputsAndOutputs", - "async": true, - "parameters": [ - { - "name": "execution", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.LineageSubgraph", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "QueryExecutionInputsAndOutputs", - "fullName": "google.cloud.aiplatform.v1.MetadataService.QueryExecutionInputsAndOutputs", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_CreateMetadataSchema_async", - "title": "DatasetService createMetadataSchema Sample", - "origin": "API_DEFINITION", - "description": " Creates a MetadataSchema.", - "canonical": true, - "file": "metadata_service.create_metadata_schema.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 72, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateMetadataSchema", - "fullName": "google.cloud.aiplatform.v1.MetadataService.CreateMetadataSchema", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "metadata_schema", - "type": ".google.cloud.aiplatform.v1.MetadataSchema" - }, - { - "name": "metadata_schema_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.MetadataSchema", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "CreateMetadataSchema", - "fullName": "google.cloud.aiplatform.v1.MetadataService.CreateMetadataSchema", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_GetMetadataSchema_async", - "title": "DatasetService getMetadataSchema Sample", - "origin": "API_DEFINITION", - "description": " Retrieves a specific MetadataSchema.", - "canonical": true, - "file": "metadata_service.get_metadata_schema.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetMetadataSchema", - "fullName": "google.cloud.aiplatform.v1.MetadataService.GetMetadataSchema", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.MetadataSchema", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "GetMetadataSchema", - "fullName": "google.cloud.aiplatform.v1.MetadataService.GetMetadataSchema", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_ListMetadataSchemas_async", - "title": "DatasetService listMetadataSchemas Sample", - "origin": "API_DEFINITION", - "description": " Lists MetadataSchemas.", - "canonical": true, - "file": "metadata_service.list_metadata_schemas.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 76, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListMetadataSchemas", - "fullName": "google.cloud.aiplatform.v1.MetadataService.ListMetadataSchemas", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListMetadataSchemasResponse", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "ListMetadataSchemas", - "fullName": "google.cloud.aiplatform.v1.MetadataService.ListMetadataSchemas", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MetadataService_QueryArtifactLineageSubgraph_async", - "title": "DatasetService queryArtifactLineageSubgraph Sample", - "origin": "API_DEFINITION", - "description": " Retrieves lineage of an Artifact represented through Artifacts and Executions connected by Event edges and returned as a LineageSubgraph.", - "canonical": true, - "file": "metadata_service.query_artifact_lineage_subgraph.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 88, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "QueryArtifactLineageSubgraph", - "fullName": "google.cloud.aiplatform.v1.MetadataService.QueryArtifactLineageSubgraph", - "async": true, - "parameters": [ - { - "name": "artifact", - "type": "TYPE_STRING" - }, - { - "name": "max_hops", - "type": "TYPE_INT32" - }, - { - "name": "filter", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.LineageSubgraph", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1.MetadataServiceClient" - }, - "method": { - "shortName": "QueryArtifactLineageSubgraph", - "fullName": "google.cloud.aiplatform.v1.MetadataService.QueryArtifactLineageSubgraph", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MigrationService_SearchMigratableResources_async", - "title": "DatasetService searchMigratableResources Sample", - "origin": "API_DEFINITION", - "description": " Searches all of the resources in automl.googleapis.com, datalabeling.googleapis.com and ml.googleapis.com that can be migrated to Vertex AI's given location.", - "canonical": true, - "file": "migration_service.search_migratable_resources.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 82, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "SearchMigratableResources", - "fullName": "google.cloud.aiplatform.v1.MigrationService.SearchMigratableResources", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.SearchMigratableResourcesResponse", - "client": { - "shortName": "MigrationServiceClient", - "fullName": "google.cloud.aiplatform.v1.MigrationServiceClient" - }, - "method": { - "shortName": "SearchMigratableResources", - "fullName": "google.cloud.aiplatform.v1.MigrationService.SearchMigratableResources", - "service": { - "shortName": "MigrationService", - "fullName": "google.cloud.aiplatform.v1.MigrationService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_MigrationService_BatchMigrateResources_async", - "title": "DatasetService batchMigrateResources Sample", - "origin": "API_DEFINITION", - "description": " Batch migrates resources from ml.googleapis.com, automl.googleapis.com, and datalabeling.googleapis.com to Vertex AI.", - "canonical": true, - "file": "migration_service.batch_migrate_resources.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 62, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "BatchMigrateResources", - "fullName": "google.cloud.aiplatform.v1.MigrationService.BatchMigrateResources", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "migrate_resource_requests", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "MigrationServiceClient", - "fullName": "google.cloud.aiplatform.v1.MigrationServiceClient" - }, - "method": { - "shortName": "BatchMigrateResources", - "fullName": "google.cloud.aiplatform.v1.MigrationService.BatchMigrateResources", - "service": { - "shortName": "MigrationService", - "fullName": "google.cloud.aiplatform.v1.MigrationService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_ModelService_UploadModel_async", - "title": "DatasetService uploadModel Sample", - "origin": "API_DEFINITION", - "description": " Uploads a Model artifact into Vertex AI.", - "canonical": true, - "file": "model_service.upload_model.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 72, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UploadModel", - "fullName": "google.cloud.aiplatform.v1.ModelService.UploadModel", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "parent_model", - "type": "TYPE_STRING" - }, - { - "name": "model_id", - "type": "TYPE_STRING" - }, - { - "name": "model", - "type": ".google.cloud.aiplatform.v1.Model" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1.ModelServiceClient" - }, - "method": { - "shortName": "UploadModel", - "fullName": "google.cloud.aiplatform.v1.ModelService.UploadModel", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_ModelService_GetModel_async", - "title": "DatasetService getModel Sample", - "origin": "API_DEFINITION", - "description": " Gets a Model.", - "canonical": true, - "file": "model_service.get_model.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 63, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetModel", - "fullName": "google.cloud.aiplatform.v1.ModelService.GetModel", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Model", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1.ModelServiceClient" - }, - "method": { - "shortName": "GetModel", - "fullName": "google.cloud.aiplatform.v1.ModelService.GetModel", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_ModelService_ListModels_async", - "title": "DatasetService listModels Sample", - "origin": "API_DEFINITION", - "description": " Lists Models in a Location.", - "canonical": true, - "file": "model_service.list_models.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 97, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListModels", - "fullName": "google.cloud.aiplatform.v1.ModelService.ListModels", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListModelsResponse", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1.ModelServiceClient" - }, - "method": { - "shortName": "ListModels", - "fullName": "google.cloud.aiplatform.v1.ModelService.ListModels", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_ModelService_ListModelVersions_async", - "title": "DatasetService listModelVersions Sample", - "origin": "API_DEFINITION", - "description": " Lists versions of the specified model.", - "canonical": true, - "file": "model_service.list_model_versions.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 81, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListModelVersions", - "fullName": "google.cloud.aiplatform.v1.ModelService.ListModelVersions", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListModelVersionsResponse", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1.ModelServiceClient" - }, - "method": { - "shortName": "ListModelVersions", - "fullName": "google.cloud.aiplatform.v1.ModelService.ListModelVersions", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_ModelService_UpdateModel_async", - "title": "DatasetService updateModel Sample", - "origin": "API_DEFINITION", - "description": " Updates a Model.", - "canonical": true, - "file": "model_service.update_model.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 76, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateModel", - "fullName": "google.cloud.aiplatform.v1.ModelService.UpdateModel", - "async": true, - "parameters": [ - { - "name": "model", - "type": ".google.cloud.aiplatform.v1.Model" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Model", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1.ModelServiceClient" - }, - "method": { - "shortName": "UpdateModel", - "fullName": "google.cloud.aiplatform.v1.ModelService.UpdateModel", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_ModelService_DeleteModel_async", - "title": "DatasetService deleteModel Sample", - "origin": "API_DEFINITION", - "description": " Deletes a Model. A model cannot be deleted if any [Endpoint][google.cloud.aiplatform.v1.Endpoint] resource has a [DeployedModel][google.cloud.aiplatform.v1.DeployedModel] based on the model in its [deployed_models][google.cloud.aiplatform.v1.Endpoint.deployed_models] field.", - "canonical": true, - "file": "model_service.delete_model.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteModel", - "fullName": "google.cloud.aiplatform.v1.ModelService.DeleteModel", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1.ModelServiceClient" - }, - "method": { - "shortName": "DeleteModel", - "fullName": "google.cloud.aiplatform.v1.ModelService.DeleteModel", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_ModelService_DeleteModelVersion_async", - "title": "DatasetService deleteModelVersion Sample", - "origin": "API_DEFINITION", - "description": " Deletes a Model version. Model version can only be deleted if there are no [DeployedModels][] created from it. Deleting the only version in the Model is not allowed. Use [DeleteModel][google.cloud.aiplatform.v1.ModelService.DeleteModel] for deleting the Model instead.", - "canonical": true, - "file": "model_service.delete_model_version.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteModelVersion", - "fullName": "google.cloud.aiplatform.v1.ModelService.DeleteModelVersion", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1.ModelServiceClient" - }, - "method": { - "shortName": "DeleteModelVersion", - "fullName": "google.cloud.aiplatform.v1.ModelService.DeleteModelVersion", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_ModelService_MergeVersionAliases_async", - "title": "DatasetService mergeVersionAliases Sample", - "origin": "API_DEFINITION", - "description": " Merges a set of aliases for a Model version.", - "canonical": true, - "file": "model_service.merge_version_aliases.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 70, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "MergeVersionAliases", - "fullName": "google.cloud.aiplatform.v1.ModelService.MergeVersionAliases", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "version_aliases", - "type": "TYPE_STRING[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Model", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1.ModelServiceClient" - }, - "method": { - "shortName": "MergeVersionAliases", - "fullName": "google.cloud.aiplatform.v1.ModelService.MergeVersionAliases", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_ModelService_ExportModel_async", - "title": "DatasetService exportModel Sample", - "origin": "API_DEFINITION", - "description": " Exports a trained, exportable Model to a location specified by the user. A Model is considered to be exportable if it has at least one [supported export format][google.cloud.aiplatform.v1.Model.supported_export_formats].", - "canonical": true, - "file": "model_service.export_model.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 61, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ExportModel", - "fullName": "google.cloud.aiplatform.v1.ModelService.ExportModel", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "output_config", - "type": ".google.cloud.aiplatform.v1.ExportModelRequest.OutputConfig" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1.ModelServiceClient" - }, - "method": { - "shortName": "ExportModel", - "fullName": "google.cloud.aiplatform.v1.ModelService.ExportModel", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_ModelService_ImportModelEvaluation_async", - "title": "DatasetService importModelEvaluation Sample", - "origin": "API_DEFINITION", - "description": " Imports an externally generated ModelEvaluation.", - "canonical": true, - "file": "model_service.import_model_evaluation.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ImportModelEvaluation", - "fullName": "google.cloud.aiplatform.v1.ModelService.ImportModelEvaluation", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "model_evaluation", - "type": ".google.cloud.aiplatform.v1.ModelEvaluation" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ModelEvaluation", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1.ModelServiceClient" - }, - "method": { - "shortName": "ImportModelEvaluation", - "fullName": "google.cloud.aiplatform.v1.ModelService.ImportModelEvaluation", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_ModelService_BatchImportModelEvaluationSlices_async", - "title": "DatasetService batchImportModelEvaluationSlices Sample", - "origin": "API_DEFINITION", - "description": " Imports a list of externally generated ModelEvaluationSlice.", - "canonical": true, - "file": "model_service.batch_import_model_evaluation_slices.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 60, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "BatchImportModelEvaluationSlices", - "fullName": "google.cloud.aiplatform.v1.ModelService.BatchImportModelEvaluationSlices", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "model_evaluation_slices", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1.BatchImportModelEvaluationSlicesResponse", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1.ModelServiceClient" - }, - "method": { - "shortName": "BatchImportModelEvaluationSlices", - "fullName": "google.cloud.aiplatform.v1.ModelService.BatchImportModelEvaluationSlices", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_ModelService_GetModelEvaluation_async", - "title": "DatasetService getModelEvaluation Sample", - "origin": "API_DEFINITION", - "description": " Gets a ModelEvaluation.", - "canonical": true, - "file": "model_service.get_model_evaluation.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetModelEvaluation", - "fullName": "google.cloud.aiplatform.v1.ModelService.GetModelEvaluation", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ModelEvaluation", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1.ModelServiceClient" - }, - "method": { - "shortName": "GetModelEvaluation", - "fullName": "google.cloud.aiplatform.v1.ModelService.GetModelEvaluation", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_ModelService_ListModelEvaluations_async", - "title": "DatasetService listModelEvaluations Sample", - "origin": "API_DEFINITION", - "description": " Lists ModelEvaluations in a Model.", - "canonical": true, - "file": "model_service.list_model_evaluations.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 75, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListModelEvaluations", - "fullName": "google.cloud.aiplatform.v1.ModelService.ListModelEvaluations", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListModelEvaluationsResponse", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1.ModelServiceClient" - }, - "method": { - "shortName": "ListModelEvaluations", - "fullName": "google.cloud.aiplatform.v1.ModelService.ListModelEvaluations", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_ModelService_GetModelEvaluationSlice_async", - "title": "DatasetService getModelEvaluationSlice Sample", - "origin": "API_DEFINITION", - "description": " Gets a ModelEvaluationSlice.", - "canonical": true, - "file": "model_service.get_model_evaluation_slice.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetModelEvaluationSlice", - "fullName": "google.cloud.aiplatform.v1.ModelService.GetModelEvaluationSlice", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ModelEvaluationSlice", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1.ModelServiceClient" - }, - "method": { - "shortName": "GetModelEvaluationSlice", - "fullName": "google.cloud.aiplatform.v1.ModelService.GetModelEvaluationSlice", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_ModelService_ListModelEvaluationSlices_async", - "title": "DatasetService listModelEvaluationSlices Sample", - "origin": "API_DEFINITION", - "description": " Lists ModelEvaluationSlices in a ModelEvaluation.", - "canonical": true, - "file": "model_service.list_model_evaluation_slices.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 77, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListModelEvaluationSlices", - "fullName": "google.cloud.aiplatform.v1.ModelService.ListModelEvaluationSlices", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListModelEvaluationSlicesResponse", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1.ModelServiceClient" - }, - "method": { - "shortName": "ListModelEvaluationSlices", - "fullName": "google.cloud.aiplatform.v1.ModelService.ListModelEvaluationSlices", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_PipelineService_CreateTrainingPipeline_async", - "title": "DatasetService createTrainingPipeline Sample", - "origin": "API_DEFINITION", - "description": " Creates a TrainingPipeline. A created TrainingPipeline right away will be attempted to be run.", - "canonical": true, - "file": "pipeline_service.create_training_pipeline.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1.PipelineService.CreateTrainingPipeline", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "training_pipeline", - "type": ".google.cloud.aiplatform.v1.TrainingPipeline" - } - ], - "resultType": ".google.cloud.aiplatform.v1.TrainingPipeline", - "client": { - "shortName": "PipelineServiceClient", - "fullName": "google.cloud.aiplatform.v1.PipelineServiceClient" - }, - "method": { - "shortName": "CreateTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1.PipelineService.CreateTrainingPipeline", - "service": { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1.PipelineService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_PipelineService_GetTrainingPipeline_async", - "title": "DatasetService getTrainingPipeline Sample", - "origin": "API_DEFINITION", - "description": " Gets a TrainingPipeline.", - "canonical": true, - "file": "pipeline_service.get_training_pipeline.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1.PipelineService.GetTrainingPipeline", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.TrainingPipeline", - "client": { - "shortName": "PipelineServiceClient", - "fullName": "google.cloud.aiplatform.v1.PipelineServiceClient" - }, - "method": { - "shortName": "GetTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1.PipelineService.GetTrainingPipeline", - "service": { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1.PipelineService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_PipelineService_ListTrainingPipelines_async", - "title": "DatasetService listTrainingPipelines Sample", - "origin": "API_DEFINITION", - "description": " Lists TrainingPipelines in a Location.", - "canonical": true, - "file": "pipeline_service.list_training_pipelines.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 90, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListTrainingPipelines", - "fullName": "google.cloud.aiplatform.v1.PipelineService.ListTrainingPipelines", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListTrainingPipelinesResponse", - "client": { - "shortName": "PipelineServiceClient", - "fullName": "google.cloud.aiplatform.v1.PipelineServiceClient" - }, - "method": { - "shortName": "ListTrainingPipelines", - "fullName": "google.cloud.aiplatform.v1.PipelineService.ListTrainingPipelines", - "service": { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1.PipelineService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_PipelineService_DeleteTrainingPipeline_async", - "title": "DatasetService deleteTrainingPipeline Sample", - "origin": "API_DEFINITION", - "description": " Deletes a TrainingPipeline.", - "canonical": true, - "file": "pipeline_service.delete_training_pipeline.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1.PipelineService.DeleteTrainingPipeline", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "PipelineServiceClient", - "fullName": "google.cloud.aiplatform.v1.PipelineServiceClient" - }, - "method": { - "shortName": "DeleteTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1.PipelineService.DeleteTrainingPipeline", - "service": { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1.PipelineService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_PipelineService_CancelTrainingPipeline_async", - "title": "DatasetService cancelTrainingPipeline Sample", - "origin": "API_DEFINITION", - "description": " Cancels a TrainingPipeline. Starts asynchronous cancellation on the TrainingPipeline. The server makes a best effort to cancel the pipeline, but success is not guaranteed. Clients can use [PipelineService.GetTrainingPipeline][google.cloud.aiplatform.v1.PipelineService.GetTrainingPipeline] or other methods to check whether the cancellation succeeded or whether the pipeline completed despite cancellation. On successful cancellation, the TrainingPipeline is not deleted; instead it becomes a pipeline with a [TrainingPipeline.error][google.cloud.aiplatform.v1.TrainingPipeline.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to `Code.CANCELLED`, and [TrainingPipeline.state][google.cloud.aiplatform.v1.TrainingPipeline.state] is set to `CANCELLED`.", - "canonical": true, - "file": "pipeline_service.cancel_training_pipeline.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CancelTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1.PipelineService.CancelTrainingPipeline", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.protobuf.Empty", - "client": { - "shortName": "PipelineServiceClient", - "fullName": "google.cloud.aiplatform.v1.PipelineServiceClient" - }, - "method": { - "shortName": "CancelTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1.PipelineService.CancelTrainingPipeline", - "service": { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1.PipelineService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_PipelineService_CreatePipelineJob_async", - "title": "DatasetService createPipelineJob Sample", - "origin": "API_DEFINITION", - "description": " Creates a PipelineJob. A PipelineJob will run immediately when created.", - "canonical": true, - "file": "pipeline_service.create_pipeline_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 67, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreatePipelineJob", - "fullName": "google.cloud.aiplatform.v1.PipelineService.CreatePipelineJob", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "pipeline_job", - "type": ".google.cloud.aiplatform.v1.PipelineJob" - }, - { - "name": "pipeline_job_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.PipelineJob", - "client": { - "shortName": "PipelineServiceClient", - "fullName": "google.cloud.aiplatform.v1.PipelineServiceClient" - }, - "method": { - "shortName": "CreatePipelineJob", - "fullName": "google.cloud.aiplatform.v1.PipelineService.CreatePipelineJob", - "service": { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1.PipelineService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_PipelineService_GetPipelineJob_async", - "title": "DatasetService getPipelineJob Sample", - "origin": "API_DEFINITION", - "description": " Gets a PipelineJob.", - "canonical": true, - "file": "pipeline_service.get_pipeline_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetPipelineJob", - "fullName": "google.cloud.aiplatform.v1.PipelineService.GetPipelineJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.PipelineJob", - "client": { - "shortName": "PipelineServiceClient", - "fullName": "google.cloud.aiplatform.v1.PipelineServiceClient" - }, - "method": { - "shortName": "GetPipelineJob", - "fullName": "google.cloud.aiplatform.v1.PipelineService.GetPipelineJob", - "service": { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1.PipelineService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_PipelineService_ListPipelineJobs_async", - "title": "DatasetService listPipelineJobs Sample", - "origin": "API_DEFINITION", - "description": " Lists PipelineJobs in a Location.", - "canonical": true, - "file": "pipeline_service.list_pipeline_jobs.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 118, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListPipelineJobs", - "fullName": "google.cloud.aiplatform.v1.PipelineService.ListPipelineJobs", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListPipelineJobsResponse", - "client": { - "shortName": "PipelineServiceClient", - "fullName": "google.cloud.aiplatform.v1.PipelineServiceClient" - }, - "method": { - "shortName": "ListPipelineJobs", - "fullName": "google.cloud.aiplatform.v1.PipelineService.ListPipelineJobs", - "service": { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1.PipelineService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_PipelineService_DeletePipelineJob_async", - "title": "DatasetService deletePipelineJob Sample", - "origin": "API_DEFINITION", - "description": " Deletes a PipelineJob.", - "canonical": true, - "file": "pipeline_service.delete_pipeline_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeletePipelineJob", - "fullName": "google.cloud.aiplatform.v1.PipelineService.DeletePipelineJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "PipelineServiceClient", - "fullName": "google.cloud.aiplatform.v1.PipelineServiceClient" - }, - "method": { - "shortName": "DeletePipelineJob", - "fullName": "google.cloud.aiplatform.v1.PipelineService.DeletePipelineJob", - "service": { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1.PipelineService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_PipelineService_CancelPipelineJob_async", - "title": "DatasetService cancelPipelineJob Sample", - "origin": "API_DEFINITION", - "description": " Cancels a PipelineJob. Starts asynchronous cancellation on the PipelineJob. The server makes a best effort to cancel the pipeline, but success is not guaranteed. Clients can use [PipelineService.GetPipelineJob][google.cloud.aiplatform.v1.PipelineService.GetPipelineJob] or other methods to check whether the cancellation succeeded or whether the pipeline completed despite cancellation. On successful cancellation, the PipelineJob is not deleted; instead it becomes a pipeline with a [PipelineJob.error][google.cloud.aiplatform.v1.PipelineJob.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to `Code.CANCELLED`, and [PipelineJob.state][google.cloud.aiplatform.v1.PipelineJob.state] is set to `CANCELLED`.", - "canonical": true, - "file": "pipeline_service.cancel_pipeline_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CancelPipelineJob", - "fullName": "google.cloud.aiplatform.v1.PipelineService.CancelPipelineJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.protobuf.Empty", - "client": { - "shortName": "PipelineServiceClient", - "fullName": "google.cloud.aiplatform.v1.PipelineServiceClient" - }, - "method": { - "shortName": "CancelPipelineJob", - "fullName": "google.cloud.aiplatform.v1.PipelineService.CancelPipelineJob", - "service": { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1.PipelineService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_PredictionService_Predict_async", - "title": "DatasetService predict Sample", - "origin": "API_DEFINITION", - "description": " Perform an online prediction.", - "canonical": true, - "file": "prediction_service.predict.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 75, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "Predict", - "fullName": "google.cloud.aiplatform.v1.PredictionService.Predict", - "async": true, - "parameters": [ - { - "name": "endpoint", - "type": "TYPE_STRING" - }, - { - "name": "instances", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "parameters", - "type": ".google.protobuf.Value" - } - ], - "resultType": ".google.cloud.aiplatform.v1.PredictResponse", - "client": { - "shortName": "PredictionServiceClient", - "fullName": "google.cloud.aiplatform.v1.PredictionServiceClient" - }, - "method": { - "shortName": "Predict", - "fullName": "google.cloud.aiplatform.v1.PredictionService.Predict", - "service": { - "shortName": "PredictionService", - "fullName": "google.cloud.aiplatform.v1.PredictionService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_PredictionService_RawPredict_async", - "title": "DatasetService rawPredict Sample", - "origin": "API_DEFINITION", - "description": " Perform an online prediction with an arbitrary HTTP payload. The response includes the following HTTP headers: * `X-Vertex-AI-Endpoint-Id`: ID of the [Endpoint][google.cloud.aiplatform.v1.Endpoint] that served this prediction. * `X-Vertex-AI-Deployed-Model-Id`: ID of the Endpoint's [DeployedModel][google.cloud.aiplatform.v1.DeployedModel] that served this prediction.", - "canonical": true, - "file": "prediction_service.raw_predict.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 69, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "RawPredict", - "fullName": "google.cloud.aiplatform.v1.PredictionService.RawPredict", - "async": true, - "parameters": [ - { - "name": "endpoint", - "type": "TYPE_STRING" - }, - { - "name": "http_body", - "type": ".google.api.HttpBody" - } - ], - "resultType": ".google.api.HttpBody", - "client": { - "shortName": "PredictionServiceClient", - "fullName": "google.cloud.aiplatform.v1.PredictionServiceClient" - }, - "method": { - "shortName": "RawPredict", - "fullName": "google.cloud.aiplatform.v1.PredictionService.RawPredict", - "service": { - "shortName": "PredictionService", - "fullName": "google.cloud.aiplatform.v1.PredictionService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_PredictionService_Explain_async", - "title": "DatasetService explain Sample", - "origin": "API_DEFINITION", - "description": " Perform an online explanation. If [deployed_model_id][google.cloud.aiplatform.v1.ExplainRequest.deployed_model_id] is specified, the corresponding DeployModel must have [explanation_spec][google.cloud.aiplatform.v1.DeployedModel.explanation_spec] populated. If [deployed_model_id][google.cloud.aiplatform.v1.ExplainRequest.deployed_model_id] is not specified, all DeployedModels must have [explanation_spec][google.cloud.aiplatform.v1.DeployedModel.explanation_spec] populated. Only deployed AutoML tabular Models have explanation_spec.", - "canonical": true, - "file": "prediction_service.explain.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 91, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "Explain", - "fullName": "google.cloud.aiplatform.v1.PredictionService.Explain", - "async": true, - "parameters": [ - { - "name": "endpoint", - "type": "TYPE_STRING" - }, - { - "name": "instances", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "parameters", - "type": ".google.protobuf.Value" - }, - { - "name": "explanation_spec_override", - "type": ".google.cloud.aiplatform.v1.ExplanationSpecOverride" - }, - { - "name": "deployed_model_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ExplainResponse", - "client": { - "shortName": "PredictionServiceClient", - "fullName": "google.cloud.aiplatform.v1.PredictionServiceClient" - }, - "method": { - "shortName": "Explain", - "fullName": "google.cloud.aiplatform.v1.PredictionService.Explain", - "service": { - "shortName": "PredictionService", - "fullName": "google.cloud.aiplatform.v1.PredictionService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_SpecialistPoolService_CreateSpecialistPool_async", - "title": "DatasetService createSpecialistPool Sample", - "origin": "API_DEFINITION", - "description": " Creates a SpecialistPool.", - "canonical": true, - "file": "specialist_pool_service.create_specialist_pool.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 60, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateSpecialistPool", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService.CreateSpecialistPool", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "specialist_pool", - "type": ".google.cloud.aiplatform.v1.SpecialistPool" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "SpecialistPoolServiceClient", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolServiceClient" - }, - "method": { - "shortName": "CreateSpecialistPool", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService.CreateSpecialistPool", - "service": { - "shortName": "SpecialistPoolService", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_SpecialistPoolService_GetSpecialistPool_async", - "title": "DatasetService getSpecialistPool Sample", - "origin": "API_DEFINITION", - "description": " Gets a SpecialistPool.", - "canonical": true, - "file": "specialist_pool_service.get_specialist_pool.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetSpecialistPool", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService.GetSpecialistPool", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.SpecialistPool", - "client": { - "shortName": "SpecialistPoolServiceClient", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolServiceClient" - }, - "method": { - "shortName": "GetSpecialistPool", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService.GetSpecialistPool", - "service": { - "shortName": "SpecialistPoolService", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_SpecialistPoolService_ListSpecialistPools_async", - "title": "DatasetService listSpecialistPools Sample", - "origin": "API_DEFINITION", - "description": " Lists SpecialistPools in a Location.", - "canonical": true, - "file": "specialist_pool_service.list_specialist_pools.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 71, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListSpecialistPools", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService.ListSpecialistPools", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListSpecialistPoolsResponse", - "client": { - "shortName": "SpecialistPoolServiceClient", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolServiceClient" - }, - "method": { - "shortName": "ListSpecialistPools", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService.ListSpecialistPools", - "service": { - "shortName": "SpecialistPoolService", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_SpecialistPoolService_DeleteSpecialistPool_async", - "title": "DatasetService deleteSpecialistPool Sample", - "origin": "API_DEFINITION", - "description": " Deletes a SpecialistPool as well as all Specialists in the pool.", - "canonical": true, - "file": "specialist_pool_service.delete_specialist_pool.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 61, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteSpecialistPool", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService.DeleteSpecialistPool", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "force", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "SpecialistPoolServiceClient", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolServiceClient" - }, - "method": { - "shortName": "DeleteSpecialistPool", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService.DeleteSpecialistPool", - "service": { - "shortName": "SpecialistPoolService", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_SpecialistPoolService_UpdateSpecialistPool_async", - "title": "DatasetService updateSpecialistPool Sample", - "origin": "API_DEFINITION", - "description": " Updates a SpecialistPool.", - "canonical": true, - "file": "specialist_pool_service.update_specialist_pool.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateSpecialistPool", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService.UpdateSpecialistPool", - "async": true, - "parameters": [ - { - "name": "specialist_pool", - "type": ".google.cloud.aiplatform.v1.SpecialistPool" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "SpecialistPoolServiceClient", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolServiceClient" - }, - "method": { - "shortName": "UpdateSpecialistPool", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService.UpdateSpecialistPool", - "service": { - "shortName": "SpecialistPoolService", - "fullName": "google.cloud.aiplatform.v1.SpecialistPoolService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_CreateTensorboard_async", - "title": "DatasetService createTensorboard Sample", - "origin": "API_DEFINITION", - "description": " Creates a Tensorboard.", - "canonical": true, - "file": "tensorboard_service.create_tensorboard.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 60, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateTensorboard", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.CreateTensorboard", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "tensorboard", - "type": ".google.cloud.aiplatform.v1.Tensorboard" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "CreateTensorboard", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.CreateTensorboard", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_GetTensorboard_async", - "title": "DatasetService getTensorboard Sample", - "origin": "API_DEFINITION", - "description": " Gets a Tensorboard.", - "canonical": true, - "file": "tensorboard_service.get_tensorboard.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetTensorboard", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.GetTensorboard", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Tensorboard", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "GetTensorboard", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.GetTensorboard", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_UpdateTensorboard_async", - "title": "DatasetService updateTensorboard Sample", - "origin": "API_DEFINITION", - "description": " Updates a Tensorboard.", - "canonical": true, - "file": "tensorboard_service.update_tensorboard.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 66, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateTensorboard", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.UpdateTensorboard", - "async": true, - "parameters": [ - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "tensorboard", - "type": ".google.cloud.aiplatform.v1.Tensorboard" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "UpdateTensorboard", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.UpdateTensorboard", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_ListTensorboards_async", - "title": "DatasetService listTensorboards Sample", - "origin": "API_DEFINITION", - "description": " Lists Tensorboards in a Location.", - "canonical": true, - "file": "tensorboard_service.list_tensorboards.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 85, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListTensorboards", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ListTensorboards", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListTensorboardsResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "ListTensorboards", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ListTensorboards", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_DeleteTensorboard_async", - "title": "DatasetService deleteTensorboard Sample", - "origin": "API_DEFINITION", - "description": " Deletes a Tensorboard.", - "canonical": true, - "file": "tensorboard_service.delete_tensorboard.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteTensorboard", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.DeleteTensorboard", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "DeleteTensorboard", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.DeleteTensorboard", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_CreateTensorboardExperiment_async", - "title": "DatasetService createTensorboardExperiment Sample", - "origin": "API_DEFINITION", - "description": " Creates a TensorboardExperiment.", - "canonical": true, - "file": "tensorboard_service.create_tensorboard_experiment.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 67, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.CreateTensorboardExperiment", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "tensorboard_experiment", - "type": ".google.cloud.aiplatform.v1.TensorboardExperiment" - }, - { - "name": "tensorboard_experiment_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.TensorboardExperiment", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "CreateTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.CreateTensorboardExperiment", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_GetTensorboardExperiment_async", - "title": "DatasetService getTensorboardExperiment Sample", - "origin": "API_DEFINITION", - "description": " Gets a TensorboardExperiment.", - "canonical": true, - "file": "tensorboard_service.get_tensorboard_experiment.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.GetTensorboardExperiment", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.TensorboardExperiment", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "GetTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.GetTensorboardExperiment", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_UpdateTensorboardExperiment_async", - "title": "DatasetService updateTensorboardExperiment Sample", - "origin": "API_DEFINITION", - "description": " Updates a TensorboardExperiment.", - "canonical": true, - "file": "tensorboard_service.update_tensorboard_experiment.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 65, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.UpdateTensorboardExperiment", - "async": true, - "parameters": [ - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "tensorboard_experiment", - "type": ".google.cloud.aiplatform.v1.TensorboardExperiment" - } - ], - "resultType": ".google.cloud.aiplatform.v1.TensorboardExperiment", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "UpdateTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.UpdateTensorboardExperiment", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_ListTensorboardExperiments_async", - "title": "DatasetService listTensorboardExperiments Sample", - "origin": "API_DEFINITION", - "description": " Lists TensorboardExperiments in a Location.", - "canonical": true, - "file": "tensorboard_service.list_tensorboard_experiments.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 85, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListTensorboardExperiments", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ListTensorboardExperiments", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListTensorboardExperimentsResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "ListTensorboardExperiments", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ListTensorboardExperiments", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_DeleteTensorboardExperiment_async", - "title": "DatasetService deleteTensorboardExperiment Sample", - "origin": "API_DEFINITION", - "description": " Deletes a TensorboardExperiment.", - "canonical": true, - "file": "tensorboard_service.delete_tensorboard_experiment.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.DeleteTensorboardExperiment", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "DeleteTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.DeleteTensorboardExperiment", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_CreateTensorboardRun_async", - "title": "DatasetService createTensorboardRun Sample", - "origin": "API_DEFINITION", - "description": " Creates a TensorboardRun.", - "canonical": true, - "file": "tensorboard_service.create_tensorboard_run.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 68, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateTensorboardRun", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.CreateTensorboardRun", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "tensorboard_run", - "type": ".google.cloud.aiplatform.v1.TensorboardRun" - }, - { - "name": "tensorboard_run_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.TensorboardRun", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "CreateTensorboardRun", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.CreateTensorboardRun", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_BatchCreateTensorboardRuns_async", - "title": "DatasetService batchCreateTensorboardRuns Sample", - "origin": "API_DEFINITION", - "description": " Batch create TensorboardRuns.", - "canonical": true, - "file": "tensorboard_service.batch_create_tensorboard_runs.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 63, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "BatchCreateTensorboardRuns", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.BatchCreateTensorboardRuns", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "requests", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1.BatchCreateTensorboardRunsResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "BatchCreateTensorboardRuns", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.BatchCreateTensorboardRuns", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_GetTensorboardRun_async", - "title": "DatasetService getTensorboardRun Sample", - "origin": "API_DEFINITION", - "description": " Gets a TensorboardRun.", - "canonical": true, - "file": "tensorboard_service.get_tensorboard_run.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetTensorboardRun", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.GetTensorboardRun", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.TensorboardRun", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "GetTensorboardRun", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.GetTensorboardRun", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_UpdateTensorboardRun_async", - "title": "DatasetService updateTensorboardRun Sample", - "origin": "API_DEFINITION", - "description": " Updates a TensorboardRun.", - "canonical": true, - "file": "tensorboard_service.update_tensorboard_run.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 65, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateTensorboardRun", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.UpdateTensorboardRun", - "async": true, - "parameters": [ - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "tensorboard_run", - "type": ".google.cloud.aiplatform.v1.TensorboardRun" - } - ], - "resultType": ".google.cloud.aiplatform.v1.TensorboardRun", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "UpdateTensorboardRun", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.UpdateTensorboardRun", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_ListTensorboardRuns_async", - "title": "DatasetService listTensorboardRuns Sample", - "origin": "API_DEFINITION", - "description": " Lists TensorboardRuns in a Location.", - "canonical": true, - "file": "tensorboard_service.list_tensorboard_runs.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 85, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListTensorboardRuns", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ListTensorboardRuns", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListTensorboardRunsResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "ListTensorboardRuns", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ListTensorboardRuns", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_DeleteTensorboardRun_async", - "title": "DatasetService deleteTensorboardRun Sample", - "origin": "API_DEFINITION", - "description": " Deletes a TensorboardRun.", - "canonical": true, - "file": "tensorboard_service.delete_tensorboard_run.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteTensorboardRun", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.DeleteTensorboardRun", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "DeleteTensorboardRun", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.DeleteTensorboardRun", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_BatchCreateTensorboardTimeSeries_async", - "title": "DatasetService batchCreateTensorboardTimeSeries Sample", - "origin": "API_DEFINITION", - "description": " Batch create TensorboardTimeSeries that belong to a TensorboardExperiment.", - "canonical": true, - "file": "tensorboard_service.batch_create_tensorboard_time_series.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 65, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "BatchCreateTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.BatchCreateTensorboardTimeSeries", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "requests", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1.BatchCreateTensorboardTimeSeriesResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "BatchCreateTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.BatchCreateTensorboardTimeSeries", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_CreateTensorboardTimeSeries_async", - "title": "DatasetService createTensorboardTimeSeries Sample", - "origin": "API_DEFINITION", - "description": " Creates a TensorboardTimeSeries.", - "canonical": true, - "file": "tensorboard_service.create_tensorboard_time_series.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 68, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.CreateTensorboardTimeSeries", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "tensorboard_time_series_id", - "type": "TYPE_STRING" - }, - { - "name": "tensorboard_time_series", - "type": ".google.cloud.aiplatform.v1.TensorboardTimeSeries" - } - ], - "resultType": ".google.cloud.aiplatform.v1.TensorboardTimeSeries", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "CreateTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.CreateTensorboardTimeSeries", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_GetTensorboardTimeSeries_async", - "title": "DatasetService getTensorboardTimeSeries Sample", - "origin": "API_DEFINITION", - "description": " Gets a TensorboardTimeSeries.", - "canonical": true, - "file": "tensorboard_service.get_tensorboard_time_series.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.GetTensorboardTimeSeries", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.TensorboardTimeSeries", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "GetTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.GetTensorboardTimeSeries", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_UpdateTensorboardTimeSeries_async", - "title": "DatasetService updateTensorboardTimeSeries Sample", - "origin": "API_DEFINITION", - "description": " Updates a TensorboardTimeSeries.", - "canonical": true, - "file": "tensorboard_service.update_tensorboard_time_series.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 66, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.UpdateTensorboardTimeSeries", - "async": true, - "parameters": [ - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "tensorboard_time_series", - "type": ".google.cloud.aiplatform.v1.TensorboardTimeSeries" - } - ], - "resultType": ".google.cloud.aiplatform.v1.TensorboardTimeSeries", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "UpdateTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.UpdateTensorboardTimeSeries", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_ListTensorboardTimeSeries_async", - "title": "DatasetService listTensorboardTimeSeries Sample", - "origin": "API_DEFINITION", - "description": " Lists TensorboardTimeSeries in a Location.", - "canonical": true, - "file": "tensorboard_service.list_tensorboard_time_series.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 85, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ListTensorboardTimeSeries", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListTensorboardTimeSeriesResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "ListTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ListTensorboardTimeSeries", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_DeleteTensorboardTimeSeries_async", - "title": "DatasetService deleteTensorboardTimeSeries Sample", - "origin": "API_DEFINITION", - "description": " Deletes a TensorboardTimeSeries.", - "canonical": true, - "file": "tensorboard_service.delete_tensorboard_time_series.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.DeleteTensorboardTimeSeries", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "DeleteTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.DeleteTensorboardTimeSeries", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_BatchReadTensorboardTimeSeriesData_async", - "title": "DatasetService batchReadTensorboardTimeSeriesData Sample", - "origin": "API_DEFINITION", - "description": " Reads multiple TensorboardTimeSeries' data. The data point number limit is 1000 for scalars, 100 for tensors and blob references. If the number of data points stored is less than the limit, all data will be returned. Otherwise, that limit number of data points will be randomly selected from this time series and returned.", - "canonical": true, - "file": "tensorboard_service.batch_read_tensorboard_time_series_data.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 63, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "BatchReadTensorboardTimeSeriesData", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.BatchReadTensorboardTimeSeriesData", - "async": true, - "parameters": [ - { - "name": "tensorboard", - "type": "TYPE_STRING" - }, - { - "name": "time_series", - "type": "TYPE_STRING[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1.BatchReadTensorboardTimeSeriesDataResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "BatchReadTensorboardTimeSeriesData", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.BatchReadTensorboardTimeSeriesData", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_ReadTensorboardTimeSeriesData_async", - "title": "DatasetService readTensorboardTimeSeriesData Sample", - "origin": "API_DEFINITION", - "description": " Reads a TensorboardTimeSeries' data. By default, if the number of data points stored is less than 1000, all data will be returned. Otherwise, 1000 data points will be randomly selected from this time series and returned. This value can be changed by changing max_data_points, which can't be greater than 10k.", - "canonical": true, - "file": "tensorboard_service.read_tensorboard_time_series_data.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 65, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ReadTensorboardTimeSeriesData", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ReadTensorboardTimeSeriesData", - "async": true, - "parameters": [ - { - "name": "tensorboard_time_series", - "type": "TYPE_STRING" - }, - { - "name": "max_data_points", - "type": "TYPE_INT32" - }, - { - "name": "filter", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ReadTensorboardTimeSeriesDataResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "ReadTensorboardTimeSeriesData", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ReadTensorboardTimeSeriesData", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_ReadTensorboardBlobData_async", - "title": "DatasetService readTensorboardBlobData Sample", - "origin": "API_DEFINITION", - "description": " Gets bytes of TensorboardBlobs. This is to allow reading blob data stored in consumer project's Cloud Storage bucket without users having to obtain Cloud Storage access permission.", - "canonical": true, - "file": "tensorboard_service.read_tensorboard_blob_data.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 61, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ReadTensorboardBlobData", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ReadTensorboardBlobData", - "async": true, - "parameters": [ - { - "name": "time_series", - "type": "TYPE_STRING" - }, - { - "name": "blob_ids", - "type": "TYPE_STRING[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ReadTensorboardBlobDataResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "ReadTensorboardBlobData", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ReadTensorboardBlobData", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_WriteTensorboardExperimentData_async", - "title": "DatasetService writeTensorboardExperimentData Sample", - "origin": "API_DEFINITION", - "description": " Write time series data points of multiple TensorboardTimeSeries in multiple TensorboardRun's. If any data fail to be ingested, an error will be returned.", - "canonical": true, - "file": "tensorboard_service.write_tensorboard_experiment_data.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 60, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "WriteTensorboardExperimentData", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.WriteTensorboardExperimentData", - "async": true, - "parameters": [ - { - "name": "tensorboard_experiment", - "type": "TYPE_STRING" - }, - { - "name": "write_run_data_requests", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1.WriteTensorboardExperimentDataResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "WriteTensorboardExperimentData", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.WriteTensorboardExperimentData", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_WriteTensorboardRunData_async", - "title": "DatasetService writeTensorboardRunData Sample", - "origin": "API_DEFINITION", - "description": " Write time series data points into multiple TensorboardTimeSeries under a TensorboardRun. If any data fail to be ingested, an error will be returned.", - "canonical": true, - "file": "tensorboard_service.write_tensorboard_run_data.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 64, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "WriteTensorboardRunData", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.WriteTensorboardRunData", - "async": true, - "parameters": [ - { - "name": "tensorboard_run", - "type": "TYPE_STRING" - }, - { - "name": "time_series_data", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1.WriteTensorboardRunDataResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "WriteTensorboardRunData", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.WriteTensorboardRunData", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_TensorboardService_ExportTensorboardTimeSeriesData_async", - "title": "DatasetService exportTensorboardTimeSeriesData Sample", - "origin": "API_DEFINITION", - "description": " Exports a TensorboardTimeSeries' data. Data is returned in paginated responses.", - "canonical": true, - "file": "tensorboard_service.export_tensorboard_time_series_data.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 82, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ExportTensorboardTimeSeriesData", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ExportTensorboardTimeSeriesData", - "async": true, - "parameters": [ - { - "name": "tensorboard_time_series", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ExportTensorboardTimeSeriesDataResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1.TensorboardServiceClient" - }, - "method": { - "shortName": "ExportTensorboardTimeSeriesData", - "fullName": "google.cloud.aiplatform.v1.TensorboardService.ExportTensorboardTimeSeriesData", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_VizierService_CreateStudy_async", - "title": "DatasetService createStudy Sample", - "origin": "API_DEFINITION", - "description": " Creates a Study. A resource name will be generated after creation of the Study.", - "canonical": true, - "file": "vizier_service.create_study.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateStudy", - "fullName": "google.cloud.aiplatform.v1.VizierService.CreateStudy", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "study", - "type": ".google.cloud.aiplatform.v1.Study" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Study", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1.VizierServiceClient" - }, - "method": { - "shortName": "CreateStudy", - "fullName": "google.cloud.aiplatform.v1.VizierService.CreateStudy", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_VizierService_GetStudy_async", - "title": "DatasetService getStudy Sample", - "origin": "API_DEFINITION", - "description": " Gets a Study by name.", - "canonical": true, - "file": "vizier_service.get_study.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 54, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetStudy", - "fullName": "google.cloud.aiplatform.v1.VizierService.GetStudy", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Study", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1.VizierServiceClient" - }, - "method": { - "shortName": "GetStudy", - "fullName": "google.cloud.aiplatform.v1.VizierService.GetStudy", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_VizierService_ListStudies_async", - "title": "DatasetService listStudies Sample", - "origin": "API_DEFINITION", - "description": " Lists all the studies in a region for an associated project.", - "canonical": true, - "file": "vizier_service.list_studies.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 66, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListStudies", - "fullName": "google.cloud.aiplatform.v1.VizierService.ListStudies", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListStudiesResponse", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1.VizierServiceClient" - }, - "method": { - "shortName": "ListStudies", - "fullName": "google.cloud.aiplatform.v1.VizierService.ListStudies", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_VizierService_DeleteStudy_async", - "title": "DatasetService deleteStudy Sample", - "origin": "API_DEFINITION", - "description": " Deletes a Study.", - "canonical": true, - "file": "vizier_service.delete_study.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 54, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteStudy", - "fullName": "google.cloud.aiplatform.v1.VizierService.DeleteStudy", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.protobuf.Empty", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1.VizierServiceClient" - }, - "method": { - "shortName": "DeleteStudy", - "fullName": "google.cloud.aiplatform.v1.VizierService.DeleteStudy", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_VizierService_LookupStudy_async", - "title": "DatasetService lookupStudy Sample", - "origin": "API_DEFINITION", - "description": " Looks a study up using the user-defined display_name field instead of the fully qualified resource name.", - "canonical": true, - "file": "vizier_service.lookup_study.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "LookupStudy", - "fullName": "google.cloud.aiplatform.v1.VizierService.LookupStudy", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "display_name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Study", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1.VizierServiceClient" - }, - "method": { - "shortName": "LookupStudy", - "fullName": "google.cloud.aiplatform.v1.VizierService.LookupStudy", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_VizierService_SuggestTrials_async", - "title": "DatasetService suggestTrials Sample", - "origin": "API_DEFINITION", - "description": " Adds one or more Trials to a Study, with parameter values suggested by Vertex AI Vizier. Returns a long-running operation associated with the generation of Trial suggestions. When this long-running operation succeeds, it will contain a [SuggestTrialsResponse][google.cloud.ml.v1.SuggestTrialsResponse].", - "canonical": true, - "file": "vizier_service.suggest_trials.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 68, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "SuggestTrials", - "fullName": "google.cloud.aiplatform.v1.VizierService.SuggestTrials", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "suggestion_count", - "type": "TYPE_INT32" - }, - { - "name": "client_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1.VizierServiceClient" - }, - "method": { - "shortName": "SuggestTrials", - "fullName": "google.cloud.aiplatform.v1.VizierService.SuggestTrials", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_VizierService_CreateTrial_async", - "title": "DatasetService createTrial Sample", - "origin": "API_DEFINITION", - "description": " Adds a user provided Trial to a Study.", - "canonical": true, - "file": "vizier_service.create_trial.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateTrial", - "fullName": "google.cloud.aiplatform.v1.VizierService.CreateTrial", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "trial", - "type": ".google.cloud.aiplatform.v1.Trial" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Trial", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1.VizierServiceClient" - }, - "method": { - "shortName": "CreateTrial", - "fullName": "google.cloud.aiplatform.v1.VizierService.CreateTrial", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_VizierService_GetTrial_async", - "title": "DatasetService getTrial Sample", - "origin": "API_DEFINITION", - "description": " Gets a Trial.", - "canonical": true, - "file": "vizier_service.get_trial.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetTrial", - "fullName": "google.cloud.aiplatform.v1.VizierService.GetTrial", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Trial", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1.VizierServiceClient" - }, - "method": { - "shortName": "GetTrial", - "fullName": "google.cloud.aiplatform.v1.VizierService.GetTrial", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_VizierService_ListTrials_async", - "title": "DatasetService listTrials Sample", - "origin": "API_DEFINITION", - "description": " Lists the Trials associated with a Study.", - "canonical": true, - "file": "vizier_service.list_trials.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 66, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListTrials", - "fullName": "google.cloud.aiplatform.v1.VizierService.ListTrials", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListTrialsResponse", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1.VizierServiceClient" - }, - "method": { - "shortName": "ListTrials", - "fullName": "google.cloud.aiplatform.v1.VizierService.ListTrials", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_VizierService_AddTrialMeasurement_async", - "title": "DatasetService addTrialMeasurement Sample", - "origin": "API_DEFINITION", - "description": " Adds a measurement of the objective metrics to a Trial. This measurement is assumed to have been taken before the Trial is complete.", - "canonical": true, - "file": "vizier_service.add_trial_measurement.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 60, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "AddTrialMeasurement", - "fullName": "google.cloud.aiplatform.v1.VizierService.AddTrialMeasurement", - "async": true, - "parameters": [ - { - "name": "trial_name", - "type": "TYPE_STRING" - }, - { - "name": "measurement", - "type": ".google.cloud.aiplatform.v1.Measurement" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Trial", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1.VizierServiceClient" - }, - "method": { - "shortName": "AddTrialMeasurement", - "fullName": "google.cloud.aiplatform.v1.VizierService.AddTrialMeasurement", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_VizierService_CompleteTrial_async", - "title": "DatasetService completeTrial Sample", - "origin": "API_DEFINITION", - "description": " Marks a Trial as complete.", - "canonical": true, - "file": "vizier_service.complete_trial.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 71, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CompleteTrial", - "fullName": "google.cloud.aiplatform.v1.VizierService.CompleteTrial", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "final_measurement", - "type": ".google.cloud.aiplatform.v1.Measurement" - }, - { - "name": "trial_infeasible", - "type": "TYPE_BOOL" - }, - { - "name": "infeasible_reason", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Trial", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1.VizierServiceClient" - }, - "method": { - "shortName": "CompleteTrial", - "fullName": "google.cloud.aiplatform.v1.VizierService.CompleteTrial", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_VizierService_DeleteTrial_async", - "title": "DatasetService deleteTrial Sample", - "origin": "API_DEFINITION", - "description": " Deletes a Trial.", - "canonical": true, - "file": "vizier_service.delete_trial.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteTrial", - "fullName": "google.cloud.aiplatform.v1.VizierService.DeleteTrial", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.protobuf.Empty", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1.VizierServiceClient" - }, - "method": { - "shortName": "DeleteTrial", - "fullName": "google.cloud.aiplatform.v1.VizierService.DeleteTrial", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_VizierService_CheckTrialEarlyStoppingState_async", - "title": "DatasetService checkTrialEarlyStoppingState Sample", - "origin": "API_DEFINITION", - "description": " Checks whether a Trial should stop or not. Returns a long-running operation. When the operation is successful, it will contain a [CheckTrialEarlyStoppingStateResponse][google.cloud.ml.v1.CheckTrialEarlyStoppingStateResponse].", - "canonical": true, - "file": "vizier_service.check_trial_early_stopping_state.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CheckTrialEarlyStoppingState", - "fullName": "google.cloud.aiplatform.v1.VizierService.CheckTrialEarlyStoppingState", - "async": true, - "parameters": [ - { - "name": "trial_name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1.VizierServiceClient" - }, - "method": { - "shortName": "CheckTrialEarlyStoppingState", - "fullName": "google.cloud.aiplatform.v1.VizierService.CheckTrialEarlyStoppingState", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_VizierService_StopTrial_async", - "title": "DatasetService stopTrial Sample", - "origin": "API_DEFINITION", - "description": " Stops a Trial.", - "canonical": true, - "file": "vizier_service.stop_trial.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "StopTrial", - "fullName": "google.cloud.aiplatform.v1.VizierService.StopTrial", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.Trial", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1.VizierServiceClient" - }, - "method": { - "shortName": "StopTrial", - "fullName": "google.cloud.aiplatform.v1.VizierService.StopTrial", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1_generated_VizierService_ListOptimalTrials_async", - "title": "DatasetService listOptimalTrials Sample", - "origin": "API_DEFINITION", - "description": " Lists the pareto-optimal Trials for multi-objective Study or the optimal Trials for single-objective Study. The definition of pareto-optimal can be checked in wiki page. https://en.wikipedia.org/wiki/Pareto_efficiency", - "canonical": true, - "file": "vizier_service.list_optimal_trials.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 53, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListOptimalTrials", - "fullName": "google.cloud.aiplatform.v1.VizierService.ListOptimalTrials", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1.ListOptimalTrialsResponse", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1.VizierServiceClient" - }, - "method": { - "shortName": "ListOptimalTrials", - "fullName": "google.cloud.aiplatform.v1.VizierService.ListOptimalTrials", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1.VizierService" - } - } - } - } - ] -} \ No newline at end of file diff --git a/samples/generated/v1/specialist_pool_service.create_specialist_pool.js b/samples/generated/v1/specialist_pool_service.create_specialist_pool.js deleted file mode 100644 index 7293b20e..00000000 --- a/samples/generated/v1/specialist_pool_service.create_specialist_pool.js +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, specialistPool) { - // [START aiplatform_v1_generated_SpecialistPoolService_CreateSpecialistPool_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The parent Project name for the new SpecialistPool. - * The form is `projects/{project}/locations/{location}`. - */ - // const parent = 'abc123' - /** - * Required. The SpecialistPool to create. - */ - // const specialistPool = {} - - // Imports the Aiplatform library - const {SpecialistPoolServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new SpecialistPoolServiceClient(); - - async function callCreateSpecialistPool() { - // Construct request - const request = { - parent, - specialistPool, - }; - - // Run request - const [operation] = await aiplatformClient.createSpecialistPool(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateSpecialistPool(); - // [END aiplatform_v1_generated_SpecialistPoolService_CreateSpecialistPool_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/specialist_pool_service.delete_specialist_pool.js b/samples/generated/v1/specialist_pool_service.delete_specialist_pool.js deleted file mode 100644 index af0dbcc5..00000000 --- a/samples/generated/v1/specialist_pool_service.delete_specialist_pool.js +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_SpecialistPoolService_DeleteSpecialistPool_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the SpecialistPool to delete. Format: - * `projects/{project}/locations/{location}/specialistPools/{specialist_pool}` - */ - // const name = 'abc123' - /** - * If set to true, any specialist managers in this SpecialistPool will also be - * deleted. (Otherwise, the request will only work if the SpecialistPool has - * no specialist managers.) - */ - // const force = true - - // Imports the Aiplatform library - const {SpecialistPoolServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new SpecialistPoolServiceClient(); - - async function callDeleteSpecialistPool() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteSpecialistPool(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteSpecialistPool(); - // [END aiplatform_v1_generated_SpecialistPoolService_DeleteSpecialistPool_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/specialist_pool_service.get_specialist_pool.js b/samples/generated/v1/specialist_pool_service.get_specialist_pool.js deleted file mode 100644 index 686df681..00000000 --- a/samples/generated/v1/specialist_pool_service.get_specialist_pool.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_SpecialistPoolService_GetSpecialistPool_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the SpecialistPool resource. - * The form is - * `projects/{project}/locations/{location}/specialistPools/{specialist_pool}`. - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {SpecialistPoolServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new SpecialistPoolServiceClient(); - - async function callGetSpecialistPool() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getSpecialistPool(request); - console.log(response); - } - - callGetSpecialistPool(); - // [END aiplatform_v1_generated_SpecialistPoolService_GetSpecialistPool_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/specialist_pool_service.list_specialist_pools.js b/samples/generated/v1/specialist_pool_service.list_specialist_pools.js deleted file mode 100644 index e240a9bb..00000000 --- a/samples/generated/v1/specialist_pool_service.list_specialist_pools.js +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_SpecialistPoolService_ListSpecialistPools_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the SpecialistPool's parent resource. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained by ListSpecialistPoolsResponse.next_page_token google.cloud.aiplatform.v1.ListSpecialistPoolsResponse.next_page_token of - * the previous SpecialistPoolService.ListSpecialistPools google.cloud.aiplatform.v1.SpecialistPoolService.ListSpecialistPools call. Return - * first page if empty. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. FieldMask represents a set of - */ - // const readMask = {} - - // Imports the Aiplatform library - const {SpecialistPoolServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new SpecialistPoolServiceClient(); - - async function callListSpecialistPools() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listSpecialistPoolsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListSpecialistPools(); - // [END aiplatform_v1_generated_SpecialistPoolService_ListSpecialistPools_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/specialist_pool_service.update_specialist_pool.js b/samples/generated/v1/specialist_pool_service.update_specialist_pool.js deleted file mode 100644 index 6cb64c32..00000000 --- a/samples/generated/v1/specialist_pool_service.update_specialist_pool.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(specialistPool, updateMask) { - // [START aiplatform_v1_generated_SpecialistPoolService_UpdateSpecialistPool_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The SpecialistPool which replaces the resource on the server. - */ - // const specialistPool = {} - /** - * Required. The update mask applies to the resource. - */ - // const updateMask = {} - - // Imports the Aiplatform library - const {SpecialistPoolServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new SpecialistPoolServiceClient(); - - async function callUpdateSpecialistPool() { - // Construct request - const request = { - specialistPool, - updateMask, - }; - - // Run request - const [operation] = await aiplatformClient.updateSpecialistPool(request); - const [response] = await operation.promise(); - console.log(response); - } - - callUpdateSpecialistPool(); - // [END aiplatform_v1_generated_SpecialistPoolService_UpdateSpecialistPool_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.batch_create_tensorboard_runs.js b/samples/generated/v1/tensorboard_service.batch_create_tensorboard_runs.js deleted file mode 100644 index 799d7654..00000000 --- a/samples/generated/v1/tensorboard_service.batch_create_tensorboard_runs.js +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, requests) { - // [START aiplatform_v1_generated_TensorboardService_BatchCreateTensorboardRuns_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardExperiment to create the - * TensorboardRuns in. Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` - * The parent field in the CreateTensorboardRunRequest messages must match - * this field. - */ - // const parent = 'abc123' - /** - * Required. The request message specifying the TensorboardRuns to create. - * A maximum of 1000 TensorboardRuns can be created in a batch. - */ - // const requests = 1234 - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callBatchCreateTensorboardRuns() { - // Construct request - const request = { - parent, - requests, - }; - - // Run request - const response = await aiplatformClient.batchCreateTensorboardRuns(request); - console.log(response); - } - - callBatchCreateTensorboardRuns(); - // [END aiplatform_v1_generated_TensorboardService_BatchCreateTensorboardRuns_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.batch_create_tensorboard_time_series.js b/samples/generated/v1/tensorboard_service.batch_create_tensorboard_time_series.js deleted file mode 100644 index b2ec7764..00000000 --- a/samples/generated/v1/tensorboard_service.batch_create_tensorboard_time_series.js +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, requests) { - // [START aiplatform_v1_generated_TensorboardService_BatchCreateTensorboardTimeSeries_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardExperiment to create the - * TensorboardTimeSeries in. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` - * The TensorboardRuns referenced by the parent fields in the - * CreateTensorboardTimeSeriesRequest messages must be sub resources of this - * TensorboardExperiment. - */ - // const parent = 'abc123' - /** - * Required. The request message specifying the TensorboardTimeSeries to create. - * A maximum of 1000 TensorboardTimeSeries can be created in a batch. - */ - // const requests = 1234 - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callBatchCreateTensorboardTimeSeries() { - // Construct request - const request = { - parent, - requests, - }; - - // Run request - const response = await aiplatformClient.batchCreateTensorboardTimeSeries(request); - console.log(response); - } - - callBatchCreateTensorboardTimeSeries(); - // [END aiplatform_v1_generated_TensorboardService_BatchCreateTensorboardTimeSeries_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.batch_read_tensorboard_time_series_data.js b/samples/generated/v1/tensorboard_service.batch_read_tensorboard_time_series_data.js deleted file mode 100644 index 3eee1e7e..00000000 --- a/samples/generated/v1/tensorboard_service.batch_read_tensorboard_time_series_data.js +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(tensorboard, timeSeries) { - // [START aiplatform_v1_generated_TensorboardService_BatchReadTensorboardTimeSeriesData_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Tensorboard containing TensorboardTimeSeries to - * read data from. Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}`. - * The TensorboardTimeSeries referenced by time_series google.cloud.aiplatform.v1.BatchReadTensorboardTimeSeriesDataRequest.time_series must be sub - * resources of this Tensorboard. - */ - // const tensorboard = 'abc123' - /** - * Required. The resource names of the TensorboardTimeSeries to read data from. Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` - */ - // const timeSeries = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callBatchReadTensorboardTimeSeriesData() { - // Construct request - const request = { - tensorboard, - timeSeries, - }; - - // Run request - const response = await aiplatformClient.batchReadTensorboardTimeSeriesData(request); - console.log(response); - } - - callBatchReadTensorboardTimeSeriesData(); - // [END aiplatform_v1_generated_TensorboardService_BatchReadTensorboardTimeSeriesData_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.create_tensorboard.js b/samples/generated/v1/tensorboard_service.create_tensorboard.js deleted file mode 100644 index 24c676a3..00000000 --- a/samples/generated/v1/tensorboard_service.create_tensorboard.js +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, tensorboard) { - // [START aiplatform_v1_generated_TensorboardService_CreateTensorboard_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the Tensorboard in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The Tensorboard to create. - */ - // const tensorboard = {} - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callCreateTensorboard() { - // Construct request - const request = { - parent, - tensorboard, - }; - - // Run request - const [operation] = await aiplatformClient.createTensorboard(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateTensorboard(); - // [END aiplatform_v1_generated_TensorboardService_CreateTensorboard_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.create_tensorboard_experiment.js b/samples/generated/v1/tensorboard_service.create_tensorboard_experiment.js deleted file mode 100644 index 7f5eb4fb..00000000 --- a/samples/generated/v1/tensorboard_service.create_tensorboard_experiment.js +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, tensorboardExperimentId) { - // [START aiplatform_v1_generated_TensorboardService_CreateTensorboardExperiment_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Tensorboard to create the TensorboardExperiment - * in. Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}` - */ - // const parent = 'abc123' - /** - * The TensorboardExperiment to create. - */ - // const tensorboardExperiment = {} - /** - * Required. The ID to use for the Tensorboard experiment, which will become the final - * component of the Tensorboard experiment's resource name. - * This value should be 1-128 characters, and valid characters - * are /[a-z][0-9]-/. - */ - // const tensorboardExperimentId = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callCreateTensorboardExperiment() { - // Construct request - const request = { - parent, - tensorboardExperimentId, - }; - - // Run request - const response = await aiplatformClient.createTensorboardExperiment(request); - console.log(response); - } - - callCreateTensorboardExperiment(); - // [END aiplatform_v1_generated_TensorboardService_CreateTensorboardExperiment_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.create_tensorboard_run.js b/samples/generated/v1/tensorboard_service.create_tensorboard_run.js deleted file mode 100644 index 3b871b13..00000000 --- a/samples/generated/v1/tensorboard_service.create_tensorboard_run.js +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, tensorboardRun, tensorboardRunId) { - // [START aiplatform_v1_generated_TensorboardService_CreateTensorboardRun_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardExperiment to create the TensorboardRun - * in. Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` - */ - // const parent = 'abc123' - /** - * Required. The TensorboardRun to create. - */ - // const tensorboardRun = {} - /** - * Required. The ID to use for the Tensorboard run, which will become the final - * component of the Tensorboard run's resource name. - * This value should be 1-128 characters, and valid characters - * are /[a-z][0-9]-/. - */ - // const tensorboardRunId = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callCreateTensorboardRun() { - // Construct request - const request = { - parent, - tensorboardRun, - tensorboardRunId, - }; - - // Run request - const response = await aiplatformClient.createTensorboardRun(request); - console.log(response); - } - - callCreateTensorboardRun(); - // [END aiplatform_v1_generated_TensorboardService_CreateTensorboardRun_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.create_tensorboard_time_series.js b/samples/generated/v1/tensorboard_service.create_tensorboard_time_series.js deleted file mode 100644 index ab5ce78a..00000000 --- a/samples/generated/v1/tensorboard_service.create_tensorboard_time_series.js +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, tensorboardTimeSeries) { - // [START aiplatform_v1_generated_TensorboardService_CreateTensorboardTimeSeries_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardRun to create the - * TensorboardTimeSeries in. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` - */ - // const parent = 'abc123' - /** - * Optional. The user specified unique ID to use for the TensorboardTimeSeries, which - * will become the final component of the TensorboardTimeSeries's resource - * name. - * This value should match "[a-z0-9][a-z0-9-]{0, 127}" - */ - // const tensorboardTimeSeriesId = 'abc123' - /** - * Required. The TensorboardTimeSeries to create. - */ - // const tensorboardTimeSeries = {} - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callCreateTensorboardTimeSeries() { - // Construct request - const request = { - parent, - tensorboardTimeSeries, - }; - - // Run request - const response = await aiplatformClient.createTensorboardTimeSeries(request); - console.log(response); - } - - callCreateTensorboardTimeSeries(); - // [END aiplatform_v1_generated_TensorboardService_CreateTensorboardTimeSeries_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.delete_tensorboard.js b/samples/generated/v1/tensorboard_service.delete_tensorboard.js deleted file mode 100644 index 15f6a1a5..00000000 --- a/samples/generated/v1/tensorboard_service.delete_tensorboard.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_TensorboardService_DeleteTensorboard_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Tensorboard to be deleted. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callDeleteTensorboard() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteTensorboard(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteTensorboard(); - // [END aiplatform_v1_generated_TensorboardService_DeleteTensorboard_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.delete_tensorboard_experiment.js b/samples/generated/v1/tensorboard_service.delete_tensorboard_experiment.js deleted file mode 100644 index 8a5210aa..00000000 --- a/samples/generated/v1/tensorboard_service.delete_tensorboard_experiment.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_TensorboardService_DeleteTensorboardExperiment_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the TensorboardExperiment to be deleted. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callDeleteTensorboardExperiment() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteTensorboardExperiment(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteTensorboardExperiment(); - // [END aiplatform_v1_generated_TensorboardService_DeleteTensorboardExperiment_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.delete_tensorboard_run.js b/samples/generated/v1/tensorboard_service.delete_tensorboard_run.js deleted file mode 100644 index 59eff3b2..00000000 --- a/samples/generated/v1/tensorboard_service.delete_tensorboard_run.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_TensorboardService_DeleteTensorboardRun_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the TensorboardRun to be deleted. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callDeleteTensorboardRun() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteTensorboardRun(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteTensorboardRun(); - // [END aiplatform_v1_generated_TensorboardService_DeleteTensorboardRun_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.delete_tensorboard_time_series.js b/samples/generated/v1/tensorboard_service.delete_tensorboard_time_series.js deleted file mode 100644 index c826a7c2..00000000 --- a/samples/generated/v1/tensorboard_service.delete_tensorboard_time_series.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_TensorboardService_DeleteTensorboardTimeSeries_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the TensorboardTimeSeries to be deleted. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callDeleteTensorboardTimeSeries() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteTensorboardTimeSeries(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteTensorboardTimeSeries(); - // [END aiplatform_v1_generated_TensorboardService_DeleteTensorboardTimeSeries_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.export_tensorboard_time_series_data.js b/samples/generated/v1/tensorboard_service.export_tensorboard_time_series_data.js deleted file mode 100644 index cab15668..00000000 --- a/samples/generated/v1/tensorboard_service.export_tensorboard_time_series_data.js +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(tensorboardTimeSeries) { - // [START aiplatform_v1_generated_TensorboardService_ExportTensorboardTimeSeriesData_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardTimeSeries to export data from. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` - */ - // const tensorboardTimeSeries = 'abc123' - /** - * Exports the TensorboardTimeSeries' data that match the filter expression. - */ - // const filter = 'abc123' - /** - * The maximum number of data points to return per page. - * The default page_size will be 1000. Values must be between 1 and 10000. - * Values above 10000 will be coerced to 10000. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * TensorboardService.ExportTensorboardTimeSeries call. - * Provide this to retrieve the subsequent page. - * When paginating, all other parameters provided to - * TensorboardService.ExportTensorboardTimeSeries must - * match the call that provided the page token. - */ - // const pageToken = 'abc123' - /** - * Field to use to sort the TensorboardTimeSeries' data. - * By default, TensorboardTimeSeries' data will be returned in a pseudo random - * order. - */ - // const orderBy = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callExportTensorboardTimeSeriesData() { - // Construct request - const request = { - tensorboardTimeSeries, - }; - - // Run request - const iterable = await aiplatformClient.exportTensorboardTimeSeriesDataAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callExportTensorboardTimeSeriesData(); - // [END aiplatform_v1_generated_TensorboardService_ExportTensorboardTimeSeriesData_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.get_tensorboard.js b/samples/generated/v1/tensorboard_service.get_tensorboard.js deleted file mode 100644 index 64941c8c..00000000 --- a/samples/generated/v1/tensorboard_service.get_tensorboard.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_TensorboardService_GetTensorboard_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Tensorboard resource. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callGetTensorboard() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getTensorboard(request); - console.log(response); - } - - callGetTensorboard(); - // [END aiplatform_v1_generated_TensorboardService_GetTensorboard_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.get_tensorboard_experiment.js b/samples/generated/v1/tensorboard_service.get_tensorboard_experiment.js deleted file mode 100644 index 8e15bba4..00000000 --- a/samples/generated/v1/tensorboard_service.get_tensorboard_experiment.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_TensorboardService_GetTensorboardExperiment_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the TensorboardExperiment resource. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callGetTensorboardExperiment() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getTensorboardExperiment(request); - console.log(response); - } - - callGetTensorboardExperiment(); - // [END aiplatform_v1_generated_TensorboardService_GetTensorboardExperiment_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.get_tensorboard_run.js b/samples/generated/v1/tensorboard_service.get_tensorboard_run.js deleted file mode 100644 index 73c3a736..00000000 --- a/samples/generated/v1/tensorboard_service.get_tensorboard_run.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_TensorboardService_GetTensorboardRun_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the TensorboardRun resource. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callGetTensorboardRun() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getTensorboardRun(request); - console.log(response); - } - - callGetTensorboardRun(); - // [END aiplatform_v1_generated_TensorboardService_GetTensorboardRun_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.get_tensorboard_time_series.js b/samples/generated/v1/tensorboard_service.get_tensorboard_time_series.js deleted file mode 100644 index a184731d..00000000 --- a/samples/generated/v1/tensorboard_service.get_tensorboard_time_series.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_TensorboardService_GetTensorboardTimeSeries_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the TensorboardTimeSeries resource. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callGetTensorboardTimeSeries() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getTensorboardTimeSeries(request); - console.log(response); - } - - callGetTensorboardTimeSeries(); - // [END aiplatform_v1_generated_TensorboardService_GetTensorboardTimeSeries_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.list_tensorboard_experiments.js b/samples/generated/v1/tensorboard_service.list_tensorboard_experiments.js deleted file mode 100644 index 18ba1611..00000000 --- a/samples/generated/v1/tensorboard_service.list_tensorboard_experiments.js +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_TensorboardService_ListTensorboardExperiments_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Tensorboard to list TensorboardExperiments. - * Format: - * 'projects/{project}/locations/{location}/tensorboards/{tensorboard}' - */ - // const parent = 'abc123' - /** - * Lists the TensorboardExperiments that match the filter expression. - */ - // const filter = 'abc123' - /** - * The maximum number of TensorboardExperiments to return. The service may - * return fewer than this value. If unspecified, at most 50 - * TensorboardExperiments will be returned. The maximum value is 1000; values - * above 1000 will be coerced to 1000. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * TensorboardService.ListTensorboardExperiments google.cloud.aiplatform.v1.TensorboardService.ListTensorboardExperiments call. - * Provide this to retrieve the subsequent page. - * When paginating, all other parameters provided to - * TensorboardService.ListTensorboardExperiments google.cloud.aiplatform.v1.TensorboardService.ListTensorboardExperiments must - * match the call that provided the page token. - */ - // const pageToken = 'abc123' - /** - * Field to use to sort the list. - */ - // const orderBy = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callListTensorboardExperiments() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listTensorboardExperimentsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListTensorboardExperiments(); - // [END aiplatform_v1_generated_TensorboardService_ListTensorboardExperiments_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.list_tensorboard_runs.js b/samples/generated/v1/tensorboard_service.list_tensorboard_runs.js deleted file mode 100644 index a23885eb..00000000 --- a/samples/generated/v1/tensorboard_service.list_tensorboard_runs.js +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_TensorboardService_ListTensorboardRuns_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardExperiment to list TensorboardRuns. - * Format: - * 'projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}' - */ - // const parent = 'abc123' - /** - * Lists the TensorboardRuns that match the filter expression. - */ - // const filter = 'abc123' - /** - * The maximum number of TensorboardRuns to return. The service may return - * fewer than this value. If unspecified, at most 50 TensorboardRuns will be - * returned. The maximum value is 1000; values above 1000 will be coerced to - * 1000. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * TensorboardService.ListTensorboardRuns google.cloud.aiplatform.v1.TensorboardService.ListTensorboardRuns call. - * Provide this to retrieve the subsequent page. - * When paginating, all other parameters provided to - * TensorboardService.ListTensorboardRuns google.cloud.aiplatform.v1.TensorboardService.ListTensorboardRuns must - * match the call that provided the page token. - */ - // const pageToken = 'abc123' - /** - * Field to use to sort the list. - */ - // const orderBy = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callListTensorboardRuns() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listTensorboardRunsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListTensorboardRuns(); - // [END aiplatform_v1_generated_TensorboardService_ListTensorboardRuns_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.list_tensorboard_time_series.js b/samples/generated/v1/tensorboard_service.list_tensorboard_time_series.js deleted file mode 100644 index 42d7cf63..00000000 --- a/samples/generated/v1/tensorboard_service.list_tensorboard_time_series.js +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_TensorboardService_ListTensorboardTimeSeries_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardRun to list TensorboardTimeSeries. - * Format: - * 'projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}' - */ - // const parent = 'abc123' - /** - * Lists the TensorboardTimeSeries that match the filter expression. - */ - // const filter = 'abc123' - /** - * The maximum number of TensorboardTimeSeries to return. The service may - * return fewer than this value. If unspecified, at most 50 - * TensorboardTimeSeries will be returned. The maximum value is 1000; values - * above 1000 will be coerced to 1000. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * TensorboardService.ListTensorboardTimeSeries google.cloud.aiplatform.v1.TensorboardService.ListTensorboardTimeSeries call. - * Provide this to retrieve the subsequent page. - * When paginating, all other parameters provided to - * TensorboardService.ListTensorboardTimeSeries google.cloud.aiplatform.v1.TensorboardService.ListTensorboardTimeSeries must - * match the call that provided the page token. - */ - // const pageToken = 'abc123' - /** - * Field to use to sort the list. - */ - // const orderBy = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callListTensorboardTimeSeries() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listTensorboardTimeSeriesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListTensorboardTimeSeries(); - // [END aiplatform_v1_generated_TensorboardService_ListTensorboardTimeSeries_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.list_tensorboards.js b/samples/generated/v1/tensorboard_service.list_tensorboards.js deleted file mode 100644 index 382c9563..00000000 --- a/samples/generated/v1/tensorboard_service.list_tensorboards.js +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_TensorboardService_ListTensorboards_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to list Tensorboards. - * Format: - * `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Lists the Tensorboards that match the filter expression. - */ - // const filter = 'abc123' - /** - * The maximum number of Tensorboards to return. The service may return - * fewer than this value. If unspecified, at most 100 Tensorboards will be - * returned. The maximum value is 100; values above 100 will be coerced to - * 100. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * TensorboardService.ListTensorboards google.cloud.aiplatform.v1.TensorboardService.ListTensorboards call. - * Provide this to retrieve the subsequent page. - * When paginating, all other parameters provided to - * TensorboardService.ListTensorboards google.cloud.aiplatform.v1.TensorboardService.ListTensorboards must - * match the call that provided the page token. - */ - // const pageToken = 'abc123' - /** - * Field to use to sort the list. - */ - // const orderBy = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callListTensorboards() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listTensorboardsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListTensorboards(); - // [END aiplatform_v1_generated_TensorboardService_ListTensorboards_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.read_tensorboard_blob_data.js b/samples/generated/v1/tensorboard_service.read_tensorboard_blob_data.js deleted file mode 100644 index 80de1a94..00000000 --- a/samples/generated/v1/tensorboard_service.read_tensorboard_blob_data.js +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(timeSeries) { - // [START aiplatform_v1_generated_TensorboardService_ReadTensorboardBlobData_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardTimeSeries to list Blobs. - * Format: - * 'projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}' - */ - // const timeSeries = 'abc123' - /** - * IDs of the blobs to read. - */ - // const blobIds = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callReadTensorboardBlobData() { - // Construct request - const request = { - timeSeries, - }; - - // Run request - const stream = await aiplatformClient.readTensorboardBlobData(request); - stream.on('data', (response) => { console.log(response) }); - stream.on('error', (err) => { throw(err) }); - stream.on('end', () => { /* API call completed */ }); - } - - callReadTensorboardBlobData(); - // [END aiplatform_v1_generated_TensorboardService_ReadTensorboardBlobData_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.read_tensorboard_time_series_data.js b/samples/generated/v1/tensorboard_service.read_tensorboard_time_series_data.js deleted file mode 100644 index 78c9fe0d..00000000 --- a/samples/generated/v1/tensorboard_service.read_tensorboard_time_series_data.js +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(tensorboardTimeSeries) { - // [START aiplatform_v1_generated_TensorboardService_ReadTensorboardTimeSeriesData_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardTimeSeries to read data from. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` - */ - // const tensorboardTimeSeries = 'abc123' - /** - * The maximum number of TensorboardTimeSeries' data to return. - * This value should be a positive integer. - * This value can be set to -1 to return all data. - */ - // const maxDataPoints = 1234 - /** - * Reads the TensorboardTimeSeries' data that match the filter expression. - */ - // const filter = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callReadTensorboardTimeSeriesData() { - // Construct request - const request = { - tensorboardTimeSeries, - }; - - // Run request - const response = await aiplatformClient.readTensorboardTimeSeriesData(request); - console.log(response); - } - - callReadTensorboardTimeSeriesData(); - // [END aiplatform_v1_generated_TensorboardService_ReadTensorboardTimeSeriesData_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.update_tensorboard.js b/samples/generated/v1/tensorboard_service.update_tensorboard.js deleted file mode 100644 index a7e18a29..00000000 --- a/samples/generated/v1/tensorboard_service.update_tensorboard.js +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(updateMask, tensorboard) { - // [START aiplatform_v1_generated_TensorboardService_UpdateTensorboard_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. Field mask is used to specify the fields to be overwritten in the - * Tensorboard resource by the update. - * The fields specified in the update_mask are relative to the resource, not - * the full request. A field will be overwritten if it is in the mask. If the - * user does not provide a mask then all fields will be overwritten if new - * values are specified. - */ - // const updateMask = {} - /** - * Required. The Tensorboard's `name` field is used to identify the - * Tensorboard to be updated. Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}` - */ - // const tensorboard = {} - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callUpdateTensorboard() { - // Construct request - const request = { - updateMask, - tensorboard, - }; - - // Run request - const [operation] = await aiplatformClient.updateTensorboard(request); - const [response] = await operation.promise(); - console.log(response); - } - - callUpdateTensorboard(); - // [END aiplatform_v1_generated_TensorboardService_UpdateTensorboard_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.update_tensorboard_experiment.js b/samples/generated/v1/tensorboard_service.update_tensorboard_experiment.js deleted file mode 100644 index a7d2f468..00000000 --- a/samples/generated/v1/tensorboard_service.update_tensorboard_experiment.js +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(updateMask, tensorboardExperiment) { - // [START aiplatform_v1_generated_TensorboardService_UpdateTensorboardExperiment_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. Field mask is used to specify the fields to be overwritten in the - * TensorboardExperiment resource by the update. - * The fields specified in the update_mask are relative to the resource, not - * the full request. A field will be overwritten if it is in the mask. If the - * user does not provide a mask then all fields will be overwritten if new - * values are specified. - */ - // const updateMask = {} - /** - * Required. The TensorboardExperiment's `name` field is used to identify the - * TensorboardExperiment to be updated. Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` - */ - // const tensorboardExperiment = {} - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callUpdateTensorboardExperiment() { - // Construct request - const request = { - updateMask, - tensorboardExperiment, - }; - - // Run request - const response = await aiplatformClient.updateTensorboardExperiment(request); - console.log(response); - } - - callUpdateTensorboardExperiment(); - // [END aiplatform_v1_generated_TensorboardService_UpdateTensorboardExperiment_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.update_tensorboard_run.js b/samples/generated/v1/tensorboard_service.update_tensorboard_run.js deleted file mode 100644 index bb39cc2f..00000000 --- a/samples/generated/v1/tensorboard_service.update_tensorboard_run.js +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(updateMask, tensorboardRun) { - // [START aiplatform_v1_generated_TensorboardService_UpdateTensorboardRun_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. Field mask is used to specify the fields to be overwritten in the - * TensorboardRun resource by the update. - * The fields specified in the update_mask are relative to the resource, not - * the full request. A field will be overwritten if it is in the mask. If the - * user does not provide a mask then all fields will be overwritten if new - * values are specified. - */ - // const updateMask = {} - /** - * Required. The TensorboardRun's `name` field is used to identify the TensorboardRun to - * be updated. Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` - */ - // const tensorboardRun = {} - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callUpdateTensorboardRun() { - // Construct request - const request = { - updateMask, - tensorboardRun, - }; - - // Run request - const response = await aiplatformClient.updateTensorboardRun(request); - console.log(response); - } - - callUpdateTensorboardRun(); - // [END aiplatform_v1_generated_TensorboardService_UpdateTensorboardRun_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.update_tensorboard_time_series.js b/samples/generated/v1/tensorboard_service.update_tensorboard_time_series.js deleted file mode 100644 index e088739b..00000000 --- a/samples/generated/v1/tensorboard_service.update_tensorboard_time_series.js +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(updateMask, tensorboardTimeSeries) { - // [START aiplatform_v1_generated_TensorboardService_UpdateTensorboardTimeSeries_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. Field mask is used to specify the fields to be overwritten in the - * TensorboardTimeSeries resource by the update. - * The fields specified in the update_mask are relative to the resource, not - * the full request. A field will be overwritten if it is in the mask. If the - * user does not provide a mask then all fields will be overwritten if new - * values are specified. - */ - // const updateMask = {} - /** - * Required. The TensorboardTimeSeries' `name` field is used to identify the - * TensorboardTimeSeries to be updated. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` - */ - // const tensorboardTimeSeries = {} - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callUpdateTensorboardTimeSeries() { - // Construct request - const request = { - updateMask, - tensorboardTimeSeries, - }; - - // Run request - const response = await aiplatformClient.updateTensorboardTimeSeries(request); - console.log(response); - } - - callUpdateTensorboardTimeSeries(); - // [END aiplatform_v1_generated_TensorboardService_UpdateTensorboardTimeSeries_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.write_tensorboard_experiment_data.js b/samples/generated/v1/tensorboard_service.write_tensorboard_experiment_data.js deleted file mode 100644 index 1d4b1f72..00000000 --- a/samples/generated/v1/tensorboard_service.write_tensorboard_experiment_data.js +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(tensorboardExperiment, writeRunDataRequests) { - // [START aiplatform_v1_generated_TensorboardService_WriteTensorboardExperimentData_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardExperiment to write data to. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` - */ - // const tensorboardExperiment = 'abc123' - /** - * Required. Requests containing per-run TensorboardTimeSeries data to write. - */ - // const writeRunDataRequests = 1234 - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callWriteTensorboardExperimentData() { - // Construct request - const request = { - tensorboardExperiment, - writeRunDataRequests, - }; - - // Run request - const response = await aiplatformClient.writeTensorboardExperimentData(request); - console.log(response); - } - - callWriteTensorboardExperimentData(); - // [END aiplatform_v1_generated_TensorboardService_WriteTensorboardExperimentData_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/tensorboard_service.write_tensorboard_run_data.js b/samples/generated/v1/tensorboard_service.write_tensorboard_run_data.js deleted file mode 100644 index 3832a834..00000000 --- a/samples/generated/v1/tensorboard_service.write_tensorboard_run_data.js +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(tensorboardRun, timeSeriesData) { - // [START aiplatform_v1_generated_TensorboardService_WriteTensorboardRunData_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardRun to write data to. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` - */ - // const tensorboardRun = 'abc123' - /** - * Required. The TensorboardTimeSeries data to write. - * Values with in a time series are indexed by their step value. - * Repeated writes to the same step will overwrite the existing value for that - * step. - * The upper limit of data points per write request is 5000. - */ - // const timeSeriesData = 1234 - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callWriteTensorboardRunData() { - // Construct request - const request = { - tensorboardRun, - timeSeriesData, - }; - - // Run request - const response = await aiplatformClient.writeTensorboardRunData(request); - console.log(response); - } - - callWriteTensorboardRunData(); - // [END aiplatform_v1_generated_TensorboardService_WriteTensorboardRunData_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/vizier_service.add_trial_measurement.js b/samples/generated/v1/vizier_service.add_trial_measurement.js deleted file mode 100644 index 4f82bef7..00000000 --- a/samples/generated/v1/vizier_service.add_trial_measurement.js +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(trialName, measurement) { - // [START aiplatform_v1_generated_VizierService_AddTrialMeasurement_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the trial to add measurement. - * Format: - * `projects/{project}/locations/{location}/studies/{study}/trials/{trial}` - */ - // const trialName = 'abc123' - /** - * Required. The measurement to be added to a Trial. - */ - // const measurement = {} - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callAddTrialMeasurement() { - // Construct request - const request = { - trialName, - measurement, - }; - - // Run request - const response = await aiplatformClient.addTrialMeasurement(request); - console.log(response); - } - - callAddTrialMeasurement(); - // [END aiplatform_v1_generated_VizierService_AddTrialMeasurement_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/vizier_service.check_trial_early_stopping_state.js b/samples/generated/v1/vizier_service.check_trial_early_stopping_state.js deleted file mode 100644 index 3e2a0bee..00000000 --- a/samples/generated/v1/vizier_service.check_trial_early_stopping_state.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(trialName) { - // [START aiplatform_v1_generated_VizierService_CheckTrialEarlyStoppingState_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Trial's name. - * Format: - * `projects/{project}/locations/{location}/studies/{study}/trials/{trial}` - */ - // const trialName = 'abc123' - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callCheckTrialEarlyStoppingState() { - // Construct request - const request = { - trialName, - }; - - // Run request - const [operation] = await aiplatformClient.checkTrialEarlyStoppingState(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCheckTrialEarlyStoppingState(); - // [END aiplatform_v1_generated_VizierService_CheckTrialEarlyStoppingState_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/vizier_service.complete_trial.js b/samples/generated/v1/vizier_service.complete_trial.js deleted file mode 100644 index 7959a784..00000000 --- a/samples/generated/v1/vizier_service.complete_trial.js +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_VizierService_CompleteTrial_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Trial's name. - * Format: - * `projects/{project}/locations/{location}/studies/{study}/trials/{trial}` - */ - // const name = 'abc123' - /** - * Optional. If provided, it will be used as the completed Trial's - * final_measurement; Otherwise, the service will auto-select a - * previously reported measurement as the final-measurement - */ - // const finalMeasurement = {} - /** - * Optional. True if the Trial cannot be run with the given Parameter, and - * final_measurement will be ignored. - */ - // const trialInfeasible = true - /** - * Optional. A human readable reason why the trial was infeasible. This should - * only be provided if `trial_infeasible` is true. - */ - // const infeasibleReason = 'abc123' - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callCompleteTrial() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.completeTrial(request); - console.log(response); - } - - callCompleteTrial(); - // [END aiplatform_v1_generated_VizierService_CompleteTrial_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/vizier_service.create_study.js b/samples/generated/v1/vizier_service.create_study.js deleted file mode 100644 index 9ba62741..00000000 --- a/samples/generated/v1/vizier_service.create_study.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, study) { - // [START aiplatform_v1_generated_VizierService_CreateStudy_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the CustomJob in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The Study configuration used to create the Study. - */ - // const study = {} - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callCreateStudy() { - // Construct request - const request = { - parent, - study, - }; - - // Run request - const response = await aiplatformClient.createStudy(request); - console.log(response); - } - - callCreateStudy(); - // [END aiplatform_v1_generated_VizierService_CreateStudy_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/vizier_service.create_trial.js b/samples/generated/v1/vizier_service.create_trial.js deleted file mode 100644 index 22234d93..00000000 --- a/samples/generated/v1/vizier_service.create_trial.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, trial) { - // [START aiplatform_v1_generated_VizierService_CreateTrial_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Study to create the Trial in. - * Format: `projects/{project}/locations/{location}/studies/{study}` - */ - // const parent = 'abc123' - /** - * Required. The Trial to create. - */ - // const trial = {} - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callCreateTrial() { - // Construct request - const request = { - parent, - trial, - }; - - // Run request - const response = await aiplatformClient.createTrial(request); - console.log(response); - } - - callCreateTrial(); - // [END aiplatform_v1_generated_VizierService_CreateTrial_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/vizier_service.delete_study.js b/samples/generated/v1/vizier_service.delete_study.js deleted file mode 100644 index f02d7776..00000000 --- a/samples/generated/v1/vizier_service.delete_study.js +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_VizierService_DeleteStudy_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Study resource to be deleted. - * Format: `projects/{project}/locations/{location}/studies/{study}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callDeleteStudy() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.deleteStudy(request); - console.log(response); - } - - callDeleteStudy(); - // [END aiplatform_v1_generated_VizierService_DeleteStudy_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/vizier_service.delete_trial.js b/samples/generated/v1/vizier_service.delete_trial.js deleted file mode 100644 index cea002eb..00000000 --- a/samples/generated/v1/vizier_service.delete_trial.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_VizierService_DeleteTrial_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Trial's name. - * Format: - * `projects/{project}/locations/{location}/studies/{study}/trials/{trial}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callDeleteTrial() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.deleteTrial(request); - console.log(response); - } - - callDeleteTrial(); - // [END aiplatform_v1_generated_VizierService_DeleteTrial_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/vizier_service.get_study.js b/samples/generated/v1/vizier_service.get_study.js deleted file mode 100644 index 9433a10e..00000000 --- a/samples/generated/v1/vizier_service.get_study.js +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_VizierService_GetStudy_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Study resource. - * Format: `projects/{project}/locations/{location}/studies/{study}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callGetStudy() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getStudy(request); - console.log(response); - } - - callGetStudy(); - // [END aiplatform_v1_generated_VizierService_GetStudy_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/vizier_service.get_trial.js b/samples/generated/v1/vizier_service.get_trial.js deleted file mode 100644 index 12cf8b9a..00000000 --- a/samples/generated/v1/vizier_service.get_trial.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_VizierService_GetTrial_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Trial resource. - * Format: - * `projects/{project}/locations/{location}/studies/{study}/trials/{trial}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callGetTrial() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getTrial(request); - console.log(response); - } - - callGetTrial(); - // [END aiplatform_v1_generated_VizierService_GetTrial_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/vizier_service.list_optimal_trials.js b/samples/generated/v1/vizier_service.list_optimal_trials.js deleted file mode 100644 index beb5b901..00000000 --- a/samples/generated/v1/vizier_service.list_optimal_trials.js +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_VizierService_ListOptimalTrials_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Study that the optimal Trial belongs to. - */ - // const parent = 'abc123' - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callListOptimalTrials() { - // Construct request - const request = { - parent, - }; - - // Run request - const response = await aiplatformClient.listOptimalTrials(request); - console.log(response); - } - - callListOptimalTrials(); - // [END aiplatform_v1_generated_VizierService_ListOptimalTrials_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/vizier_service.list_studies.js b/samples/generated/v1/vizier_service.list_studies.js deleted file mode 100644 index d1cc9b92..00000000 --- a/samples/generated/v1/vizier_service.list_studies.js +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_VizierService_ListStudies_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to list the Study from. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Optional. A page token to request the next page of results. - * If unspecified, there are no subsequent pages. - */ - // const pageToken = 'abc123' - /** - * Optional. The maximum number of studies to return per "page" of results. - * If unspecified, service will pick an appropriate default. - */ - // const pageSize = 1234 - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callListStudies() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listStudiesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListStudies(); - // [END aiplatform_v1_generated_VizierService_ListStudies_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/vizier_service.list_trials.js b/samples/generated/v1/vizier_service.list_trials.js deleted file mode 100644 index 8d98e211..00000000 --- a/samples/generated/v1/vizier_service.list_trials.js +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1_generated_VizierService_ListTrials_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Study to list the Trial from. - * Format: `projects/{project}/locations/{location}/studies/{study}` - */ - // const parent = 'abc123' - /** - * Optional. A page token to request the next page of results. - * If unspecified, there are no subsequent pages. - */ - // const pageToken = 'abc123' - /** - * Optional. The number of Trials to retrieve per "page" of results. - * If unspecified, the service will pick an appropriate default. - */ - // const pageSize = 1234 - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callListTrials() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listTrialsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListTrials(); - // [END aiplatform_v1_generated_VizierService_ListTrials_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/vizier_service.lookup_study.js b/samples/generated/v1/vizier_service.lookup_study.js deleted file mode 100644 index 7d346802..00000000 --- a/samples/generated/v1/vizier_service.lookup_study.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, displayName) { - // [START aiplatform_v1_generated_VizierService_LookupStudy_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to get the Study from. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The user-defined display name of the Study - */ - // const displayName = 'abc123' - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callLookupStudy() { - // Construct request - const request = { - parent, - displayName, - }; - - // Run request - const response = await aiplatformClient.lookupStudy(request); - console.log(response); - } - - callLookupStudy(); - // [END aiplatform_v1_generated_VizierService_LookupStudy_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/vizier_service.stop_trial.js b/samples/generated/v1/vizier_service.stop_trial.js deleted file mode 100644 index 06c84064..00000000 --- a/samples/generated/v1/vizier_service.stop_trial.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1_generated_VizierService_StopTrial_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Trial's name. - * Format: - * `projects/{project}/locations/{location}/studies/{study}/trials/{trial}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callStopTrial() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.stopTrial(request); - console.log(response); - } - - callStopTrial(); - // [END aiplatform_v1_generated_VizierService_StopTrial_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1/vizier_service.suggest_trials.js b/samples/generated/v1/vizier_service.suggest_trials.js deleted file mode 100644 index de1c3454..00000000 --- a/samples/generated/v1/vizier_service.suggest_trials.js +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, suggestionCount, clientId) { - // [START aiplatform_v1_generated_VizierService_SuggestTrials_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The project and location that the Study belongs to. - * Format: `projects/{project}/locations/{location}/studies/{study}` - */ - // const parent = 'abc123' - /** - * Required. The number of suggestions requested. It must be positive. - */ - // const suggestionCount = 1234 - /** - * Required. The identifier of the client that is requesting the suggestion. - * If multiple SuggestTrialsRequests have the same `client_id`, - * the service will return the identical suggested Trial if the Trial is - * pending, and provide a new Trial if the last suggested Trial was completed. - */ - // const clientId = 'abc123' - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callSuggestTrials() { - // Construct request - const request = { - parent, - suggestionCount, - clientId, - }; - - // Run request - const [operation] = await aiplatformClient.suggestTrials(request); - const [response] = await operation.promise(); - console.log(response); - } - - callSuggestTrials(); - // [END aiplatform_v1_generated_VizierService_SuggestTrials_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/dataset_service.create_dataset.js b/samples/generated/v1beta1/dataset_service.create_dataset.js deleted file mode 100644 index b0c64681..00000000 --- a/samples/generated/v1beta1/dataset_service.create_dataset.js +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, dataset) { - // [START aiplatform_v1beta1_generated_DatasetService_CreateDataset_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the Dataset in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The Dataset to create. - */ - // const dataset = {} - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callCreateDataset() { - // Construct request - const request = { - parent, - dataset, - }; - - // Run request - const [operation] = await aiplatformClient.createDataset(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateDataset(); - // [END aiplatform_v1beta1_generated_DatasetService_CreateDataset_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/dataset_service.delete_dataset.js b/samples/generated/v1beta1/dataset_service.delete_dataset.js deleted file mode 100644 index 6432c8d6..00000000 --- a/samples/generated/v1beta1/dataset_service.delete_dataset.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_DatasetService_DeleteDataset_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Dataset to delete. - * Format: - * `projects/{project}/locations/{location}/datasets/{dataset}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callDeleteDataset() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteDataset(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteDataset(); - // [END aiplatform_v1beta1_generated_DatasetService_DeleteDataset_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/dataset_service.export_data.js b/samples/generated/v1beta1/dataset_service.export_data.js deleted file mode 100644 index 63939a79..00000000 --- a/samples/generated/v1beta1/dataset_service.export_data.js +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name, exportConfig) { - // [START aiplatform_v1beta1_generated_DatasetService_ExportData_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Dataset resource. - * Format: - * `projects/{project}/locations/{location}/datasets/{dataset}` - */ - // const name = 'abc123' - /** - * Required. The desired output location. - */ - // const exportConfig = {} - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callExportData() { - // Construct request - const request = { - name, - exportConfig, - }; - - // Run request - const [operation] = await aiplatformClient.exportData(request); - const [response] = await operation.promise(); - console.log(response); - } - - callExportData(); - // [END aiplatform_v1beta1_generated_DatasetService_ExportData_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/dataset_service.get_annotation_spec.js b/samples/generated/v1beta1/dataset_service.get_annotation_spec.js deleted file mode 100644 index a7fc64fe..00000000 --- a/samples/generated/v1beta1/dataset_service.get_annotation_spec.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_DatasetService_GetAnnotationSpec_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the AnnotationSpec resource. - * Format: - * `projects/{project}/locations/{location}/datasets/{dataset}/annotationSpecs/{annotation_spec}` - */ - // const name = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callGetAnnotationSpec() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getAnnotationSpec(request); - console.log(response); - } - - callGetAnnotationSpec(); - // [END aiplatform_v1beta1_generated_DatasetService_GetAnnotationSpec_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/dataset_service.get_dataset.js b/samples/generated/v1beta1/dataset_service.get_dataset.js deleted file mode 100644 index 71879dc8..00000000 --- a/samples/generated/v1beta1/dataset_service.get_dataset.js +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_DatasetService_GetDataset_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Dataset resource. - */ - // const name = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callGetDataset() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getDataset(request); - console.log(response); - } - - callGetDataset(); - // [END aiplatform_v1beta1_generated_DatasetService_GetDataset_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/dataset_service.import_data.js b/samples/generated/v1beta1/dataset_service.import_data.js deleted file mode 100644 index 0cb8aa08..00000000 --- a/samples/generated/v1beta1/dataset_service.import_data.js +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name, importConfigs) { - // [START aiplatform_v1beta1_generated_DatasetService_ImportData_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Dataset resource. - * Format: - * `projects/{project}/locations/{location}/datasets/{dataset}` - */ - // const name = 'abc123' - /** - * Required. The desired input locations. The contents of all input locations will be - * imported in one batch. - */ - // const importConfigs = 1234 - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callImportData() { - // Construct request - const request = { - name, - importConfigs, - }; - - // Run request - const [operation] = await aiplatformClient.importData(request); - const [response] = await operation.promise(); - console.log(response); - } - - callImportData(); - // [END aiplatform_v1beta1_generated_DatasetService_ImportData_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/dataset_service.list_annotations.js b/samples/generated/v1beta1/dataset_service.list_annotations.js deleted file mode 100644 index 9fc64663..00000000 --- a/samples/generated/v1beta1/dataset_service.list_annotations.js +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_DatasetService_ListAnnotations_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the DataItem to list Annotations from. - * Format: - * `projects/{project}/locations/{location}/datasets/{dataset}/dataItems/{data_item}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - /** - * A comma-separated list of fields to order by, sorted in ascending order. - * Use "desc" after a field name for descending. - */ - // const orderBy = 'abc123' - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callListAnnotations() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listAnnotationsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListAnnotations(); - // [END aiplatform_v1beta1_generated_DatasetService_ListAnnotations_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/dataset_service.list_data_items.js b/samples/generated/v1beta1/dataset_service.list_data_items.js deleted file mode 100644 index a4d6f655..00000000 --- a/samples/generated/v1beta1/dataset_service.list_data_items.js +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_DatasetService_ListDataItems_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Dataset to list DataItems from. - * Format: - * `projects/{project}/locations/{location}/datasets/{dataset}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - /** - * A comma-separated list of fields to order by, sorted in ascending order. - * Use "desc" after a field name for descending. - */ - // const orderBy = 'abc123' - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callListDataItems() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listDataItemsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListDataItems(); - // [END aiplatform_v1beta1_generated_DatasetService_ListDataItems_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/dataset_service.list_datasets.js b/samples/generated/v1beta1/dataset_service.list_datasets.js deleted file mode 100644 index e63d0d90..00000000 --- a/samples/generated/v1beta1/dataset_service.list_datasets.js +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_DatasetService_ListDatasets_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Dataset's parent resource. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * An expression for filtering the results of the request. For field names - * both snake_case and camelCase are supported. - * * `display_name`: supports = and != - * * `metadata_schema_uri`: supports = and != - * * `labels` supports general map functions that is: - * * `labels.key=value` - key:value equality - * * `labels.key:* or labels:key - key existence - * * A key including a space must be quoted. `labels."a key"`. - * Some examples: - * * `displayName="myDisplayName"` - * * `labels.myKey="myValue"` - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - /** - * A comma-separated list of fields to order by, sorted in ascending order. - * Use "desc" after a field name for descending. - * Supported fields: - * * `display_name` - * * `create_time` - * * `update_time` - */ - // const orderBy = 'abc123' - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callListDatasets() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listDatasetsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListDatasets(); - // [END aiplatform_v1beta1_generated_DatasetService_ListDatasets_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/dataset_service.list_saved_queries.js b/samples/generated/v1beta1/dataset_service.list_saved_queries.js deleted file mode 100644 index 642b10d8..00000000 --- a/samples/generated/v1beta1/dataset_service.list_saved_queries.js +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_DatasetService_ListSavedQueries_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Dataset to list SavedQueries from. - * Format: - * `projects/{project}/locations/{location}/datasets/{dataset}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - /** - * A comma-separated list of fields to order by, sorted in ascending order. - * Use "desc" after a field name for descending. - */ - // const orderBy = 'abc123' - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callListSavedQueries() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listSavedQueriesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListSavedQueries(); - // [END aiplatform_v1beta1_generated_DatasetService_ListSavedQueries_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/dataset_service.update_dataset.js b/samples/generated/v1beta1/dataset_service.update_dataset.js deleted file mode 100644 index 554a1882..00000000 --- a/samples/generated/v1beta1/dataset_service.update_dataset.js +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(dataset, updateMask) { - // [START aiplatform_v1beta1_generated_DatasetService_UpdateDataset_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Dataset which replaces the resource on the server. - */ - // const dataset = {} - /** - * Required. The update mask applies to the resource. - * For the `FieldMask` definition, see google.protobuf.FieldMask google.protobuf.FieldMask. - * Updatable fields: - * * `display_name` - * * `description` - * * `labels` - */ - // const updateMask = {} - - // Imports the Aiplatform library - const {DatasetServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new DatasetServiceClient(); - - async function callUpdateDataset() { - // Construct request - const request = { - dataset, - updateMask, - }; - - // Run request - const response = await aiplatformClient.updateDataset(request); - console.log(response); - } - - callUpdateDataset(); - // [END aiplatform_v1beta1_generated_DatasetService_UpdateDataset_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/deployment_resource_pool_service.create_deployment_resource_pool.js b/samples/generated/v1beta1/deployment_resource_pool_service.create_deployment_resource_pool.js deleted file mode 100644 index 7d4e8f3a..00000000 --- a/samples/generated/v1beta1/deployment_resource_pool_service.create_deployment_resource_pool.js +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, deploymentResourcePool, deploymentResourcePoolId) { - // [START aiplatform_v1beta1_generated_DeploymentResourcePoolService_CreateDeploymentResourcePool_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The parent location resource where this DeploymentResourcePool will be - * created. Format: projects/{project}/locations/{location} - */ - // const parent = 'abc123' - /** - * Required. The DeploymentResourcePool to create. - */ - // const deploymentResourcePool = {} - /** - * Required. The ID to use for the DeploymentResourcePool, which - * will become the final component of the DeploymentResourcePool's resource - * name. - * The maximum length is 63 characters, and valid characters - * are `/^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$/`. - */ - // const deploymentResourcePoolId = 'abc123' - - // Imports the Aiplatform library - const {DeploymentResourcePoolServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new DeploymentResourcePoolServiceClient(); - - async function callCreateDeploymentResourcePool() { - // Construct request - const request = { - parent, - deploymentResourcePool, - deploymentResourcePoolId, - }; - - // Run request - const [operation] = await aiplatformClient.createDeploymentResourcePool(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateDeploymentResourcePool(); - // [END aiplatform_v1beta1_generated_DeploymentResourcePoolService_CreateDeploymentResourcePool_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/deployment_resource_pool_service.delete_deployment_resource_pool.js b/samples/generated/v1beta1/deployment_resource_pool_service.delete_deployment_resource_pool.js deleted file mode 100644 index 4ce318f1..00000000 --- a/samples/generated/v1beta1/deployment_resource_pool_service.delete_deployment_resource_pool.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_DeploymentResourcePoolService_DeleteDeploymentResourcePool_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the DeploymentResourcePool to delete. - * Format: - * projects/{project}/locations/{location}/deploymentResourcePools/{deployment_resource_pool} - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {DeploymentResourcePoolServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new DeploymentResourcePoolServiceClient(); - - async function callDeleteDeploymentResourcePool() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteDeploymentResourcePool(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteDeploymentResourcePool(); - // [END aiplatform_v1beta1_generated_DeploymentResourcePoolService_DeleteDeploymentResourcePool_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/deployment_resource_pool_service.get_deployment_resource_pool.js b/samples/generated/v1beta1/deployment_resource_pool_service.get_deployment_resource_pool.js deleted file mode 100644 index 5f41499f..00000000 --- a/samples/generated/v1beta1/deployment_resource_pool_service.get_deployment_resource_pool.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_DeploymentResourcePoolService_GetDeploymentResourcePool_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the DeploymentResourcePool to retrieve. - * Format: - * projects/{project}/locations/{location}/deploymentResourcePools/{deployment_resource_pool} - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {DeploymentResourcePoolServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new DeploymentResourcePoolServiceClient(); - - async function callGetDeploymentResourcePool() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getDeploymentResourcePool(request); - console.log(response); - } - - callGetDeploymentResourcePool(); - // [END aiplatform_v1beta1_generated_DeploymentResourcePoolService_GetDeploymentResourcePool_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/deployment_resource_pool_service.list_deployment_resource_pools.js b/samples/generated/v1beta1/deployment_resource_pool_service.list_deployment_resource_pools.js deleted file mode 100644 index 870cb8e9..00000000 --- a/samples/generated/v1beta1/deployment_resource_pool_service.list_deployment_resource_pools.js +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_DeploymentResourcePoolService_ListDeploymentResourcePools_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The parent Location which owns this collection of DeploymentResourcePools. - * Format: projects/{project}/locations/{location} - */ - // const parent = 'abc123' - /** - * The maximum number of DeploymentResourcePools to return. The service may - * return fewer than this value. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous `ListDeploymentResourcePools` call. - * Provide this to retrieve the subsequent page. - * When paginating, all other parameters provided to - * `ListDeploymentResourcePools` must match the call that provided the page - * token. - */ - // const pageToken = 'abc123' - - // Imports the Aiplatform library - const {DeploymentResourcePoolServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new DeploymentResourcePoolServiceClient(); - - async function callListDeploymentResourcePools() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listDeploymentResourcePoolsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListDeploymentResourcePools(); - // [END aiplatform_v1beta1_generated_DeploymentResourcePoolService_ListDeploymentResourcePools_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/deployment_resource_pool_service.query_deployed_models.js b/samples/generated/v1beta1/deployment_resource_pool_service.query_deployed_models.js deleted file mode 100644 index 42e8f330..00000000 --- a/samples/generated/v1beta1/deployment_resource_pool_service.query_deployed_models.js +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(deploymentResourcePool) { - // [START aiplatform_v1beta1_generated_DeploymentResourcePoolService_QueryDeployedModels_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the target DeploymentResourcePool to query. - * Format: - * projects/{project}/locations/{location}/deploymentResourcePools/{deployment_resource_pool} - */ - // const deploymentResourcePool = 'abc123' - /** - * The maximum number of DeployedModels to return. The service may return - * fewer than this value. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous `QueryDeployedModels` call. - * Provide this to retrieve the subsequent page. - * When paginating, all other parameters provided to - * `QueryDeployedModels` must match the call that provided the page - * token. - */ - // const pageToken = 'abc123' - - // Imports the Aiplatform library - const {DeploymentResourcePoolServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new DeploymentResourcePoolServiceClient(); - - async function callQueryDeployedModels() { - // Construct request - const request = { - deploymentResourcePool, - }; - - // Run request - const iterable = await aiplatformClient.queryDeployedModelsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callQueryDeployedModels(); - // [END aiplatform_v1beta1_generated_DeploymentResourcePoolService_QueryDeployedModels_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/endpoint_service.create_endpoint.js b/samples/generated/v1beta1/endpoint_service.create_endpoint.js deleted file mode 100644 index 29f037af..00000000 --- a/samples/generated/v1beta1/endpoint_service.create_endpoint.js +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, endpoint, endpointId) { - // [START aiplatform_v1beta1_generated_EndpointService_CreateEndpoint_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the Endpoint in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The Endpoint to create. - */ - // const endpoint = {} - /** - * Immutable. The ID to use for endpoint, which will become the final - * component of the endpoint resource name. - * If not provided, Vertex AI will generate a value for this ID. - * This value should be 1-10 characters, and valid characters are /[0-9]/. - * When using HTTP/JSON, this field is populated based on a query string - * argument, such as `?endpoint_id=12345`. This is the fallback for fields - * that are not included in either the URI or the body. - */ - // const endpointId = 'abc123' - - // Imports the Aiplatform library - const {EndpointServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new EndpointServiceClient(); - - async function callCreateEndpoint() { - // Construct request - const request = { - parent, - endpoint, - endpointId, - }; - - // Run request - const [operation] = await aiplatformClient.createEndpoint(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateEndpoint(); - // [END aiplatform_v1beta1_generated_EndpointService_CreateEndpoint_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/endpoint_service.delete_endpoint.js b/samples/generated/v1beta1/endpoint_service.delete_endpoint.js deleted file mode 100644 index d8c0df48..00000000 --- a/samples/generated/v1beta1/endpoint_service.delete_endpoint.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_EndpointService_DeleteEndpoint_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Endpoint resource to be deleted. - * Format: - * `projects/{project}/locations/{location}/endpoints/{endpoint}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {EndpointServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new EndpointServiceClient(); - - async function callDeleteEndpoint() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteEndpoint(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteEndpoint(); - // [END aiplatform_v1beta1_generated_EndpointService_DeleteEndpoint_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/endpoint_service.deploy_model.js b/samples/generated/v1beta1/endpoint_service.deploy_model.js deleted file mode 100644 index 04467707..00000000 --- a/samples/generated/v1beta1/endpoint_service.deploy_model.js +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(endpoint, deployedModel) { - // [START aiplatform_v1beta1_generated_EndpointService_DeployModel_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Endpoint resource into which to deploy a Model. - * Format: - * `projects/{project}/locations/{location}/endpoints/{endpoint}` - */ - // const endpoint = 'abc123' - /** - * Required. The DeployedModel to be created within the Endpoint. Note that - * Endpoint.traffic_split google.cloud.aiplatform.v1beta1.Endpoint.traffic_split must be updated for the DeployedModel to start - * receiving traffic, either as part of this call, or via - * EndpointService.UpdateEndpoint google.cloud.aiplatform.v1beta1.EndpointService.UpdateEndpoint. - */ - // const deployedModel = {} - /** - * A map from a DeployedModel's ID to the percentage of this Endpoint's - * traffic that should be forwarded to that DeployedModel. - * If this field is non-empty, then the Endpoint's - * traffic_split google.cloud.aiplatform.v1beta1.Endpoint.traffic_split will be overwritten with it. - * To refer to the ID of the just being deployed Model, a "0" should be used, - * and the actual ID of the new DeployedModel will be filled in its place by - * this method. The traffic percentage values must add up to 100. - * If this field is empty, then the Endpoint's - * traffic_split google.cloud.aiplatform.v1beta1.Endpoint.traffic_split is not updated. - */ - // const trafficSplit = 1234 - - // Imports the Aiplatform library - const {EndpointServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new EndpointServiceClient(); - - async function callDeployModel() { - // Construct request - const request = { - endpoint, - deployedModel, - }; - - // Run request - const [operation] = await aiplatformClient.deployModel(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeployModel(); - // [END aiplatform_v1beta1_generated_EndpointService_DeployModel_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/endpoint_service.get_endpoint.js b/samples/generated/v1beta1/endpoint_service.get_endpoint.js deleted file mode 100644 index 35c27ab6..00000000 --- a/samples/generated/v1beta1/endpoint_service.get_endpoint.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_EndpointService_GetEndpoint_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Endpoint resource. - * Format: - * `projects/{project}/locations/{location}/endpoints/{endpoint}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {EndpointServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new EndpointServiceClient(); - - async function callGetEndpoint() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getEndpoint(request); - console.log(response); - } - - callGetEndpoint(); - // [END aiplatform_v1beta1_generated_EndpointService_GetEndpoint_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/endpoint_service.list_endpoints.js b/samples/generated/v1beta1/endpoint_service.list_endpoints.js deleted file mode 100644 index ed766d27..00000000 --- a/samples/generated/v1beta1/endpoint_service.list_endpoints.js +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_EndpointService_ListEndpoints_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location from which to list the Endpoints. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Optional. An expression for filtering the results of the request. For field names - * both snake_case and camelCase are supported. - * * `endpoint` supports = and !=. `endpoint` represents the Endpoint ID, - * i.e. the last segment of the Endpoint's resource name google.cloud.aiplatform.v1beta1.Endpoint.name. - * * `display_name` supports = and, != - * * `labels` supports general map functions that is: - * * `labels.key=value` - key:value equality - * * `labels.key:* or labels:key - key existence - * * A key including a space must be quoted. `labels."a key"`. - * Some examples: - * * `endpoint=1` - * * `displayName="myDisplayName"` - * * `labels.myKey="myValue"` - */ - // const filter = 'abc123' - /** - * Optional. The standard list page size. - */ - // const pageSize = 1234 - /** - * Optional. The standard list page token. - * Typically obtained via - * ListEndpointsResponse.next_page_token google.cloud.aiplatform.v1beta1.ListEndpointsResponse.next_page_token of the previous - * EndpointService.ListEndpoints google.cloud.aiplatform.v1beta1.EndpointService.ListEndpoints call. - */ - // const pageToken = 'abc123' - /** - * Optional. Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {EndpointServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new EndpointServiceClient(); - - async function callListEndpoints() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listEndpointsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListEndpoints(); - // [END aiplatform_v1beta1_generated_EndpointService_ListEndpoints_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/endpoint_service.undeploy_model.js b/samples/generated/v1beta1/endpoint_service.undeploy_model.js deleted file mode 100644 index 75c7ffa0..00000000 --- a/samples/generated/v1beta1/endpoint_service.undeploy_model.js +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(endpoint, deployedModelId) { - // [START aiplatform_v1beta1_generated_EndpointService_UndeployModel_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Endpoint resource from which to undeploy a Model. - * Format: - * `projects/{project}/locations/{location}/endpoints/{endpoint}` - */ - // const endpoint = 'abc123' - /** - * Required. The ID of the DeployedModel to be undeployed from the Endpoint. - */ - // const deployedModelId = 'abc123' - /** - * If this field is provided, then the Endpoint's - * traffic_split google.cloud.aiplatform.v1beta1.Endpoint.traffic_split will be overwritten with it. If - * last DeployedModel is being undeployed from the Endpoint, the - * Endpoint.traffic_split will always end up empty when this call returns. - * A DeployedModel will be successfully undeployed only if it doesn't have - * any traffic assigned to it when this method executes, or if this field - * unassigns any traffic to it. - */ - // const trafficSplit = 1234 - - // Imports the Aiplatform library - const {EndpointServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new EndpointServiceClient(); - - async function callUndeployModel() { - // Construct request - const request = { - endpoint, - deployedModelId, - }; - - // Run request - const [operation] = await aiplatformClient.undeployModel(request); - const [response] = await operation.promise(); - console.log(response); - } - - callUndeployModel(); - // [END aiplatform_v1beta1_generated_EndpointService_UndeployModel_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/endpoint_service.update_endpoint.js b/samples/generated/v1beta1/endpoint_service.update_endpoint.js deleted file mode 100644 index b8aa6e28..00000000 --- a/samples/generated/v1beta1/endpoint_service.update_endpoint.js +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(endpoint, updateMask) { - // [START aiplatform_v1beta1_generated_EndpointService_UpdateEndpoint_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Endpoint which replaces the resource on the server. - */ - // const endpoint = {} - /** - * Required. The update mask applies to the resource. See google.protobuf.FieldMask google.protobuf.FieldMask. - */ - // const updateMask = {} - - // Imports the Aiplatform library - const {EndpointServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new EndpointServiceClient(); - - async function callUpdateEndpoint() { - // Construct request - const request = { - endpoint, - updateMask, - }; - - // Run request - const response = await aiplatformClient.updateEndpoint(request); - console.log(response); - } - - callUpdateEndpoint(); - // [END aiplatform_v1beta1_generated_EndpointService_UpdateEndpoint_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_online_serving_service.read_feature_values.js b/samples/generated/v1beta1/featurestore_online_serving_service.read_feature_values.js deleted file mode 100644 index aca11e1a..00000000 --- a/samples/generated/v1beta1/featurestore_online_serving_service.read_feature_values.js +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(entityType, entityId, featureSelector) { - // [START aiplatform_v1beta1_generated_FeaturestoreOnlineServingService_ReadFeatureValues_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the EntityType for the entity being read. - * Value format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entityType}`. - * For example, for a machine learning model predicting user clicks on a - * website, an EntityType ID could be `user`. - */ - // const entityType = 'abc123' - /** - * Required. ID for a specific entity. For example, - * for a machine learning model predicting user clicks on a website, an entity - * ID could be `user_123`. - */ - // const entityId = 'abc123' - /** - * Required. Selector choosing Features of the target EntityType. - */ - // const featureSelector = {} - - // Imports the Aiplatform library - const {FeaturestoreOnlineServingServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreOnlineServingServiceClient(); - - async function callReadFeatureValues() { - // Construct request - const request = { - entityType, - entityId, - featureSelector, - }; - - // Run request - const response = await aiplatformClient.readFeatureValues(request); - console.log(response); - } - - callReadFeatureValues(); - // [END aiplatform_v1beta1_generated_FeaturestoreOnlineServingService_ReadFeatureValues_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_online_serving_service.streaming_read_feature_values.js b/samples/generated/v1beta1/featurestore_online_serving_service.streaming_read_feature_values.js deleted file mode 100644 index 65a09e96..00000000 --- a/samples/generated/v1beta1/featurestore_online_serving_service.streaming_read_feature_values.js +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(entityType, entityIds, featureSelector) { - // [START aiplatform_v1beta1_generated_FeaturestoreOnlineServingService_StreamingReadFeatureValues_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the entities' type. - * Value format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entityType}`. - * For example, - * for a machine learning model predicting user clicks on a website, an - * EntityType ID could be `user`. - */ - // const entityType = 'abc123' - /** - * Required. IDs of entities to read Feature values of. The maximum number of IDs is - * 100. For example, for a machine learning model predicting user clicks on a - * website, an entity ID could be `user_123`. - */ - // const entityIds = 'abc123' - /** - * Required. Selector choosing Features of the target EntityType. Feature IDs will be - * deduplicated. - */ - // const featureSelector = {} - - // Imports the Aiplatform library - const {FeaturestoreOnlineServingServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreOnlineServingServiceClient(); - - async function callStreamingReadFeatureValues() { - // Construct request - const request = { - entityType, - entityIds, - featureSelector, - }; - - // Run request - const stream = await aiplatformClient.streamingReadFeatureValues(request); - stream.on('data', (response) => { console.log(response) }); - stream.on('error', (err) => { throw(err) }); - stream.on('end', () => { /* API call completed */ }); - } - - callStreamingReadFeatureValues(); - // [END aiplatform_v1beta1_generated_FeaturestoreOnlineServingService_StreamingReadFeatureValues_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_online_serving_service.write_feature_values.js b/samples/generated/v1beta1/featurestore_online_serving_service.write_feature_values.js deleted file mode 100644 index 98b7838f..00000000 --- a/samples/generated/v1beta1/featurestore_online_serving_service.write_feature_values.js +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(entityType, payloads) { - // [START aiplatform_v1beta1_generated_FeaturestoreOnlineServingService_WriteFeatureValues_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the EntityType for the entities being written. - * Value format: `projects/{project}/locations/{location}/featurestores/ - * {featurestore}/entityTypes/{entityType}`. For example, - * for a machine learning model predicting user clicks on a website, an - * EntityType ID could be `user`. - */ - // const entityType = 'abc123' - /** - * Required. The entities to be written. Up to 100,000 feature values can be written - * across all `payloads`. - */ - // const payloads = 1234 - - // Imports the Aiplatform library - const {FeaturestoreOnlineServingServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreOnlineServingServiceClient(); - - async function callWriteFeatureValues() { - // Construct request - const request = { - entityType, - payloads, - }; - - // Run request - const response = await aiplatformClient.writeFeatureValues(request); - console.log(response); - } - - callWriteFeatureValues(); - // [END aiplatform_v1beta1_generated_FeaturestoreOnlineServingService_WriteFeatureValues_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.batch_create_features.js b/samples/generated/v1beta1/featurestore_service.batch_create_features.js deleted file mode 100644 index 644be813..00000000 --- a/samples/generated/v1beta1/featurestore_service.batch_create_features.js +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, requests) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_BatchCreateFeatures_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the EntityType to create the batch of Features under. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` - */ - // const parent = 'abc123' - /** - * Required. The request message specifying the Features to create. All Features must be - * created under the same parent EntityType. The `parent` field in each child - * request message can be omitted. If `parent` is set in a child request, then - * the value must match the `parent` value in this request message. - */ - // const requests = 1234 - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callBatchCreateFeatures() { - // Construct request - const request = { - parent, - requests, - }; - - // Run request - const [operation] = await aiplatformClient.batchCreateFeatures(request); - const [response] = await operation.promise(); - console.log(response); - } - - callBatchCreateFeatures(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_BatchCreateFeatures_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.batch_read_feature_values.js b/samples/generated/v1beta1/featurestore_service.batch_read_feature_values.js deleted file mode 100644 index 67b7c629..00000000 --- a/samples/generated/v1beta1/featurestore_service.batch_read_feature_values.js +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(featurestore, destination, entityTypeSpecs) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_BatchReadFeatureValues_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Each read instance consists of exactly one read timestamp and one or more - * entity IDs identifying entities of the corresponding EntityTypes whose - * Features are requested. - * Each output instance contains Feature values of requested entities - * concatenated together as of the read time. - * An example read instance may be `foo_entity_id, bar_entity_id, - * 2020-01-01T10:00:00.123Z`. - * An example output instance may be `foo_entity_id, bar_entity_id, - * 2020-01-01T10:00:00.123Z, foo_entity_feature1_value, - * bar_entity_feature2_value`. - * Timestamp in each read instance must be millisecond-aligned. - * `csv_read_instances` are read instances stored in a plain-text CSV file. - * The header should be: - * ENTITY_TYPE_ID1, ENTITY_TYPE_ID2, ..., timestamp - * The columns can be in any order. - * Values in the timestamp column must use the RFC 3339 format, e.g. - * `2012-07-30T10:43:17.123Z`. - */ - // const csvReadInstances = {} - /** - * Similar to csv_read_instances, but from BigQuery source. - */ - // const bigqueryReadInstances = {} - /** - * Required. The resource name of the Featurestore from which to query Feature values. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}` - */ - // const featurestore = 'abc123' - /** - * Required. Specifies output location and format. - */ - // const destination = {} - /** - * When not empty, the specified fields in the *_read_instances source will be - * joined as-is in the output, in addition to those fields from the - * Featurestore Entity. - * For BigQuery source, the type of the pass-through values will be - * automatically inferred. For CSV source, the pass-through values will be - * passed as opaque bytes. - */ - // const passThroughFields = 1234 - /** - * Required. Specifies EntityType grouping Features to read values of and settings. - * Each EntityType referenced in - * BatchReadFeatureValuesRequest.entity_type_specs must have a column - * specifying entity IDs in the EntityType in - * BatchReadFeatureValuesRequest.request . - */ - // const entityTypeSpecs = 1234 - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callBatchReadFeatureValues() { - // Construct request - const request = { - featurestore, - destination, - entityTypeSpecs, - }; - - // Run request - const [operation] = await aiplatformClient.batchReadFeatureValues(request); - const [response] = await operation.promise(); - console.log(response); - } - - callBatchReadFeatureValues(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_BatchReadFeatureValues_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.create_entity_type.js b/samples/generated/v1beta1/featurestore_service.create_entity_type.js deleted file mode 100644 index bbc00325..00000000 --- a/samples/generated/v1beta1/featurestore_service.create_entity_type.js +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, entityTypeId) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_CreateEntityType_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Featurestore to create EntityTypes. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}` - */ - // const parent = 'abc123' - /** - * The EntityType to create. - */ - // const entityType = {} - /** - * Required. The ID to use for the EntityType, which will become the final component of - * the EntityType's resource name. - * This value may be up to 60 characters, and valid characters are - * `[a-z0-9_]`. The first character cannot be a number. - * The value must be unique within a featurestore. - */ - // const entityTypeId = 'abc123' - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callCreateEntityType() { - // Construct request - const request = { - parent, - entityTypeId, - }; - - // Run request - const [operation] = await aiplatformClient.createEntityType(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateEntityType(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_CreateEntityType_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.create_feature.js b/samples/generated/v1beta1/featurestore_service.create_feature.js deleted file mode 100644 index 8d3bfe1d..00000000 --- a/samples/generated/v1beta1/featurestore_service.create_feature.js +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, feature, featureId) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_CreateFeature_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the EntityType to create a Feature. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` - */ - // const parent = 'abc123' - /** - * Required. The Feature to create. - */ - // const feature = {} - /** - * Required. The ID to use for the Feature, which will become the final component of - * the Feature's resource name. - * This value may be up to 60 characters, and valid characters are - * `[a-z0-9_]`. The first character cannot be a number. - * The value must be unique within an EntityType. - */ - // const featureId = 'abc123' - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callCreateFeature() { - // Construct request - const request = { - parent, - feature, - featureId, - }; - - // Run request - const [operation] = await aiplatformClient.createFeature(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateFeature(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_CreateFeature_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.create_featurestore.js b/samples/generated/v1beta1/featurestore_service.create_featurestore.js deleted file mode 100644 index c86b5c07..00000000 --- a/samples/generated/v1beta1/featurestore_service.create_featurestore.js +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, featurestore, featurestoreId) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_CreateFeaturestore_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create Featurestores. - * Format: - * `projects/{project}/locations/{location}'` - */ - // const parent = 'abc123' - /** - * Required. The Featurestore to create. - */ - // const featurestore = {} - /** - * Required. The ID to use for this Featurestore, which will become the final component - * of the Featurestore's resource name. - * This value may be up to 60 characters, and valid characters are - * `[a-z0-9_]`. The first character cannot be a number. - * The value must be unique within the project and location. - */ - // const featurestoreId = 'abc123' - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callCreateFeaturestore() { - // Construct request - const request = { - parent, - featurestore, - featurestoreId, - }; - - // Run request - const [operation] = await aiplatformClient.createFeaturestore(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateFeaturestore(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_CreateFeaturestore_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.delete_entity_type.js b/samples/generated/v1beta1/featurestore_service.delete_entity_type.js deleted file mode 100644 index 1caf807a..00000000 --- a/samples/generated/v1beta1/featurestore_service.delete_entity_type.js +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_DeleteEntityType_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the EntityType to be deleted. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` - */ - // const name = 'abc123' - /** - * If set to true, any Features for this EntityType will also be deleted. - * (Otherwise, the request will only work if the EntityType has no Features.) - */ - // const force = true - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callDeleteEntityType() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteEntityType(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteEntityType(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_DeleteEntityType_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.delete_feature.js b/samples/generated/v1beta1/featurestore_service.delete_feature.js deleted file mode 100644 index 264496df..00000000 --- a/samples/generated/v1beta1/featurestore_service.delete_feature.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_DeleteFeature_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Features to be deleted. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callDeleteFeature() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteFeature(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteFeature(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_DeleteFeature_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.delete_feature_values.js b/samples/generated/v1beta1/featurestore_service.delete_feature_values.js deleted file mode 100644 index 2b96d712..00000000 --- a/samples/generated/v1beta1/featurestore_service.delete_feature_values.js +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(entityType) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_DeleteFeatureValues_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Select feature values to be deleted by specifying entities. - */ - // const selectEntity = {} - /** - * Select feature values to be deleted by specifying time range and - * features. - */ - // const selectTimeRangeAndFeature = {} - /** - * Required. The resource name of the EntityType grouping the Features for which values - * are being deleted from. Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entityType}` - */ - // const entityType = 'abc123' - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callDeleteFeatureValues() { - // Construct request - const request = { - entityType, - }; - - // Run request - const [operation] = await aiplatformClient.deleteFeatureValues(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteFeatureValues(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_DeleteFeatureValues_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.delete_featurestore.js b/samples/generated/v1beta1/featurestore_service.delete_featurestore.js deleted file mode 100644 index 7b6989e4..00000000 --- a/samples/generated/v1beta1/featurestore_service.delete_featurestore.js +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_DeleteFeaturestore_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Featurestore to be deleted. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}` - */ - // const name = 'abc123' - /** - * If set to true, any EntityTypes and Features for this Featurestore will - * also be deleted. (Otherwise, the request will only work if the Featurestore - * has no EntityTypes.) - */ - // const force = true - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callDeleteFeaturestore() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteFeaturestore(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteFeaturestore(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_DeleteFeaturestore_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.export_feature_values.js b/samples/generated/v1beta1/featurestore_service.export_feature_values.js deleted file mode 100644 index e53cedf2..00000000 --- a/samples/generated/v1beta1/featurestore_service.export_feature_values.js +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(entityType, destination, featureSelector) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_ExportFeatureValues_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Exports the latest Feature values of all entities of the EntityType - * within a time range. - */ - // const snapshotExport = {} - /** - * Exports all historical values of all entities of the EntityType within a - * time range - */ - // const fullExport = {} - /** - * Required. The resource name of the EntityType from which to export Feature values. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` - */ - // const entityType = 'abc123' - /** - * Required. Specifies destination location and format. - */ - // const destination = {} - /** - * Required. Selects Features to export values of. - */ - // const featureSelector = {} - /** - * Per-Feature export settings. - */ - // const settings = 1234 - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callExportFeatureValues() { - // Construct request - const request = { - entityType, - destination, - featureSelector, - }; - - // Run request - const [operation] = await aiplatformClient.exportFeatureValues(request); - const [response] = await operation.promise(); - console.log(response); - } - - callExportFeatureValues(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_ExportFeatureValues_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.get_entity_type.js b/samples/generated/v1beta1/featurestore_service.get_entity_type.js deleted file mode 100644 index c8a7ad53..00000000 --- a/samples/generated/v1beta1/featurestore_service.get_entity_type.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_GetEntityType_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the EntityType resource. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callGetEntityType() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getEntityType(request); - console.log(response); - } - - callGetEntityType(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_GetEntityType_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.get_feature.js b/samples/generated/v1beta1/featurestore_service.get_feature.js deleted file mode 100644 index 97bfbd58..00000000 --- a/samples/generated/v1beta1/featurestore_service.get_feature.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_GetFeature_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Feature resource. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callGetFeature() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getFeature(request); - console.log(response); - } - - callGetFeature(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_GetFeature_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.get_featurestore.js b/samples/generated/v1beta1/featurestore_service.get_featurestore.js deleted file mode 100644 index 641a7f29..00000000 --- a/samples/generated/v1beta1/featurestore_service.get_featurestore.js +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_GetFeaturestore_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Featurestore resource. - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callGetFeaturestore() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getFeaturestore(request); - console.log(response); - } - - callGetFeaturestore(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_GetFeaturestore_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.import_feature_values.js b/samples/generated/v1beta1/featurestore_service.import_feature_values.js deleted file mode 100644 index ddddbc1f..00000000 --- a/samples/generated/v1beta1/featurestore_service.import_feature_values.js +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(entityType, featureSpecs) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_ImportFeatureValues_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - */ - // const avroSource = {} - /** - */ - // const bigquerySource = {} - /** - */ - // const csvSource = {} - /** - * Source column that holds the Feature timestamp for all Feature - * values in each entity. - */ - // const featureTimeField = 'abc123' - /** - * Single Feature timestamp for all entities being imported. The - * timestamp must not have higher than millisecond precision. - */ - // const featureTime = {} - /** - * Required. The resource name of the EntityType grouping the Features for which values - * are being imported. Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entityType}` - */ - // const entityType = 'abc123' - /** - * Source column that holds entity IDs. If not provided, entity IDs are - * extracted from the column named `entity_id`. - */ - // const entityIdField = 'abc123' - /** - * Required. Specifications defining which Feature values to import from the entity. The - * request fails if no feature_specs are provided, and having multiple - * feature_specs for one Feature is not allowed. - */ - // const featureSpecs = 1234 - /** - * If set, data will not be imported for online serving. This - * is typically used for backfilling, where Feature generation timestamps are - * not in the timestamp range needed for online serving. - */ - // const disableOnlineServing = true - /** - * Specifies the number of workers that are used to write data to the - * Featurestore. Consider the online serving capacity that you require to - * achieve the desired import throughput without interfering with online - * serving. The value must be positive, and less than or equal to 100. - * If not set, defaults to using 1 worker. The low count ensures minimal - * impact on online serving performance. - */ - // const workerCount = 1234 - /** - * If true, API doesn't start ingestion analysis pipeline. - */ - // const disableIngestionAnalysis = true - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callImportFeatureValues() { - // Construct request - const request = { - entityType, - featureSpecs, - }; - - // Run request - const [operation] = await aiplatformClient.importFeatureValues(request); - const [response] = await operation.promise(); - console.log(response); - } - - callImportFeatureValues(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_ImportFeatureValues_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.list_entity_types.js b/samples/generated/v1beta1/featurestore_service.list_entity_types.js deleted file mode 100644 index c0508c7a..00000000 --- a/samples/generated/v1beta1/featurestore_service.list_entity_types.js +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_ListEntityTypes_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Featurestore to list EntityTypes. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}` - */ - // const parent = 'abc123' - /** - * Lists the EntityTypes that match the filter expression. The following - * filters are supported: - * * `create_time`: Supports `=`, `!=`, `<`, `>`, `>=`, and `<=` comparisons. - * Values must be in RFC 3339 format. - * * `update_time`: Supports `=`, `!=`, `<`, `>`, `>=`, and `<=` comparisons. - * Values must be in RFC 3339 format. - * * `labels`: Supports key-value equality as well as key presence. - * Examples: - * * `create_time > \"2020-01-31T15:30:00.000000Z\" OR - * update_time > \"2020-01-31T15:30:00.000000Z\"` --> EntityTypes created - * or updated after 2020-01-31T15:30:00.000000Z. - * * `labels.active = yes AND labels.env = prod` --> EntityTypes having both - * (active: yes) and (env: prod) labels. - * * `labels.env: *` --> Any EntityType which has a label with 'env' as the - * key. - */ - // const filter = 'abc123' - /** - * The maximum number of EntityTypes to return. The service may return fewer - * than this value. If unspecified, at most 1000 EntityTypes will be returned. - * The maximum value is 1000; any value greater than 1000 will be coerced to - * 1000. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * FeaturestoreService.ListEntityTypes google.cloud.aiplatform.v1beta1.FeaturestoreService.ListEntityTypes call. - * Provide this to retrieve the subsequent page. - * When paginating, all other parameters provided to - * FeaturestoreService.ListEntityTypes google.cloud.aiplatform.v1beta1.FeaturestoreService.ListEntityTypes must - * match the call that provided the page token. - */ - // const pageToken = 'abc123' - /** - * A comma-separated list of fields to order by, sorted in ascending order. - * Use "desc" after a field name for descending. - * Supported fields: - * * `entity_type_id` - * * `create_time` - * * `update_time` - */ - // const orderBy = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callListEntityTypes() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listEntityTypesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListEntityTypes(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_ListEntityTypes_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.list_features.js b/samples/generated/v1beta1/featurestore_service.list_features.js deleted file mode 100644 index 9027ed85..00000000 --- a/samples/generated/v1beta1/featurestore_service.list_features.js +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_ListFeatures_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to list Features. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` - */ - // const parent = 'abc123' - /** - * Lists the Features that match the filter expression. The following - * filters are supported: - * * `value_type`: Supports = and != comparisons. - * * `create_time`: Supports =, !=, <, >, >=, and <= comparisons. Values must - * be in RFC 3339 format. - * * `update_time`: Supports =, !=, <, >, >=, and <= comparisons. Values must - * be in RFC 3339 format. - * * `labels`: Supports key-value equality as well as key presence. - * Examples: - * * `value_type = DOUBLE` --> Features whose type is DOUBLE. - * * `create_time > \"2020-01-31T15:30:00.000000Z\" OR - * update_time > \"2020-01-31T15:30:00.000000Z\"` --> EntityTypes created - * or updated after 2020-01-31T15:30:00.000000Z. - * * `labels.active = yes AND labels.env = prod` --> Features having both - * (active: yes) and (env: prod) labels. - * * `labels.env: *` --> Any Feature which has a label with 'env' as the - * key. - */ - // const filter = 'abc123' - /** - * The maximum number of Features to return. The service may return fewer - * than this value. If unspecified, at most 1000 Features will be returned. - * The maximum value is 1000; any value greater than 1000 will be coerced to - * 1000. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * FeaturestoreService.ListFeatures google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures call. - * Provide this to retrieve the subsequent page. - * When paginating, all other parameters provided to - * FeaturestoreService.ListFeatures google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures must - * match the call that provided the page token. - */ - // const pageToken = 'abc123' - /** - * A comma-separated list of fields to order by, sorted in ascending order. - * Use "desc" after a field name for descending. - * Supported fields: - * * `feature_id` - * * `value_type` - * * `create_time` - * * `update_time` - */ - // const orderBy = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - /** - * If set, return the most recent ListFeaturesRequest.latest_stats_count google.cloud.aiplatform.v1beta1.ListFeaturesRequest.latest_stats_count - * of stats for each Feature in response. Valid value is 0, 10. If number of - * stats exists < ListFeaturesRequest.latest_stats_count google.cloud.aiplatform.v1beta1.ListFeaturesRequest.latest_stats_count, return all - * existing stats. - */ - // const latestStatsCount = 1234 - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callListFeatures() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listFeaturesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListFeatures(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_ListFeatures_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.list_featurestores.js b/samples/generated/v1beta1/featurestore_service.list_featurestores.js deleted file mode 100644 index 7c10d168..00000000 --- a/samples/generated/v1beta1/featurestore_service.list_featurestores.js +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_ListFeaturestores_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to list Featurestores. - * Format: - * `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Lists the featurestores that match the filter expression. The following - * fields are supported: - * * `create_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. - * Values must be - * in RFC 3339 format. - * * `update_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. - * Values must be - * in RFC 3339 format. - * * `online_serving_config.fixed_node_count`: Supports `=`, `!=`, `<`, `>`, - * `<=`, and `>=` comparisons. - * * `labels`: Supports key-value equality and key presence. - * Examples: - * * `create_time > "2020-01-01" OR update_time > "2020-01-01"` - * Featurestores created or updated after 2020-01-01. - * * `labels.env = "prod"` - * Featurestores with label "env" set to "prod". - */ - // const filter = 'abc123' - /** - * The maximum number of Featurestores to return. The service may return fewer - * than this value. If unspecified, at most 100 Featurestores will be - * returned. The maximum value is 100; any value greater than 100 will be - * coerced to 100. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * FeaturestoreService.ListFeaturestores google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeaturestores call. - * Provide this to retrieve the subsequent page. - * When paginating, all other parameters provided to - * FeaturestoreService.ListFeaturestores google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeaturestores must - * match the call that provided the page token. - */ - // const pageToken = 'abc123' - /** - * A comma-separated list of fields to order by, sorted in ascending order. - * Use "desc" after a field name for descending. - * Supported Fields: - * * `create_time` - * * `update_time` - * * `online_serving_config.fixed_node_count` - */ - // const orderBy = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callListFeaturestores() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listFeaturestoresAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListFeaturestores(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_ListFeaturestores_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.search_features.js b/samples/generated/v1beta1/featurestore_service.search_features.js deleted file mode 100644 index 6c4e645c..00000000 --- a/samples/generated/v1beta1/featurestore_service.search_features.js +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(location) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_SearchFeatures_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to search Features. - * Format: - * `projects/{project}/locations/{location}` - */ - // const location = 'abc123' - /** - * Query string that is a conjunction of field-restricted queries and/or - * field-restricted filters. Field-restricted queries and filters can be - * combined using `AND` to form a conjunction. - * A field query is in the form FIELD:QUERY. This implicitly checks if QUERY - * exists as a substring within Feature's FIELD. The QUERY - * and the FIELD are converted to a sequence of words (i.e. tokens) for - * comparison. This is done by: - * * Removing leading/trailing whitespace and tokenizing the search value. - * Characters that are not one of alphanumeric `[a-zA-Z0-9]`, underscore - * `_`, or asterisk `*` are treated as delimiters for tokens. `*` is treated - * as a wildcard that matches characters within a token. - * * Ignoring case. - * * Prepending an asterisk to the first and appending an asterisk to the - * last token in QUERY. - * A QUERY must be either a singular token or a phrase. A phrase is one or - * multiple words enclosed in double quotation marks ("). With phrases, the - * order of the words is important. Words in the phrase must be matching in - * order and consecutively. - * Supported FIELDs for field-restricted queries: - * * `feature_id` - * * `description` - * * `entity_type_id` - * Examples: - * * `feature_id: foo` --> Matches a Feature with ID containing the substring - * `foo` (eg. `foo`, `foofeature`, `barfoo`). - * * `feature_id: foo*feature` --> Matches a Feature with ID containing the - * substring `foo*feature` (eg. `foobarfeature`). - * * `feature_id: foo AND description: bar` --> Matches a Feature with ID - * containing the substring `foo` and description containing the substring - * `bar`. - * Besides field queries, the following exact-match filters are - * supported. The exact-match filters do not support wildcards. Unlike - * field-restricted queries, exact-match filters are case-sensitive. - * * `feature_id`: Supports = comparisons. - * * `description`: Supports = comparisons. Multi-token filters should be - * enclosed in quotes. - * * `entity_type_id`: Supports = comparisons. - * * `value_type`: Supports = and != comparisons. - * * `labels`: Supports key-value equality as well as key presence. - * * `featurestore_id`: Supports = comparisons. - * Examples: - * * `description = "foo bar"` --> Any Feature with description exactly equal - * to `foo bar` - * * `value_type = DOUBLE` --> Features whose type is DOUBLE. - * * `labels.active = yes AND labels.env = prod` --> Features having both - * (active: yes) and (env: prod) labels. - * * `labels.env: *` --> Any Feature which has a label with `env` as the - * key. - */ - // const query = 'abc123' - /** - * The maximum number of Features to return. The service may return fewer - * than this value. If unspecified, at most 100 Features will be returned. - * The maximum value is 100; any value greater than 100 will be coerced to - * 100. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * FeaturestoreService.SearchFeatures google.cloud.aiplatform.v1beta1.FeaturestoreService.SearchFeatures call. - * Provide this to retrieve the subsequent page. - * When paginating, all other parameters provided to - * FeaturestoreService.SearchFeatures google.cloud.aiplatform.v1beta1.FeaturestoreService.SearchFeatures, except `page_size`, must - * match the call that provided the page token. - */ - // const pageToken = 'abc123' - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callSearchFeatures() { - // Construct request - const request = { - location, - }; - - // Run request - const iterable = await aiplatformClient.searchFeaturesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callSearchFeatures(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_SearchFeatures_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.update_entity_type.js b/samples/generated/v1beta1/featurestore_service.update_entity_type.js deleted file mode 100644 index c42f32b2..00000000 --- a/samples/generated/v1beta1/featurestore_service.update_entity_type.js +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(entityType) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_UpdateEntityType_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The EntityType's `name` field is used to identify the EntityType to be - * updated. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` - */ - // const entityType = {} - /** - * Field mask is used to specify the fields to be overwritten in the - * EntityType resource by the update. - * The fields specified in the update_mask are relative to the resource, not - * the full request. A field will be overwritten if it is in the mask. If the - * user does not provide a mask then only the non-empty fields present in the - * request will be overwritten. Set the update_mask to `*` to override all - * fields. - * Updatable fields: - * * `description` - * * `labels` - * * `monitoring_config.snapshot_analysis.disabled` - * * `monitoring_config.snapshot_analysis.monitoring_interval_days` - * * `monitoring_config.snapshot_analysis.staleness_days` - * * `monitoring_config.import_features_analysis.state` - * * `monitoring_config.import_features_analysis.anomaly_detection_baseline` - * * `monitoring_config.numerical_threshold_config.value` - * * `monitoring_config.categorical_threshold_config.value` - */ - // const updateMask = {} - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callUpdateEntityType() { - // Construct request - const request = { - entityType, - }; - - // Run request - const response = await aiplatformClient.updateEntityType(request); - console.log(response); - } - - callUpdateEntityType(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_UpdateEntityType_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.update_feature.js b/samples/generated/v1beta1/featurestore_service.update_feature.js deleted file mode 100644 index f9edba30..00000000 --- a/samples/generated/v1beta1/featurestore_service.update_feature.js +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(feature) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_UpdateFeature_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Feature's `name` field is used to identify the Feature to be - * updated. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}` - */ - // const feature = {} - /** - * Field mask is used to specify the fields to be overwritten in the - * Features resource by the update. - * The fields specified in the update_mask are relative to the resource, not - * the full request. A field will be overwritten if it is in the mask. If the - * user does not provide a mask then only the non-empty fields present in the - * request will be overwritten. Set the update_mask to `*` to override all - * fields. - * Updatable fields: - * * `description` - * * `labels` - * * `disable_monitoring` - */ - // const updateMask = {} - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callUpdateFeature() { - // Construct request - const request = { - feature, - }; - - // Run request - const response = await aiplatformClient.updateFeature(request); - console.log(response); - } - - callUpdateFeature(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_UpdateFeature_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/featurestore_service.update_featurestore.js b/samples/generated/v1beta1/featurestore_service.update_featurestore.js deleted file mode 100644 index 8b8c2b64..00000000 --- a/samples/generated/v1beta1/featurestore_service.update_featurestore.js +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(featurestore) { - // [START aiplatform_v1beta1_generated_FeaturestoreService_UpdateFeaturestore_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Featurestore's `name` field is used to identify the Featurestore to be - * updated. - * Format: - * `projects/{project}/locations/{location}/featurestores/{featurestore}` - */ - // const featurestore = {} - /** - * Field mask is used to specify the fields to be overwritten in the - * Featurestore resource by the update. - * The fields specified in the update_mask are relative to the resource, not - * the full request. A field will be overwritten if it is in the mask. If the - * user does not provide a mask then only the non-empty fields present in the - * request will be overwritten. Set the update_mask to `*` to override all - * fields. - * Updatable fields: - * * `labels` - * * `online_serving_config.fixed_node_count` - * * `online_serving_config.scaling` - */ - // const updateMask = {} - - // Imports the Aiplatform library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new FeaturestoreServiceClient(); - - async function callUpdateFeaturestore() { - // Construct request - const request = { - featurestore, - }; - - // Run request - const [operation] = await aiplatformClient.updateFeaturestore(request); - const [response] = await operation.promise(); - console.log(response); - } - - callUpdateFeaturestore(); - // [END aiplatform_v1beta1_generated_FeaturestoreService_UpdateFeaturestore_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/index_endpoint_service.create_index_endpoint.js b/samples/generated/v1beta1/index_endpoint_service.create_index_endpoint.js deleted file mode 100644 index e18e8635..00000000 --- a/samples/generated/v1beta1/index_endpoint_service.create_index_endpoint.js +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, indexEndpoint) { - // [START aiplatform_v1beta1_generated_IndexEndpointService_CreateIndexEndpoint_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the IndexEndpoint in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The IndexEndpoint to create. - */ - // const indexEndpoint = {} - - // Imports the Aiplatform library - const {IndexEndpointServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new IndexEndpointServiceClient(); - - async function callCreateIndexEndpoint() { - // Construct request - const request = { - parent, - indexEndpoint, - }; - - // Run request - const [operation] = await aiplatformClient.createIndexEndpoint(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateIndexEndpoint(); - // [END aiplatform_v1beta1_generated_IndexEndpointService_CreateIndexEndpoint_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/index_endpoint_service.delete_index_endpoint.js b/samples/generated/v1beta1/index_endpoint_service.delete_index_endpoint.js deleted file mode 100644 index dadab827..00000000 --- a/samples/generated/v1beta1/index_endpoint_service.delete_index_endpoint.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_IndexEndpointService_DeleteIndexEndpoint_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the IndexEndpoint resource to be deleted. - * Format: - * `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {IndexEndpointServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new IndexEndpointServiceClient(); - - async function callDeleteIndexEndpoint() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteIndexEndpoint(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteIndexEndpoint(); - // [END aiplatform_v1beta1_generated_IndexEndpointService_DeleteIndexEndpoint_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/index_endpoint_service.deploy_index.js b/samples/generated/v1beta1/index_endpoint_service.deploy_index.js deleted file mode 100644 index 6f26f684..00000000 --- a/samples/generated/v1beta1/index_endpoint_service.deploy_index.js +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(indexEndpoint, deployedIndex) { - // [START aiplatform_v1beta1_generated_IndexEndpointService_DeployIndex_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the IndexEndpoint resource into which to deploy an Index. - * Format: - * `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}` - */ - // const indexEndpoint = 'abc123' - /** - * Required. The DeployedIndex to be created within the IndexEndpoint. - */ - // const deployedIndex = {} - - // Imports the Aiplatform library - const {IndexEndpointServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new IndexEndpointServiceClient(); - - async function callDeployIndex() { - // Construct request - const request = { - indexEndpoint, - deployedIndex, - }; - - // Run request - const [operation] = await aiplatformClient.deployIndex(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeployIndex(); - // [END aiplatform_v1beta1_generated_IndexEndpointService_DeployIndex_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/index_endpoint_service.get_index_endpoint.js b/samples/generated/v1beta1/index_endpoint_service.get_index_endpoint.js deleted file mode 100644 index 4019571e..00000000 --- a/samples/generated/v1beta1/index_endpoint_service.get_index_endpoint.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_IndexEndpointService_GetIndexEndpoint_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the IndexEndpoint resource. - * Format: - * `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {IndexEndpointServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new IndexEndpointServiceClient(); - - async function callGetIndexEndpoint() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getIndexEndpoint(request); - console.log(response); - } - - callGetIndexEndpoint(); - // [END aiplatform_v1beta1_generated_IndexEndpointService_GetIndexEndpoint_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/index_endpoint_service.list_index_endpoints.js b/samples/generated/v1beta1/index_endpoint_service.list_index_endpoints.js deleted file mode 100644 index a128bb83..00000000 --- a/samples/generated/v1beta1/index_endpoint_service.list_index_endpoints.js +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_IndexEndpointService_ListIndexEndpoints_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location from which to list the IndexEndpoints. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Optional. An expression for filtering the results of the request. For field names - * both snake_case and camelCase are supported. - * * `index_endpoint` supports = and !=. `index_endpoint` represents the - * IndexEndpoint ID, ie. the last segment of the IndexEndpoint's - * resourcename google.cloud.aiplatform.v1beta1.IndexEndpoint.name. - * * `display_name` supports =, != and regex() - * (uses re2 (https://github.com/google/re2/wiki/Syntax) syntax) - * * `labels` supports general map functions that is: - * `labels.key=value` - key:value equality - * `labels.key:* or labels:key - key existence - * A key including a space must be quoted. `labels."a key"`. - * Some examples: - * * `index_endpoint="1"` - * * `display_name="myDisplayName"` - * * `regex(display_name, "^A") -> The display name starts with an A. - * * `labels.myKey="myValue"` - */ - // const filter = 'abc123' - /** - * Optional. The standard list page size. - */ - // const pageSize = 1234 - /** - * Optional. The standard list page token. - * Typically obtained via - * ListIndexEndpointsResponse.next_page_token google.cloud.aiplatform.v1beta1.ListIndexEndpointsResponse.next_page_token of the previous - * IndexEndpointService.ListIndexEndpoints google.cloud.aiplatform.v1beta1.IndexEndpointService.ListIndexEndpoints call. - */ - // const pageToken = 'abc123' - /** - * Optional. Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {IndexEndpointServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new IndexEndpointServiceClient(); - - async function callListIndexEndpoints() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listIndexEndpointsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListIndexEndpoints(); - // [END aiplatform_v1beta1_generated_IndexEndpointService_ListIndexEndpoints_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/index_endpoint_service.mutate_deployed_index.js b/samples/generated/v1beta1/index_endpoint_service.mutate_deployed_index.js deleted file mode 100644 index 25a37193..00000000 --- a/samples/generated/v1beta1/index_endpoint_service.mutate_deployed_index.js +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(indexEndpoint, deployedIndex) { - // [START aiplatform_v1beta1_generated_IndexEndpointService_MutateDeployedIndex_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the IndexEndpoint resource into which to deploy an Index. - * Format: - * `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}` - */ - // const indexEndpoint = 'abc123' - /** - * Required. The DeployedIndex to be updated within the IndexEndpoint. - * Currently, the updatable fields are DeployedIndex automatic_resources - * and DeployedIndex dedicated_resources - */ - // const deployedIndex = {} - - // Imports the Aiplatform library - const {IndexEndpointServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new IndexEndpointServiceClient(); - - async function callMutateDeployedIndex() { - // Construct request - const request = { - indexEndpoint, - deployedIndex, - }; - - // Run request - const [operation] = await aiplatformClient.mutateDeployedIndex(request); - const [response] = await operation.promise(); - console.log(response); - } - - callMutateDeployedIndex(); - // [END aiplatform_v1beta1_generated_IndexEndpointService_MutateDeployedIndex_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/index_endpoint_service.undeploy_index.js b/samples/generated/v1beta1/index_endpoint_service.undeploy_index.js deleted file mode 100644 index b0038ccf..00000000 --- a/samples/generated/v1beta1/index_endpoint_service.undeploy_index.js +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(indexEndpoint, deployedIndexId) { - // [START aiplatform_v1beta1_generated_IndexEndpointService_UndeployIndex_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the IndexEndpoint resource from which to undeploy an Index. - * Format: - * `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}` - */ - // const indexEndpoint = 'abc123' - /** - * Required. The ID of the DeployedIndex to be undeployed from the IndexEndpoint. - */ - // const deployedIndexId = 'abc123' - - // Imports the Aiplatform library - const {IndexEndpointServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new IndexEndpointServiceClient(); - - async function callUndeployIndex() { - // Construct request - const request = { - indexEndpoint, - deployedIndexId, - }; - - // Run request - const [operation] = await aiplatformClient.undeployIndex(request); - const [response] = await operation.promise(); - console.log(response); - } - - callUndeployIndex(); - // [END aiplatform_v1beta1_generated_IndexEndpointService_UndeployIndex_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/index_endpoint_service.update_index_endpoint.js b/samples/generated/v1beta1/index_endpoint_service.update_index_endpoint.js deleted file mode 100644 index 8b1dc383..00000000 --- a/samples/generated/v1beta1/index_endpoint_service.update_index_endpoint.js +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(indexEndpoint, updateMask) { - // [START aiplatform_v1beta1_generated_IndexEndpointService_UpdateIndexEndpoint_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The IndexEndpoint which replaces the resource on the server. - */ - // const indexEndpoint = {} - /** - * Required. The update mask applies to the resource. See google.protobuf.FieldMask google.protobuf.FieldMask. - */ - // const updateMask = {} - - // Imports the Aiplatform library - const {IndexEndpointServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new IndexEndpointServiceClient(); - - async function callUpdateIndexEndpoint() { - // Construct request - const request = { - indexEndpoint, - updateMask, - }; - - // Run request - const response = await aiplatformClient.updateIndexEndpoint(request); - console.log(response); - } - - callUpdateIndexEndpoint(); - // [END aiplatform_v1beta1_generated_IndexEndpointService_UpdateIndexEndpoint_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/index_service.create_index.js b/samples/generated/v1beta1/index_service.create_index.js deleted file mode 100644 index 3c7c2e27..00000000 --- a/samples/generated/v1beta1/index_service.create_index.js +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, index) { - // [START aiplatform_v1beta1_generated_IndexService_CreateIndex_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the Index in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The Index to create. - */ - // const index = {} - - // Imports the Aiplatform library - const {IndexServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new IndexServiceClient(); - - async function callCreateIndex() { - // Construct request - const request = { - parent, - index, - }; - - // Run request - const [operation] = await aiplatformClient.createIndex(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateIndex(); - // [END aiplatform_v1beta1_generated_IndexService_CreateIndex_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/index_service.delete_index.js b/samples/generated/v1beta1/index_service.delete_index.js deleted file mode 100644 index 0ca8ce4a..00000000 --- a/samples/generated/v1beta1/index_service.delete_index.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_IndexService_DeleteIndex_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Index resource to be deleted. - * Format: - * `projects/{project}/locations/{location}/indexes/{index}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {IndexServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new IndexServiceClient(); - - async function callDeleteIndex() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteIndex(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteIndex(); - // [END aiplatform_v1beta1_generated_IndexService_DeleteIndex_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/index_service.get_index.js b/samples/generated/v1beta1/index_service.get_index.js deleted file mode 100644 index 89c7a5f1..00000000 --- a/samples/generated/v1beta1/index_service.get_index.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_IndexService_GetIndex_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Index resource. - * Format: - * `projects/{project}/locations/{location}/indexes/{index}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {IndexServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new IndexServiceClient(); - - async function callGetIndex() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getIndex(request); - console.log(response); - } - - callGetIndex(); - // [END aiplatform_v1beta1_generated_IndexService_GetIndex_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/index_service.list_indexes.js b/samples/generated/v1beta1/index_service.list_indexes.js deleted file mode 100644 index 78827f58..00000000 --- a/samples/generated/v1beta1/index_service.list_indexes.js +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_IndexService_ListIndexes_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location from which to list the Indexes. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained via - * ListIndexesResponse.next_page_token google.cloud.aiplatform.v1beta1.ListIndexesResponse.next_page_token of the previous - * IndexService.ListIndexes google.cloud.aiplatform.v1beta1.IndexService.ListIndexes call. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {IndexServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new IndexServiceClient(); - - async function callListIndexes() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listIndexesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListIndexes(); - // [END aiplatform_v1beta1_generated_IndexService_ListIndexes_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/index_service.remove_datapoints.js b/samples/generated/v1beta1/index_service.remove_datapoints.js deleted file mode 100644 index 8b717d58..00000000 --- a/samples/generated/v1beta1/index_service.remove_datapoints.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(index) { - // [START aiplatform_v1beta1_generated_IndexService_RemoveDatapoints_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Index resource to be updated. - * Format: - * `projects/{project}/locations/{location}/indexes/{index}` - */ - // const index = 'abc123' - /** - * A list of datapoint ids to be deleted. - */ - // const datapointIds = 'abc123' - - // Imports the Aiplatform library - const {IndexServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new IndexServiceClient(); - - async function callRemoveDatapoints() { - // Construct request - const request = { - index, - }; - - // Run request - const response = await aiplatformClient.removeDatapoints(request); - console.log(response); - } - - callRemoveDatapoints(); - // [END aiplatform_v1beta1_generated_IndexService_RemoveDatapoints_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/index_service.update_index.js b/samples/generated/v1beta1/index_service.update_index.js deleted file mode 100644 index 5c353e52..00000000 --- a/samples/generated/v1beta1/index_service.update_index.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(index) { - // [START aiplatform_v1beta1_generated_IndexService_UpdateIndex_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Index which updates the resource on the server. - */ - // const index = {} - /** - * The update mask applies to the resource. - * For the `FieldMask` definition, see google.protobuf.FieldMask google.protobuf.FieldMask. - */ - // const updateMask = {} - - // Imports the Aiplatform library - const {IndexServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new IndexServiceClient(); - - async function callUpdateIndex() { - // Construct request - const request = { - index, - }; - - // Run request - const [operation] = await aiplatformClient.updateIndex(request); - const [response] = await operation.promise(); - console.log(response); - } - - callUpdateIndex(); - // [END aiplatform_v1beta1_generated_IndexService_UpdateIndex_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/index_service.upsert_datapoints.js b/samples/generated/v1beta1/index_service.upsert_datapoints.js deleted file mode 100644 index 062b053c..00000000 --- a/samples/generated/v1beta1/index_service.upsert_datapoints.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(index) { - // [START aiplatform_v1beta1_generated_IndexService_UpsertDatapoints_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Index resource to be updated. - * Format: - * `projects/{project}/locations/{location}/indexes/{index}` - */ - // const index = 'abc123' - /** - * A list of datapoints to be created/updated. - */ - // const datapoints = 1234 - - // Imports the Aiplatform library - const {IndexServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new IndexServiceClient(); - - async function callUpsertDatapoints() { - // Construct request - const request = { - index, - }; - - // Run request - const response = await aiplatformClient.upsertDatapoints(request); - console.log(response); - } - - callUpsertDatapoints(); - // [END aiplatform_v1beta1_generated_IndexService_UpsertDatapoints_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.cancel_batch_prediction_job.js b/samples/generated/v1beta1/job_service.cancel_batch_prediction_job.js deleted file mode 100644 index 7a9bfece..00000000 --- a/samples/generated/v1beta1/job_service.cancel_batch_prediction_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_JobService_CancelBatchPredictionJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the BatchPredictionJob to cancel. - * Format: - * `projects/{project}/locations/{location}/batchPredictionJobs/{batch_prediction_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callCancelBatchPredictionJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.cancelBatchPredictionJob(request); - console.log(response); - } - - callCancelBatchPredictionJob(); - // [END aiplatform_v1beta1_generated_JobService_CancelBatchPredictionJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.cancel_custom_job.js b/samples/generated/v1beta1/job_service.cancel_custom_job.js deleted file mode 100644 index d6727e19..00000000 --- a/samples/generated/v1beta1/job_service.cancel_custom_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_JobService_CancelCustomJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the CustomJob to cancel. - * Format: - * `projects/{project}/locations/{location}/customJobs/{custom_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callCancelCustomJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.cancelCustomJob(request); - console.log(response); - } - - callCancelCustomJob(); - // [END aiplatform_v1beta1_generated_JobService_CancelCustomJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.cancel_data_labeling_job.js b/samples/generated/v1beta1/job_service.cancel_data_labeling_job.js deleted file mode 100644 index fb32d8ae..00000000 --- a/samples/generated/v1beta1/job_service.cancel_data_labeling_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_JobService_CancelDataLabelingJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the DataLabelingJob. - * Format: - * `projects/{project}/locations/{location}/dataLabelingJobs/{data_labeling_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callCancelDataLabelingJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.cancelDataLabelingJob(request); - console.log(response); - } - - callCancelDataLabelingJob(); - // [END aiplatform_v1beta1_generated_JobService_CancelDataLabelingJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.cancel_hyperparameter_tuning_job.js b/samples/generated/v1beta1/job_service.cancel_hyperparameter_tuning_job.js deleted file mode 100644 index e18cf5b3..00000000 --- a/samples/generated/v1beta1/job_service.cancel_hyperparameter_tuning_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_JobService_CancelHyperparameterTuningJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the HyperparameterTuningJob to cancel. - * Format: - * `projects/{project}/locations/{location}/hyperparameterTuningJobs/{hyperparameter_tuning_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callCancelHyperparameterTuningJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.cancelHyperparameterTuningJob(request); - console.log(response); - } - - callCancelHyperparameterTuningJob(); - // [END aiplatform_v1beta1_generated_JobService_CancelHyperparameterTuningJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.create_batch_prediction_job.js b/samples/generated/v1beta1/job_service.create_batch_prediction_job.js deleted file mode 100644 index d4c21054..00000000 --- a/samples/generated/v1beta1/job_service.create_batch_prediction_job.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, batchPredictionJob) { - // [START aiplatform_v1beta1_generated_JobService_CreateBatchPredictionJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the BatchPredictionJob in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The BatchPredictionJob to create. - */ - // const batchPredictionJob = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callCreateBatchPredictionJob() { - // Construct request - const request = { - parent, - batchPredictionJob, - }; - - // Run request - const response = await aiplatformClient.createBatchPredictionJob(request); - console.log(response); - } - - callCreateBatchPredictionJob(); - // [END aiplatform_v1beta1_generated_JobService_CreateBatchPredictionJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.create_custom_job.js b/samples/generated/v1beta1/job_service.create_custom_job.js deleted file mode 100644 index 27bcfaf5..00000000 --- a/samples/generated/v1beta1/job_service.create_custom_job.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, customJob) { - // [START aiplatform_v1beta1_generated_JobService_CreateCustomJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the CustomJob in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The CustomJob to create. - */ - // const customJob = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callCreateCustomJob() { - // Construct request - const request = { - parent, - customJob, - }; - - // Run request - const response = await aiplatformClient.createCustomJob(request); - console.log(response); - } - - callCreateCustomJob(); - // [END aiplatform_v1beta1_generated_JobService_CreateCustomJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.create_data_labeling_job.js b/samples/generated/v1beta1/job_service.create_data_labeling_job.js deleted file mode 100644 index 358376e4..00000000 --- a/samples/generated/v1beta1/job_service.create_data_labeling_job.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, dataLabelingJob) { - // [START aiplatform_v1beta1_generated_JobService_CreateDataLabelingJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The parent of the DataLabelingJob. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The DataLabelingJob to create. - */ - // const dataLabelingJob = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callCreateDataLabelingJob() { - // Construct request - const request = { - parent, - dataLabelingJob, - }; - - // Run request - const response = await aiplatformClient.createDataLabelingJob(request); - console.log(response); - } - - callCreateDataLabelingJob(); - // [END aiplatform_v1beta1_generated_JobService_CreateDataLabelingJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.create_hyperparameter_tuning_job.js b/samples/generated/v1beta1/job_service.create_hyperparameter_tuning_job.js deleted file mode 100644 index c5d5a22b..00000000 --- a/samples/generated/v1beta1/job_service.create_hyperparameter_tuning_job.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, hyperparameterTuningJob) { - // [START aiplatform_v1beta1_generated_JobService_CreateHyperparameterTuningJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the HyperparameterTuningJob in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The HyperparameterTuningJob to create. - */ - // const hyperparameterTuningJob = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callCreateHyperparameterTuningJob() { - // Construct request - const request = { - parent, - hyperparameterTuningJob, - }; - - // Run request - const response = await aiplatformClient.createHyperparameterTuningJob(request); - console.log(response); - } - - callCreateHyperparameterTuningJob(); - // [END aiplatform_v1beta1_generated_JobService_CreateHyperparameterTuningJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.create_model_deployment_monitoring_job.js b/samples/generated/v1beta1/job_service.create_model_deployment_monitoring_job.js deleted file mode 100644 index 8486b853..00000000 --- a/samples/generated/v1beta1/job_service.create_model_deployment_monitoring_job.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, modelDeploymentMonitoringJob) { - // [START aiplatform_v1beta1_generated_JobService_CreateModelDeploymentMonitoringJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The parent of the ModelDeploymentMonitoringJob. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The ModelDeploymentMonitoringJob to create - */ - // const modelDeploymentMonitoringJob = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callCreateModelDeploymentMonitoringJob() { - // Construct request - const request = { - parent, - modelDeploymentMonitoringJob, - }; - - // Run request - const response = await aiplatformClient.createModelDeploymentMonitoringJob(request); - console.log(response); - } - - callCreateModelDeploymentMonitoringJob(); - // [END aiplatform_v1beta1_generated_JobService_CreateModelDeploymentMonitoringJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.delete_batch_prediction_job.js b/samples/generated/v1beta1/job_service.delete_batch_prediction_job.js deleted file mode 100644 index e10dc90d..00000000 --- a/samples/generated/v1beta1/job_service.delete_batch_prediction_job.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_JobService_DeleteBatchPredictionJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the BatchPredictionJob resource to be deleted. - * Format: - * `projects/{project}/locations/{location}/batchPredictionJobs/{batch_prediction_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callDeleteBatchPredictionJob() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteBatchPredictionJob(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteBatchPredictionJob(); - // [END aiplatform_v1beta1_generated_JobService_DeleteBatchPredictionJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.delete_custom_job.js b/samples/generated/v1beta1/job_service.delete_custom_job.js deleted file mode 100644 index e3ebba42..00000000 --- a/samples/generated/v1beta1/job_service.delete_custom_job.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_JobService_DeleteCustomJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the CustomJob resource to be deleted. - * Format: - * `projects/{project}/locations/{location}/customJobs/{custom_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callDeleteCustomJob() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteCustomJob(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteCustomJob(); - // [END aiplatform_v1beta1_generated_JobService_DeleteCustomJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.delete_data_labeling_job.js b/samples/generated/v1beta1/job_service.delete_data_labeling_job.js deleted file mode 100644 index 011f2429..00000000 --- a/samples/generated/v1beta1/job_service.delete_data_labeling_job.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_JobService_DeleteDataLabelingJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the DataLabelingJob to be deleted. - * Format: - * `projects/{project}/locations/{location}/dataLabelingJobs/{data_labeling_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callDeleteDataLabelingJob() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteDataLabelingJob(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteDataLabelingJob(); - // [END aiplatform_v1beta1_generated_JobService_DeleteDataLabelingJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.delete_hyperparameter_tuning_job.js b/samples/generated/v1beta1/job_service.delete_hyperparameter_tuning_job.js deleted file mode 100644 index e57075ae..00000000 --- a/samples/generated/v1beta1/job_service.delete_hyperparameter_tuning_job.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_JobService_DeleteHyperparameterTuningJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the HyperparameterTuningJob resource to be deleted. - * Format: - * `projects/{project}/locations/{location}/hyperparameterTuningJobs/{hyperparameter_tuning_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callDeleteHyperparameterTuningJob() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteHyperparameterTuningJob(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteHyperparameterTuningJob(); - // [END aiplatform_v1beta1_generated_JobService_DeleteHyperparameterTuningJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.delete_model_deployment_monitoring_job.js b/samples/generated/v1beta1/job_service.delete_model_deployment_monitoring_job.js deleted file mode 100644 index f65e3a60..00000000 --- a/samples/generated/v1beta1/job_service.delete_model_deployment_monitoring_job.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_JobService_DeleteModelDeploymentMonitoringJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the model monitoring job to delete. - * Format: - * `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callDeleteModelDeploymentMonitoringJob() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteModelDeploymentMonitoringJob(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteModelDeploymentMonitoringJob(); - // [END aiplatform_v1beta1_generated_JobService_DeleteModelDeploymentMonitoringJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.get_batch_prediction_job.js b/samples/generated/v1beta1/job_service.get_batch_prediction_job.js deleted file mode 100644 index 51970f9e..00000000 --- a/samples/generated/v1beta1/job_service.get_batch_prediction_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_JobService_GetBatchPredictionJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the BatchPredictionJob resource. - * Format: - * `projects/{project}/locations/{location}/batchPredictionJobs/{batch_prediction_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callGetBatchPredictionJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getBatchPredictionJob(request); - console.log(response); - } - - callGetBatchPredictionJob(); - // [END aiplatform_v1beta1_generated_JobService_GetBatchPredictionJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.get_custom_job.js b/samples/generated/v1beta1/job_service.get_custom_job.js deleted file mode 100644 index 18c41bed..00000000 --- a/samples/generated/v1beta1/job_service.get_custom_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_JobService_GetCustomJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the CustomJob resource. - * Format: - * `projects/{project}/locations/{location}/customJobs/{custom_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callGetCustomJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getCustomJob(request); - console.log(response); - } - - callGetCustomJob(); - // [END aiplatform_v1beta1_generated_JobService_GetCustomJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.get_data_labeling_job.js b/samples/generated/v1beta1/job_service.get_data_labeling_job.js deleted file mode 100644 index 46946260..00000000 --- a/samples/generated/v1beta1/job_service.get_data_labeling_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_JobService_GetDataLabelingJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the DataLabelingJob. - * Format: - * `projects/{project}/locations/{location}/dataLabelingJobs/{data_labeling_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callGetDataLabelingJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getDataLabelingJob(request); - console.log(response); - } - - callGetDataLabelingJob(); - // [END aiplatform_v1beta1_generated_JobService_GetDataLabelingJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.get_hyperparameter_tuning_job.js b/samples/generated/v1beta1/job_service.get_hyperparameter_tuning_job.js deleted file mode 100644 index 317b105b..00000000 --- a/samples/generated/v1beta1/job_service.get_hyperparameter_tuning_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_JobService_GetHyperparameterTuningJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the HyperparameterTuningJob resource. - * Format: - * `projects/{project}/locations/{location}/hyperparameterTuningJobs/{hyperparameter_tuning_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callGetHyperparameterTuningJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getHyperparameterTuningJob(request); - console.log(response); - } - - callGetHyperparameterTuningJob(); - // [END aiplatform_v1beta1_generated_JobService_GetHyperparameterTuningJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.get_model_deployment_monitoring_job.js b/samples/generated/v1beta1/job_service.get_model_deployment_monitoring_job.js deleted file mode 100644 index 452018b4..00000000 --- a/samples/generated/v1beta1/job_service.get_model_deployment_monitoring_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_JobService_GetModelDeploymentMonitoringJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the ModelDeploymentMonitoringJob. - * Format: - * `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callGetModelDeploymentMonitoringJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getModelDeploymentMonitoringJob(request); - console.log(response); - } - - callGetModelDeploymentMonitoringJob(); - // [END aiplatform_v1beta1_generated_JobService_GetModelDeploymentMonitoringJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.list_batch_prediction_jobs.js b/samples/generated/v1beta1/job_service.list_batch_prediction_jobs.js deleted file mode 100644 index aec54300..00000000 --- a/samples/generated/v1beta1/job_service.list_batch_prediction_jobs.js +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_JobService_ListBatchPredictionJobs_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to list the BatchPredictionJobs - * from. Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - * Supported fields: - * * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. - * * `model_display_name` supports `=`, `!=` comparisons. - * * `state` supports `=`, `!=` comparisons. - * * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. - * `create_time` must be in RFC 3339 format. - * * `labels` supports general map functions that is: - * `labels.key=value` - key:value equality - * `labels.key:* - key existence - * Some examples of using the filter are: - * * `state="JOB_STATE_SUCCEEDED" AND display_name:"my_job_*"` - * * `state!="JOB_STATE_FAILED" OR display_name="my_job"` - * * `NOT display_name="my_job"` - * * `create_time>"2021-05-18T00:00:00Z"` - * * `labels.keyA=valueA` - * * `labels.keyB:*` - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained via - * ListBatchPredictionJobsResponse.next_page_token google.cloud.aiplatform.v1beta1.ListBatchPredictionJobsResponse.next_page_token of the previous - * JobService.ListBatchPredictionJobs google.cloud.aiplatform.v1beta1.JobService.ListBatchPredictionJobs call. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callListBatchPredictionJobs() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listBatchPredictionJobsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListBatchPredictionJobs(); - // [END aiplatform_v1beta1_generated_JobService_ListBatchPredictionJobs_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.list_custom_jobs.js b/samples/generated/v1beta1/job_service.list_custom_jobs.js deleted file mode 100644 index a1ed029d..00000000 --- a/samples/generated/v1beta1/job_service.list_custom_jobs.js +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_JobService_ListCustomJobs_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to list the CustomJobs from. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - * Supported fields: - * * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. - * * `state` supports `=`, `!=` comparisons. - * * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. - * `create_time` must be in RFC 3339 format. - * * `labels` supports general map functions that is: - * `labels.key=value` - key:value equality - * `labels.key:* - key existence - * Some examples of using the filter are: - * * `state="JOB_STATE_SUCCEEDED" AND display_name:"my_job_*"` - * * `state!="JOB_STATE_FAILED" OR display_name="my_job"` - * * `NOT display_name="my_job"` - * * `create_time>"2021-05-18T00:00:00Z"` - * * `labels.keyA=valueA` - * * `labels.keyB:*` - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained via - * ListCustomJobsResponse.next_page_token google.cloud.aiplatform.v1beta1.ListCustomJobsResponse.next_page_token of the previous - * JobService.ListCustomJobs google.cloud.aiplatform.v1beta1.JobService.ListCustomJobs call. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callListCustomJobs() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listCustomJobsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListCustomJobs(); - // [END aiplatform_v1beta1_generated_JobService_ListCustomJobs_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.list_data_labeling_jobs.js b/samples/generated/v1beta1/job_service.list_data_labeling_jobs.js deleted file mode 100644 index 1950798c..00000000 --- a/samples/generated/v1beta1/job_service.list_data_labeling_jobs.js +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_JobService_ListDataLabelingJobs_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The parent of the DataLabelingJob. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - * Supported fields: - * * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. - * * `state` supports `=`, `!=` comparisons. - * * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. - * `create_time` must be in RFC 3339 format. - * * `labels` supports general map functions that is: - * `labels.key=value` - key:value equality - * `labels.key:* - key existence - * Some examples of using the filter are: - * * `state="JOB_STATE_SUCCEEDED" AND display_name:"my_job_*"` - * * `state!="JOB_STATE_FAILED" OR display_name="my_job"` - * * `NOT display_name="my_job"` - * * `create_time>"2021-05-18T00:00:00Z"` - * * `labels.keyA=valueA` - * * `labels.keyB:*` - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. FieldMask represents a set of - * symbolic field paths. For example, the mask can be `paths: "name"`. The - * "name" here is a field in DataLabelingJob. - * If this field is not set, all fields of the DataLabelingJob are returned. - */ - // const readMask = {} - /** - * A comma-separated list of fields to order by, sorted in ascending order by - * default. - * Use `desc` after a field name for descending. - */ - // const orderBy = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callListDataLabelingJobs() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listDataLabelingJobsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListDataLabelingJobs(); - // [END aiplatform_v1beta1_generated_JobService_ListDataLabelingJobs_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.list_hyperparameter_tuning_jobs.js b/samples/generated/v1beta1/job_service.list_hyperparameter_tuning_jobs.js deleted file mode 100644 index 752e0823..00000000 --- a/samples/generated/v1beta1/job_service.list_hyperparameter_tuning_jobs.js +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_JobService_ListHyperparameterTuningJobs_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to list the HyperparameterTuningJobs - * from. Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - * Supported fields: - * * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. - * * `state` supports `=`, `!=` comparisons. - * * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. - * `create_time` must be in RFC 3339 format. - * * `labels` supports general map functions that is: - * `labels.key=value` - key:value equality - * `labels.key:* - key existence - * Some examples of using the filter are: - * * `state="JOB_STATE_SUCCEEDED" AND display_name:"my_job_*"` - * * `state!="JOB_STATE_FAILED" OR display_name="my_job"` - * * `NOT display_name="my_job"` - * * `create_time>"2021-05-18T00:00:00Z"` - * * `labels.keyA=valueA` - * * `labels.keyB:*` - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained via - * ListHyperparameterTuningJobsResponse.next_page_token google.cloud.aiplatform.v1beta1.ListHyperparameterTuningJobsResponse.next_page_token of the previous - * JobService.ListHyperparameterTuningJobs google.cloud.aiplatform.v1beta1.JobService.ListHyperparameterTuningJobs call. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callListHyperparameterTuningJobs() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listHyperparameterTuningJobsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListHyperparameterTuningJobs(); - // [END aiplatform_v1beta1_generated_JobService_ListHyperparameterTuningJobs_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.list_model_deployment_monitoring_jobs.js b/samples/generated/v1beta1/job_service.list_model_deployment_monitoring_jobs.js deleted file mode 100644 index 4c3e2975..00000000 --- a/samples/generated/v1beta1/job_service.list_model_deployment_monitoring_jobs.js +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_JobService_ListModelDeploymentMonitoringJobs_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The parent of the ModelDeploymentMonitoringJob. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - * Supported fields: - * * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. - * * `state` supports `=`, `!=` comparisons. - * * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. - * `create_time` must be in RFC 3339 format. - * * `labels` supports general map functions that is: - * `labels.key=value` - key:value equality - * `labels.key:* - key existence - * Some examples of using the filter are: - * * `state="JOB_STATE_SUCCEEDED" AND display_name:"my_job_*"` - * * `state!="JOB_STATE_FAILED" OR display_name="my_job"` - * * `NOT display_name="my_job"` - * * `create_time>"2021-05-18T00:00:00Z"` - * * `labels.keyA=valueA` - * * `labels.keyB:*` - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read - */ - // const readMask = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callListModelDeploymentMonitoringJobs() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listModelDeploymentMonitoringJobsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListModelDeploymentMonitoringJobs(); - // [END aiplatform_v1beta1_generated_JobService_ListModelDeploymentMonitoringJobs_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.pause_model_deployment_monitoring_job.js b/samples/generated/v1beta1/job_service.pause_model_deployment_monitoring_job.js deleted file mode 100644 index 4c6f9c40..00000000 --- a/samples/generated/v1beta1/job_service.pause_model_deployment_monitoring_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_JobService_PauseModelDeploymentMonitoringJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the ModelDeploymentMonitoringJob to pause. - * Format: - * `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callPauseModelDeploymentMonitoringJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.pauseModelDeploymentMonitoringJob(request); - console.log(response); - } - - callPauseModelDeploymentMonitoringJob(); - // [END aiplatform_v1beta1_generated_JobService_PauseModelDeploymentMonitoringJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.resume_model_deployment_monitoring_job.js b/samples/generated/v1beta1/job_service.resume_model_deployment_monitoring_job.js deleted file mode 100644 index 66e89d35..00000000 --- a/samples/generated/v1beta1/job_service.resume_model_deployment_monitoring_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_JobService_ResumeModelDeploymentMonitoringJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the ModelDeploymentMonitoringJob to resume. - * Format: - * `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callResumeModelDeploymentMonitoringJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.resumeModelDeploymentMonitoringJob(request); - console.log(response); - } - - callResumeModelDeploymentMonitoringJob(); - // [END aiplatform_v1beta1_generated_JobService_ResumeModelDeploymentMonitoringJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.search_model_deployment_monitoring_stats_anomalies.js b/samples/generated/v1beta1/job_service.search_model_deployment_monitoring_stats_anomalies.js deleted file mode 100644 index 1c221286..00000000 --- a/samples/generated/v1beta1/job_service.search_model_deployment_monitoring_stats_anomalies.js +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(modelDeploymentMonitoringJob, deployedModelId, objectives) { - // [START aiplatform_v1beta1_generated_JobService_SearchModelDeploymentMonitoringStatsAnomalies_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. ModelDeploymentMonitoring Job resource name. - * Format: - * `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}` - */ - // const modelDeploymentMonitoringJob = 'abc123' - /** - * Required. The DeployedModel ID of the - * ModelDeploymentMonitoringObjectiveConfig.deployed_model_id. - */ - // const deployedModelId = 'abc123' - /** - * The feature display name. If specified, only return the stats belonging to - * this feature. Format: - * ModelMonitoringStatsAnomalies.FeatureHistoricStatsAnomalies.feature_display_name google.cloud.aiplatform.v1beta1.ModelMonitoringStatsAnomalies.FeatureHistoricStatsAnomalies.feature_display_name, - * example: "user_destination". - */ - // const featureDisplayName = 'abc123' - /** - * Required. Objectives of the stats to retrieve. - */ - // const objectives = 1234 - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * A page token received from a previous - * JobService.SearchModelDeploymentMonitoringStatsAnomalies google.cloud.aiplatform.v1beta1.JobService.SearchModelDeploymentMonitoringStatsAnomalies - * call. - */ - // const pageToken = 'abc123' - /** - * The earliest timestamp of stats being generated. - * If not set, indicates fetching stats till the earliest possible one. - */ - // const startTime = {} - /** - * The latest timestamp of stats being generated. - * If not set, indicates feching stats till the latest possible one. - */ - // const endTime = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callSearchModelDeploymentMonitoringStatsAnomalies() { - // Construct request - const request = { - modelDeploymentMonitoringJob, - deployedModelId, - objectives, - }; - - // Run request - const iterable = await aiplatformClient.searchModelDeploymentMonitoringStatsAnomaliesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callSearchModelDeploymentMonitoringStatsAnomalies(); - // [END aiplatform_v1beta1_generated_JobService_SearchModelDeploymentMonitoringStatsAnomalies_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/job_service.update_model_deployment_monitoring_job.js b/samples/generated/v1beta1/job_service.update_model_deployment_monitoring_job.js deleted file mode 100644 index 9e09ddd2..00000000 --- a/samples/generated/v1beta1/job_service.update_model_deployment_monitoring_job.js +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(modelDeploymentMonitoringJob, updateMask) { - // [START aiplatform_v1beta1_generated_JobService_UpdateModelDeploymentMonitoringJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The model monitoring configuration which replaces the resource on the - * server. - */ - // const modelDeploymentMonitoringJob = {} - /** - * Required. The update mask is used to specify the fields to be overwritten in the - * ModelDeploymentMonitoringJob resource by the update. - * The fields specified in the update_mask are relative to the resource, not - * the full request. A field will be overwritten if it is in the mask. If the - * user does not provide a mask then only the non-empty fields present in the - * request will be overwritten. Set the update_mask to `*` to override all - * fields. - * For the objective config, the user can either provide the update mask for - * model_deployment_monitoring_objective_configs or any combination of its - * nested fields, such as: - * model_deployment_monitoring_objective_configs.objective_config.training_dataset. - * Updatable fields: - * * `display_name` - * * `model_deployment_monitoring_schedule_config` - * * `model_monitoring_alert_config` - * * `logging_sampling_strategy` - * * `labels` - * * `log_ttl` - * * `enable_monitoring_pipeline_logs` - * . and - * * `model_deployment_monitoring_objective_configs` - * . or - * * `model_deployment_monitoring_objective_configs.objective_config.training_dataset` - * * `model_deployment_monitoring_objective_configs.objective_config.training_prediction_skew_detection_config` - * * `model_deployment_monitoring_objective_configs.objective_config.prediction_drift_detection_config` - */ - // const updateMask = {} - - // Imports the Aiplatform library - const {JobServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new JobServiceClient(); - - async function callUpdateModelDeploymentMonitoringJob() { - // Construct request - const request = { - modelDeploymentMonitoringJob, - updateMask, - }; - - // Run request - const [operation] = await aiplatformClient.updateModelDeploymentMonitoringJob(request); - const [response] = await operation.promise(); - console.log(response); - } - - callUpdateModelDeploymentMonitoringJob(); - // [END aiplatform_v1beta1_generated_JobService_UpdateModelDeploymentMonitoringJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.add_context_artifacts_and_executions.js b/samples/generated/v1beta1/metadata_service.add_context_artifacts_and_executions.js deleted file mode 100644 index 9d047755..00000000 --- a/samples/generated/v1beta1/metadata_service.add_context_artifacts_and_executions.js +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(context) { - // [START aiplatform_v1beta1_generated_MetadataService_AddContextArtifactsAndExecutions_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Context that the Artifacts and Executions - * belong to. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}` - */ - // const context = 'abc123' - /** - * The resource names of the Artifacts to attribute to the Context. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/artifacts/{artifact}` - */ - // const artifacts = 'abc123' - /** - * The resource names of the Executions to associate with the - * Context. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}` - */ - // const executions = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callAddContextArtifactsAndExecutions() { - // Construct request - const request = { - context, - }; - - // Run request - const response = await aiplatformClient.addContextArtifactsAndExecutions(request); - console.log(response); - } - - callAddContextArtifactsAndExecutions(); - // [END aiplatform_v1beta1_generated_MetadataService_AddContextArtifactsAndExecutions_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.add_context_children.js b/samples/generated/v1beta1/metadata_service.add_context_children.js deleted file mode 100644 index b8c62fc4..00000000 --- a/samples/generated/v1beta1/metadata_service.add_context_children.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(context) { - // [START aiplatform_v1beta1_generated_MetadataService_AddContextChildren_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the parent Context. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}` - */ - // const context = 'abc123' - /** - * The resource names of the child Contexts. - */ - // const childContexts = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callAddContextChildren() { - // Construct request - const request = { - context, - }; - - // Run request - const response = await aiplatformClient.addContextChildren(request); - console.log(response); - } - - callAddContextChildren(); - // [END aiplatform_v1beta1_generated_MetadataService_AddContextChildren_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.add_execution_events.js b/samples/generated/v1beta1/metadata_service.add_execution_events.js deleted file mode 100644 index ed8fe2d0..00000000 --- a/samples/generated/v1beta1/metadata_service.add_execution_events.js +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(execution) { - // [START aiplatform_v1beta1_generated_MetadataService_AddExecutionEvents_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Execution that the Events connect - * Artifacts with. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}` - */ - // const execution = 'abc123' - /** - * The Events to create and add. - */ - // const events = 1234 - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callAddExecutionEvents() { - // Construct request - const request = { - execution, - }; - - // Run request - const response = await aiplatformClient.addExecutionEvents(request); - console.log(response); - } - - callAddExecutionEvents(); - // [END aiplatform_v1beta1_generated_MetadataService_AddExecutionEvents_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.create_artifact.js b/samples/generated/v1beta1/metadata_service.create_artifact.js deleted file mode 100644 index ebb09c8b..00000000 --- a/samples/generated/v1beta1/metadata_service.create_artifact.js +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, artifact) { - // [START aiplatform_v1beta1_generated_MetadataService_CreateArtifact_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the MetadataStore where the Artifact should - * be created. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * Required. The Artifact to create. - */ - // const artifact = {} - /** - * The {artifact} portion of the resource name with the format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/artifacts/{artifact}` - * If not provided, the Artifact's ID will be a UUID generated by the service. - * Must be 4-128 characters in length. Valid characters are `/[a-z][0-9]-/`. - * Must be unique across all Artifacts in the parent MetadataStore. (Otherwise - * the request will fail with ALREADY_EXISTS, or PERMISSION_DENIED if the - * caller can't view the preexisting Artifact.) - */ - // const artifactId = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callCreateArtifact() { - // Construct request - const request = { - parent, - artifact, - }; - - // Run request - const response = await aiplatformClient.createArtifact(request); - console.log(response); - } - - callCreateArtifact(); - // [END aiplatform_v1beta1_generated_MetadataService_CreateArtifact_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.create_context.js b/samples/generated/v1beta1/metadata_service.create_context.js deleted file mode 100644 index 73d20aee..00000000 --- a/samples/generated/v1beta1/metadata_service.create_context.js +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, context) { - // [START aiplatform_v1beta1_generated_MetadataService_CreateContext_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the MetadataStore where the Context should be - * created. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * Required. The Context to create. - */ - // const context = {} - /** - * The {context} portion of the resource name with the format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}`. - * If not provided, the Context's ID will be a UUID generated by the service. - * Must be 4-128 characters in length. Valid characters are `/[a-z][0-9]-/`. - * Must be unique across all Contexts in the parent MetadataStore. (Otherwise - * the request will fail with ALREADY_EXISTS, or PERMISSION_DENIED if the - * caller can't view the preexisting Context.) - */ - // const contextId = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callCreateContext() { - // Construct request - const request = { - parent, - context, - }; - - // Run request - const response = await aiplatformClient.createContext(request); - console.log(response); - } - - callCreateContext(); - // [END aiplatform_v1beta1_generated_MetadataService_CreateContext_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.create_execution.js b/samples/generated/v1beta1/metadata_service.create_execution.js deleted file mode 100644 index 64e4257e..00000000 --- a/samples/generated/v1beta1/metadata_service.create_execution.js +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, execution) { - // [START aiplatform_v1beta1_generated_MetadataService_CreateExecution_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the MetadataStore where the Execution should - * be created. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * Required. The Execution to create. - */ - // const execution = {} - /** - * The {execution} portion of the resource name with the format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}` - * If not provided, the Execution's ID will be a UUID generated by the - * service. - * Must be 4-128 characters in length. Valid characters are `/[a-z][0-9]-/`. - * Must be unique across all Executions in the parent MetadataStore. - * (Otherwise the request will fail with ALREADY_EXISTS, or PERMISSION_DENIED - * if the caller can't view the preexisting Execution.) - */ - // const executionId = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callCreateExecution() { - // Construct request - const request = { - parent, - execution, - }; - - // Run request - const response = await aiplatformClient.createExecution(request); - console.log(response); - } - - callCreateExecution(); - // [END aiplatform_v1beta1_generated_MetadataService_CreateExecution_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.create_metadata_schema.js b/samples/generated/v1beta1/metadata_service.create_metadata_schema.js deleted file mode 100644 index 5b1fbe09..00000000 --- a/samples/generated/v1beta1/metadata_service.create_metadata_schema.js +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, metadataSchema) { - // [START aiplatform_v1beta1_generated_MetadataService_CreateMetadataSchema_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the MetadataStore where the MetadataSchema should - * be created. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * Required. The MetadataSchema to create. - */ - // const metadataSchema = {} - /** - * The {metadata_schema} portion of the resource name with the format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/metadataSchemas/{metadataschema}` - * If not provided, the MetadataStore's ID will be a UUID generated by the - * service. - * Must be 4-128 characters in length. Valid characters are `/[a-z][0-9]-/`. - * Must be unique across all MetadataSchemas in the parent Location. - * (Otherwise the request will fail with ALREADY_EXISTS, or PERMISSION_DENIED - * if the caller can't view the preexisting MetadataSchema.) - */ - // const metadataSchemaId = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callCreateMetadataSchema() { - // Construct request - const request = { - parent, - metadataSchema, - }; - - // Run request - const response = await aiplatformClient.createMetadataSchema(request); - console.log(response); - } - - callCreateMetadataSchema(); - // [END aiplatform_v1beta1_generated_MetadataService_CreateMetadataSchema_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.create_metadata_store.js b/samples/generated/v1beta1/metadata_service.create_metadata_store.js deleted file mode 100644 index 935f9bd9..00000000 --- a/samples/generated/v1beta1/metadata_service.create_metadata_store.js +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, metadataStore) { - // [START aiplatform_v1beta1_generated_MetadataService_CreateMetadataStore_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location where the MetadataStore should - * be created. - * Format: `projects/{project}/locations/{location}/` - */ - // const parent = 'abc123' - /** - * Required. The MetadataStore to create. - */ - // const metadataStore = {} - /** - * The {metadatastore} portion of the resource name with the format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - * If not provided, the MetadataStore's ID will be a UUID generated by the - * service. - * Must be 4-128 characters in length. Valid characters are `/[a-z][0-9]-/`. - * Must be unique across all MetadataStores in the parent Location. - * (Otherwise the request will fail with ALREADY_EXISTS, or PERMISSION_DENIED - * if the caller can't view the preexisting MetadataStore.) - */ - // const metadataStoreId = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callCreateMetadataStore() { - // Construct request - const request = { - parent, - metadataStore, - }; - - // Run request - const [operation] = await aiplatformClient.createMetadataStore(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateMetadataStore(); - // [END aiplatform_v1beta1_generated_MetadataService_CreateMetadataStore_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.delete_artifact.js b/samples/generated/v1beta1/metadata_service.delete_artifact.js deleted file mode 100644 index c5135771..00000000 --- a/samples/generated/v1beta1/metadata_service.delete_artifact.js +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_MetadataService_DeleteArtifact_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Artifact to delete. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/artifacts/{artifact}` - */ - // const name = 'abc123' - /** - * Optional. The etag of the Artifact to delete. - * If this is provided, it must match the server's etag. Otherwise, the - * request will fail with a FAILED_PRECONDITION. - */ - // const etag = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callDeleteArtifact() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteArtifact(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteArtifact(); - // [END aiplatform_v1beta1_generated_MetadataService_DeleteArtifact_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.delete_context.js b/samples/generated/v1beta1/metadata_service.delete_context.js deleted file mode 100644 index 652169cd..00000000 --- a/samples/generated/v1beta1/metadata_service.delete_context.js +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_MetadataService_DeleteContext_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Context to delete. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}` - */ - // const name = 'abc123' - /** - * The force deletion semantics is still undefined. - * Users should not use this field. - */ - // const force = true - /** - * Optional. The etag of the Context to delete. - * If this is provided, it must match the server's etag. Otherwise, the - * request will fail with a FAILED_PRECONDITION. - */ - // const etag = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callDeleteContext() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteContext(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteContext(); - // [END aiplatform_v1beta1_generated_MetadataService_DeleteContext_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.delete_execution.js b/samples/generated/v1beta1/metadata_service.delete_execution.js deleted file mode 100644 index ed796159..00000000 --- a/samples/generated/v1beta1/metadata_service.delete_execution.js +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_MetadataService_DeleteExecution_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Execution to delete. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}` - */ - // const name = 'abc123' - /** - * Optional. The etag of the Execution to delete. - * If this is provided, it must match the server's etag. Otherwise, the - * request will fail with a FAILED_PRECONDITION. - */ - // const etag = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callDeleteExecution() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteExecution(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteExecution(); - // [END aiplatform_v1beta1_generated_MetadataService_DeleteExecution_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.delete_metadata_store.js b/samples/generated/v1beta1/metadata_service.delete_metadata_store.js deleted file mode 100644 index 3484c7c4..00000000 --- a/samples/generated/v1beta1/metadata_service.delete_metadata_store.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_MetadataService_DeleteMetadataStore_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the MetadataStore to delete. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callDeleteMetadataStore() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteMetadataStore(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteMetadataStore(); - // [END aiplatform_v1beta1_generated_MetadataService_DeleteMetadataStore_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.get_artifact.js b/samples/generated/v1beta1/metadata_service.get_artifact.js deleted file mode 100644 index 0f036d42..00000000 --- a/samples/generated/v1beta1/metadata_service.get_artifact.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_MetadataService_GetArtifact_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Artifact to retrieve. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/artifacts/{artifact}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callGetArtifact() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getArtifact(request); - console.log(response); - } - - callGetArtifact(); - // [END aiplatform_v1beta1_generated_MetadataService_GetArtifact_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.get_context.js b/samples/generated/v1beta1/metadata_service.get_context.js deleted file mode 100644 index 2980f049..00000000 --- a/samples/generated/v1beta1/metadata_service.get_context.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_MetadataService_GetContext_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Context to retrieve. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callGetContext() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getContext(request); - console.log(response); - } - - callGetContext(); - // [END aiplatform_v1beta1_generated_MetadataService_GetContext_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.get_execution.js b/samples/generated/v1beta1/metadata_service.get_execution.js deleted file mode 100644 index bb74f265..00000000 --- a/samples/generated/v1beta1/metadata_service.get_execution.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_MetadataService_GetExecution_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Execution to retrieve. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callGetExecution() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getExecution(request); - console.log(response); - } - - callGetExecution(); - // [END aiplatform_v1beta1_generated_MetadataService_GetExecution_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.get_metadata_schema.js b/samples/generated/v1beta1/metadata_service.get_metadata_schema.js deleted file mode 100644 index 1a1fbd09..00000000 --- a/samples/generated/v1beta1/metadata_service.get_metadata_schema.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_MetadataService_GetMetadataSchema_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the MetadataSchema to retrieve. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/metadataSchemas/{metadataschema}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callGetMetadataSchema() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getMetadataSchema(request); - console.log(response); - } - - callGetMetadataSchema(); - // [END aiplatform_v1beta1_generated_MetadataService_GetMetadataSchema_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.get_metadata_store.js b/samples/generated/v1beta1/metadata_service.get_metadata_store.js deleted file mode 100644 index 6fa55c28..00000000 --- a/samples/generated/v1beta1/metadata_service.get_metadata_store.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_MetadataService_GetMetadataStore_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the MetadataStore to retrieve. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callGetMetadataStore() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getMetadataStore(request); - console.log(response); - } - - callGetMetadataStore(); - // [END aiplatform_v1beta1_generated_MetadataService_GetMetadataStore_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.list_artifacts.js b/samples/generated/v1beta1/metadata_service.list_artifacts.js deleted file mode 100644 index f256190c..00000000 --- a/samples/generated/v1beta1/metadata_service.list_artifacts.js +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_MetadataService_ListArtifacts_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The MetadataStore whose Artifacts should be listed. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * The maximum number of Artifacts to return. The service may return fewer. - * Must be in range 1-1000, inclusive. Defaults to 100. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous MetadataService.ListArtifacts google.cloud.aiplatform.v1beta1.MetadataService.ListArtifacts - * call. Provide this to retrieve the subsequent page. - * When paginating, all other provided parameters must match the call that - * provided the page token. (Otherwise the request will fail with - * INVALID_ARGUMENT error.) - */ - // const pageToken = 'abc123' - /** - * Filter specifying the boolean condition for the Artifacts to satisfy in - * order to be part of the result set. - * The syntax to define filter query is based on https://google.aip.dev/160. - * The supported set of filters include the following: - * * **Attribute filtering**: - * For example: `display_name = "test"`. - * Supported fields include: `name`, `display_name`, `uri`, `state`, - * `schema_title`, `create_time`, and `update_time`. - * Time fields, such as `create_time` and `update_time`, require values - * specified in RFC-3339 format. - * For example: `create_time = "2020-11-19T11:30:00-04:00"` - * * **Metadata field**: - * To filter on metadata fields use traversal operation as follows: - * `metadata..`. - * For example: `metadata.field_1.number_value = 10.0` - * * **Context based filtering**: - * To filter Artifacts based on the contexts to which they belong, use the - * function operator with the full resource name - * `in_context()`. - * For example: - * `in_context("projects//locations//metadataStores//contexts/")` - * Each of the above supported filter types can be combined together using - * logical operators (`AND` & `OR`). - * For example: `display_name = "test" AND metadata.field1.bool_value = true`. - */ - // const filter = 'abc123' - /** - * How the list of messages is ordered. Specify the values to order by and an - * ordering operation. The default sorting order is ascending. To specify - * descending order for a field, users append a " desc" suffix; for example: - * "foo desc, bar". - * Subfields are specified with a `.` character, such as foo.bar. - * see https://google.aip.dev/132#ordering for more details. - */ - // const orderBy = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callListArtifacts() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listArtifactsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListArtifacts(); - // [END aiplatform_v1beta1_generated_MetadataService_ListArtifacts_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.list_contexts.js b/samples/generated/v1beta1/metadata_service.list_contexts.js deleted file mode 100644 index a1d3857a..00000000 --- a/samples/generated/v1beta1/metadata_service.list_contexts.js +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_MetadataService_ListContexts_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The MetadataStore whose Contexts should be listed. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * The maximum number of Contexts to return. The service may return fewer. - * Must be in range 1-1000, inclusive. Defaults to 100. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous MetadataService.ListContexts google.cloud.aiplatform.v1beta1.MetadataService.ListContexts - * call. Provide this to retrieve the subsequent page. - * When paginating, all other provided parameters must match the call that - * provided the page token. (Otherwise the request will fail with - * INVALID_ARGUMENT error.) - */ - // const pageToken = 'abc123' - /** - * Filter specifying the boolean condition for the Contexts to satisfy in - * order to be part of the result set. - * The syntax to define filter query is based on https://google.aip.dev/160. - * Following are the supported set of filters: - * * **Attribute filtering**: - * For example: `display_name = "test"`. - * Supported fields include: `name`, `display_name`, `schema_title`, - * `create_time`, and `update_time`. - * Time fields, such as `create_time` and `update_time`, require values - * specified in RFC-3339 format. - * For example: `create_time = "2020-11-19T11:30:00-04:00"`. - * * **Metadata field**: - * To filter on metadata fields use traversal operation as follows: - * `metadata..`. - * For example: `metadata.field_1.number_value = 10.0`. - * * **Parent Child filtering**: - * To filter Contexts based on parent-child relationship use the HAS - * operator as follows: - * ``` - * parent_contexts: - * "projects//locations//metadataStores//contexts/" - * child_contexts: - * "projects//locations//metadataStores//contexts/" - * ``` - * Each of the above supported filters can be combined together using - * logical operators (`AND` & `OR`). - * For example: `display_name = "test" AND metadata.field1.bool_value = true`. - */ - // const filter = 'abc123' - /** - * How the list of messages is ordered. Specify the values to order by and an - * ordering operation. The default sorting order is ascending. To specify - * descending order for a field, users append a " desc" suffix; for example: - * "foo desc, bar". - * Subfields are specified with a `.` character, such as foo.bar. - * see https://google.aip.dev/132#ordering for more details. - */ - // const orderBy = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callListContexts() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listContextsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListContexts(); - // [END aiplatform_v1beta1_generated_MetadataService_ListContexts_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.list_executions.js b/samples/generated/v1beta1/metadata_service.list_executions.js deleted file mode 100644 index 462c346f..00000000 --- a/samples/generated/v1beta1/metadata_service.list_executions.js +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_MetadataService_ListExecutions_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The MetadataStore whose Executions should be listed. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * The maximum number of Executions to return. The service may return fewer. - * Must be in range 1-1000, inclusive. Defaults to 100. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous MetadataService.ListExecutions google.cloud.aiplatform.v1beta1.MetadataService.ListExecutions - * call. Provide this to retrieve the subsequent page. - * When paginating, all other provided parameters must match the call that - * provided the page token. (Otherwise the request will fail with an - * INVALID_ARGUMENT error.) - */ - // const pageToken = 'abc123' - /** - * Filter specifying the boolean condition for the Executions to satisfy in - * order to be part of the result set. - * The syntax to define filter query is based on https://google.aip.dev/160. - * Following are the supported set of filters: - * * **Attribute filtering**: - * For example: `display_name = "test"`. - * Supported fields include: `name`, `display_name`, `state`, - * `schema_title`, `create_time`, and `update_time`. - * Time fields, such as `create_time` and `update_time`, require values - * specified in RFC-3339 format. - * For example: `create_time = "2020-11-19T11:30:00-04:00"`. - * * **Metadata field**: - * To filter on metadata fields use traversal operation as follows: - * `metadata..` - * For example: `metadata.field_1.number_value = 10.0` - * * **Context based filtering**: - * To filter Executions based on the contexts to which they belong use - * the function operator with the full resource name: - * `in_context()`. - * For example: - * `in_context("projects//locations//metadataStores//contexts/")` - * Each of the above supported filters can be combined together using - * logical operators (`AND` & `OR`). - * For example: `display_name = "test" AND metadata.field1.bool_value = true`. - */ - // const filter = 'abc123' - /** - * How the list of messages is ordered. Specify the values to order by and an - * ordering operation. The default sorting order is ascending. To specify - * descending order for a field, users append a " desc" suffix; for example: - * "foo desc, bar". - * Subfields are specified with a `.` character, such as foo.bar. - * see https://google.aip.dev/132#ordering for more details. - */ - // const orderBy = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callListExecutions() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listExecutionsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListExecutions(); - // [END aiplatform_v1beta1_generated_MetadataService_ListExecutions_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.list_metadata_schemas.js b/samples/generated/v1beta1/metadata_service.list_metadata_schemas.js deleted file mode 100644 index 2c731934..00000000 --- a/samples/generated/v1beta1/metadata_service.list_metadata_schemas.js +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_MetadataService_ListMetadataSchemas_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The MetadataStore whose MetadataSchemas should be listed. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * The maximum number of MetadataSchemas to return. The service may return - * fewer. - * Must be in range 1-1000, inclusive. Defaults to 100. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * MetadataService.ListMetadataSchemas google.cloud.aiplatform.v1beta1.MetadataService.ListMetadataSchemas call. Provide this to retrieve the - * next page. - * When paginating, all other provided parameters must match the call that - * provided the page token. (Otherwise the request will fail with - * INVALID_ARGUMENT error.) - */ - // const pageToken = 'abc123' - /** - * A query to filter available MetadataSchemas for matching results. - */ - // const filter = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callListMetadataSchemas() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listMetadataSchemasAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListMetadataSchemas(); - // [END aiplatform_v1beta1_generated_MetadataService_ListMetadataSchemas_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.list_metadata_stores.js b/samples/generated/v1beta1/metadata_service.list_metadata_stores.js deleted file mode 100644 index bd9ba7b4..00000000 --- a/samples/generated/v1beta1/metadata_service.list_metadata_stores.js +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_MetadataService_ListMetadataStores_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Location whose MetadataStores should be listed. - * Format: - * `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * The maximum number of Metadata Stores to return. The service may return - * fewer. - * Must be in range 1-1000, inclusive. Defaults to 100. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * MetadataService.ListMetadataStores google.cloud.aiplatform.v1beta1.MetadataService.ListMetadataStores call. Provide this to retrieve the - * subsequent page. - * When paginating, all other provided parameters must match the call that - * provided the page token. (Otherwise the request will fail with - * INVALID_ARGUMENT error.) - */ - // const pageToken = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callListMetadataStores() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listMetadataStoresAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListMetadataStores(); - // [END aiplatform_v1beta1_generated_MetadataService_ListMetadataStores_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.purge_artifacts.js b/samples/generated/v1beta1/metadata_service.purge_artifacts.js deleted file mode 100644 index d64b6380..00000000 --- a/samples/generated/v1beta1/metadata_service.purge_artifacts.js +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, filter) { - // [START aiplatform_v1beta1_generated_MetadataService_PurgeArtifacts_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The metadata store to purge Artifacts from. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * Required. A required filter matching the Artifacts to be purged. - * E.g., `update_time <= 2020-11-19T11:30:00-04:00`. - */ - // const filter = 'abc123' - /** - * Optional. Flag to indicate to actually perform the purge. - * If `force` is set to false, the method will return a sample of - * Artifact names that would be deleted. - */ - // const force = true - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callPurgeArtifacts() { - // Construct request - const request = { - parent, - filter, - }; - - // Run request - const [operation] = await aiplatformClient.purgeArtifacts(request); - const [response] = await operation.promise(); - console.log(response); - } - - callPurgeArtifacts(); - // [END aiplatform_v1beta1_generated_MetadataService_PurgeArtifacts_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.purge_contexts.js b/samples/generated/v1beta1/metadata_service.purge_contexts.js deleted file mode 100644 index 462a9887..00000000 --- a/samples/generated/v1beta1/metadata_service.purge_contexts.js +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, filter) { - // [START aiplatform_v1beta1_generated_MetadataService_PurgeContexts_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The metadata store to purge Contexts from. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * Required. A required filter matching the Contexts to be purged. - * E.g., `update_time <= 2020-11-19T11:30:00-04:00`. - */ - // const filter = 'abc123' - /** - * Optional. Flag to indicate to actually perform the purge. - * If `force` is set to false, the method will return a sample of - * Context names that would be deleted. - */ - // const force = true - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callPurgeContexts() { - // Construct request - const request = { - parent, - filter, - }; - - // Run request - const [operation] = await aiplatformClient.purgeContexts(request); - const [response] = await operation.promise(); - console.log(response); - } - - callPurgeContexts(); - // [END aiplatform_v1beta1_generated_MetadataService_PurgeContexts_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.purge_executions.js b/samples/generated/v1beta1/metadata_service.purge_executions.js deleted file mode 100644 index 32166957..00000000 --- a/samples/generated/v1beta1/metadata_service.purge_executions.js +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, filter) { - // [START aiplatform_v1beta1_generated_MetadataService_PurgeExecutions_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The metadata store to purge Executions from. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}` - */ - // const parent = 'abc123' - /** - * Required. A required filter matching the Executions to be purged. - * E.g., `update_time <= 2020-11-19T11:30:00-04:00`. - */ - // const filter = 'abc123' - /** - * Optional. Flag to indicate to actually perform the purge. - * If `force` is set to false, the method will return a sample of - * Execution names that would be deleted. - */ - // const force = true - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callPurgeExecutions() { - // Construct request - const request = { - parent, - filter, - }; - - // Run request - const [operation] = await aiplatformClient.purgeExecutions(request); - const [response] = await operation.promise(); - console.log(response); - } - - callPurgeExecutions(); - // [END aiplatform_v1beta1_generated_MetadataService_PurgeExecutions_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.query_artifact_lineage_subgraph.js b/samples/generated/v1beta1/metadata_service.query_artifact_lineage_subgraph.js deleted file mode 100644 index 88154e29..00000000 --- a/samples/generated/v1beta1/metadata_service.query_artifact_lineage_subgraph.js +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(artifact) { - // [START aiplatform_v1beta1_generated_MetadataService_QueryArtifactLineageSubgraph_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Artifact whose Lineage needs to be retrieved as a - * LineageSubgraph. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/artifacts/{artifact}` - * The request may error with FAILED_PRECONDITION if the number of Artifacts, - * the number of Executions, or the number of Events that would be returned - * for the Context exceeds 1000. - */ - // const artifact = 'abc123' - /** - * Specifies the size of the lineage graph in terms of number of hops from the - * specified artifact. - * Negative Value: INVALID_ARGUMENT error is returned - * 0: Only input artifact is returned. - * No value: Transitive closure is performed to return the complete graph. - */ - // const maxHops = 1234 - /** - * Filter specifying the boolean condition for the Artifacts to satisfy in - * order to be part of the Lineage Subgraph. - * The syntax to define filter query is based on https://google.aip.dev/160. - * The supported set of filters include the following: - * * **Attribute filtering**: - * For example: `display_name = "test"` - * Supported fields include: `name`, `display_name`, `uri`, `state`, - * `schema_title`, `create_time`, and `update_time`. - * Time fields, such as `create_time` and `update_time`, require values - * specified in RFC-3339 format. - * For example: `create_time = "2020-11-19T11:30:00-04:00"` - * * **Metadata field**: - * To filter on metadata fields use traversal operation as follows: - * `metadata..`. - * For example: `metadata.field_1.number_value = 10.0` - * Each of the above supported filter types can be combined together using - * logical operators (`AND` & `OR`). - * For example: `display_name = "test" AND metadata.field1.bool_value = true`. - */ - // const filter = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callQueryArtifactLineageSubgraph() { - // Construct request - const request = { - artifact, - }; - - // Run request - const response = await aiplatformClient.queryArtifactLineageSubgraph(request); - console.log(response); - } - - callQueryArtifactLineageSubgraph(); - // [END aiplatform_v1beta1_generated_MetadataService_QueryArtifactLineageSubgraph_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.query_context_lineage_subgraph.js b/samples/generated/v1beta1/metadata_service.query_context_lineage_subgraph.js deleted file mode 100644 index adc32bdc..00000000 --- a/samples/generated/v1beta1/metadata_service.query_context_lineage_subgraph.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(context) { - // [START aiplatform_v1beta1_generated_MetadataService_QueryContextLineageSubgraph_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Context whose Artifacts and Executions - * should be retrieved as a LineageSubgraph. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}` - * The request may error with FAILED_PRECONDITION if the number of Artifacts, - * the number of Executions, or the number of Events that would be returned - * for the Context exceeds 1000. - */ - // const context = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callQueryContextLineageSubgraph() { - // Construct request - const request = { - context, - }; - - // Run request - const response = await aiplatformClient.queryContextLineageSubgraph(request); - console.log(response); - } - - callQueryContextLineageSubgraph(); - // [END aiplatform_v1beta1_generated_MetadataService_QueryContextLineageSubgraph_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.query_execution_inputs_and_outputs.js b/samples/generated/v1beta1/metadata_service.query_execution_inputs_and_outputs.js deleted file mode 100644 index c924e445..00000000 --- a/samples/generated/v1beta1/metadata_service.query_execution_inputs_and_outputs.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(execution) { - // [START aiplatform_v1beta1_generated_MetadataService_QueryExecutionInputsAndOutputs_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Execution whose input and output Artifacts should - * be retrieved as a LineageSubgraph. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}` - */ - // const execution = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callQueryExecutionInputsAndOutputs() { - // Construct request - const request = { - execution, - }; - - // Run request - const response = await aiplatformClient.queryExecutionInputsAndOutputs(request); - console.log(response); - } - - callQueryExecutionInputsAndOutputs(); - // [END aiplatform_v1beta1_generated_MetadataService_QueryExecutionInputsAndOutputs_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.remove_context_children.js b/samples/generated/v1beta1/metadata_service.remove_context_children.js deleted file mode 100644 index d4aa462c..00000000 --- a/samples/generated/v1beta1/metadata_service.remove_context_children.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(context) { - // [START aiplatform_v1beta1_generated_MetadataService_RemoveContextChildren_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the parent Context. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}` - */ - // const context = 'abc123' - /** - * The resource names of the child Contexts. - */ - // const childContexts = 'abc123' - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callRemoveContextChildren() { - // Construct request - const request = { - context, - }; - - // Run request - const response = await aiplatformClient.removeContextChildren(request); - console.log(response); - } - - callRemoveContextChildren(); - // [END aiplatform_v1beta1_generated_MetadataService_RemoveContextChildren_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.update_artifact.js b/samples/generated/v1beta1/metadata_service.update_artifact.js deleted file mode 100644 index 34b8012a..00000000 --- a/samples/generated/v1beta1/metadata_service.update_artifact.js +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(artifact) { - // [START aiplatform_v1beta1_generated_MetadataService_UpdateArtifact_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Artifact containing updates. - * The Artifact's Artifact.name google.cloud.aiplatform.v1beta1.Artifact.name field is used to identify the Artifact to - * be updated. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/artifacts/{artifact}` - */ - // const artifact = {} - /** - * Optional. A FieldMask indicating which fields should be updated. - * Functionality of this field is not yet supported. - */ - // const updateMask = {} - /** - * If set to true, and the Artifact google.cloud.aiplatform.v1beta1.Artifact is not found, a new Artifact google.cloud.aiplatform.v1beta1.Artifact is - * created. - */ - // const allowMissing = true - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callUpdateArtifact() { - // Construct request - const request = { - artifact, - }; - - // Run request - const response = await aiplatformClient.updateArtifact(request); - console.log(response); - } - - callUpdateArtifact(); - // [END aiplatform_v1beta1_generated_MetadataService_UpdateArtifact_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.update_context.js b/samples/generated/v1beta1/metadata_service.update_context.js deleted file mode 100644 index 176ca7a1..00000000 --- a/samples/generated/v1beta1/metadata_service.update_context.js +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(context) { - // [START aiplatform_v1beta1_generated_MetadataService_UpdateContext_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Context containing updates. - * The Context's Context.name google.cloud.aiplatform.v1beta1.Context.name field is used to identify the Context to be - * updated. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}` - */ - // const context = {} - /** - * Optional. A FieldMask indicating which fields should be updated. - * Functionality of this field is not yet supported. - */ - // const updateMask = {} - /** - * If set to true, and the Context google.cloud.aiplatform.v1beta1.Context is not found, a new Context google.cloud.aiplatform.v1beta1.Context is - * created. - */ - // const allowMissing = true - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callUpdateContext() { - // Construct request - const request = { - context, - }; - - // Run request - const response = await aiplatformClient.updateContext(request); - console.log(response); - } - - callUpdateContext(); - // [END aiplatform_v1beta1_generated_MetadataService_UpdateContext_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/metadata_service.update_execution.js b/samples/generated/v1beta1/metadata_service.update_execution.js deleted file mode 100644 index c6fb4602..00000000 --- a/samples/generated/v1beta1/metadata_service.update_execution.js +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(execution) { - // [START aiplatform_v1beta1_generated_MetadataService_UpdateExecution_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Execution containing updates. - * The Execution's Execution.name google.cloud.aiplatform.v1beta1.Execution.name field is used to identify the Execution - * to be updated. - * Format: - * `projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}` - */ - // const execution = {} - /** - * Optional. A FieldMask indicating which fields should be updated. - * Functionality of this field is not yet supported. - */ - // const updateMask = {} - /** - * If set to true, and the Execution google.cloud.aiplatform.v1beta1.Execution is not found, a new Execution google.cloud.aiplatform.v1beta1.Execution - * is created. - */ - // const allowMissing = true - - // Imports the Aiplatform library - const {MetadataServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MetadataServiceClient(); - - async function callUpdateExecution() { - // Construct request - const request = { - execution, - }; - - // Run request - const response = await aiplatformClient.updateExecution(request); - console.log(response); - } - - callUpdateExecution(); - // [END aiplatform_v1beta1_generated_MetadataService_UpdateExecution_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/migration_service.batch_migrate_resources.js b/samples/generated/v1beta1/migration_service.batch_migrate_resources.js deleted file mode 100644 index 6a06659e..00000000 --- a/samples/generated/v1beta1/migration_service.batch_migrate_resources.js +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, migrateResourceRequests) { - // [START aiplatform_v1beta1_generated_MigrationService_BatchMigrateResources_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The location of the migrated resource will live in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The request messages specifying the resources to migrate. - * They must be in the same location as the destination. - * Up to 50 resources can be migrated in one batch. - */ - // const migrateResourceRequests = 1234 - - // Imports the Aiplatform library - const {MigrationServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MigrationServiceClient(); - - async function callBatchMigrateResources() { - // Construct request - const request = { - parent, - migrateResourceRequests, - }; - - // Run request - const [operation] = await aiplatformClient.batchMigrateResources(request); - const [response] = await operation.promise(); - console.log(response); - } - - callBatchMigrateResources(); - // [END aiplatform_v1beta1_generated_MigrationService_BatchMigrateResources_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/migration_service.search_migratable_resources.js b/samples/generated/v1beta1/migration_service.search_migratable_resources.js deleted file mode 100644 index 7470e76a..00000000 --- a/samples/generated/v1beta1/migration_service.search_migratable_resources.js +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_MigrationService_SearchMigratableResources_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The location that the migratable resources should be searched from. - * It's the Vertex AI location that the resources can be migrated to, not - * the resources' original location. - * Format: - * `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * The standard page size. - * The default and maximum value is 100. - */ - // const pageSize = 1234 - /** - * The standard page token. - */ - // const pageToken = 'abc123' - /** - * A filter for your search. You can use the following types of filters: - * * Resource type filters. The following strings filter for a specific type - * of MigratableResource google.cloud.aiplatform.v1beta1.MigratableResource: - * * `ml_engine_model_version:*` - * * `automl_model:*` - * * `automl_dataset:*` - * * `data_labeling_dataset:*` - * * "Migrated or not" filters. The following strings filter for resources - * that either have or have not already been migrated: - * * `last_migrate_time:*` filters for migrated resources. - * * `NOT last_migrate_time:*` filters for not yet migrated resources. - */ - // const filter = 'abc123' - - // Imports the Aiplatform library - const {MigrationServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new MigrationServiceClient(); - - async function callSearchMigratableResources() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.searchMigratableResourcesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callSearchMigratableResources(); - // [END aiplatform_v1beta1_generated_MigrationService_SearchMigratableResources_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/model_service.batch_import_model_evaluation_slices.js b/samples/generated/v1beta1/model_service.batch_import_model_evaluation_slices.js deleted file mode 100644 index a5ba00be..00000000 --- a/samples/generated/v1beta1/model_service.batch_import_model_evaluation_slices.js +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, modelEvaluationSlices) { - // [START aiplatform_v1beta1_generated_ModelService_BatchImportModelEvaluationSlices_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the parent ModelEvaluation resource. - * Format: - * `projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}` - */ - // const parent = 'abc123' - /** - * Required. Model evaluation slice resource to be imported. - */ - // const modelEvaluationSlices = 1234 - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callBatchImportModelEvaluationSlices() { - // Construct request - const request = { - parent, - modelEvaluationSlices, - }; - - // Run request - const response = await aiplatformClient.batchImportModelEvaluationSlices(request); - console.log(response); - } - - callBatchImportModelEvaluationSlices(); - // [END aiplatform_v1beta1_generated_ModelService_BatchImportModelEvaluationSlices_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/model_service.delete_model.js b/samples/generated/v1beta1/model_service.delete_model.js deleted file mode 100644 index b0328943..00000000 --- a/samples/generated/v1beta1/model_service.delete_model.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_ModelService_DeleteModel_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Model resource to be deleted. - * Format: `projects/{project}/locations/{location}/models/{model}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callDeleteModel() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteModel(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteModel(); - // [END aiplatform_v1beta1_generated_ModelService_DeleteModel_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/model_service.delete_model_version.js b/samples/generated/v1beta1/model_service.delete_model_version.js deleted file mode 100644 index 7c37987a..00000000 --- a/samples/generated/v1beta1/model_service.delete_model_version.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_ModelService_DeleteModelVersion_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the model version to be deleted, with a version ID explicitly - * included. - * Example: `projects/{project}/locations/{location}/models/{model}@1234` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callDeleteModelVersion() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteModelVersion(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteModelVersion(); - // [END aiplatform_v1beta1_generated_ModelService_DeleteModelVersion_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/model_service.export_model.js b/samples/generated/v1beta1/model_service.export_model.js deleted file mode 100644 index 1e59804e..00000000 --- a/samples/generated/v1beta1/model_service.export_model.js +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name, outputConfig) { - // [START aiplatform_v1beta1_generated_ModelService_ExportModel_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Model to export. - * The resource name may contain version id or version alias to specify the - * version, if no version is specified, the default version will be exported. - */ - // const name = 'abc123' - /** - * Required. The desired output location and configuration. - */ - // const outputConfig = {} - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callExportModel() { - // Construct request - const request = { - name, - outputConfig, - }; - - // Run request - const [operation] = await aiplatformClient.exportModel(request); - const [response] = await operation.promise(); - console.log(response); - } - - callExportModel(); - // [END aiplatform_v1beta1_generated_ModelService_ExportModel_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/model_service.get_model.js b/samples/generated/v1beta1/model_service.get_model.js deleted file mode 100644 index 22bb2535..00000000 --- a/samples/generated/v1beta1/model_service.get_model.js +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_ModelService_GetModel_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Model resource. - * Format: `projects/{project}/locations/{location}/models/{model}` - * In order to retrieve a specific version of the model, also provide - * the version ID or version alias. - * Example: `projects/{project}/locations/{location}/models/{model}@2` - * or - * `projects/{project}/locations/{location}/models/{model}@golden` - * If no version ID or alias is specified, the "default" version will be - * returned. The "default" version alias is created for the first version of - * the model, and can be moved to other versions later on. There will be - * exactly one default version. - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callGetModel() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getModel(request); - console.log(response); - } - - callGetModel(); - // [END aiplatform_v1beta1_generated_ModelService_GetModel_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/model_service.get_model_evaluation.js b/samples/generated/v1beta1/model_service.get_model_evaluation.js deleted file mode 100644 index 079a5710..00000000 --- a/samples/generated/v1beta1/model_service.get_model_evaluation.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_ModelService_GetModelEvaluation_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the ModelEvaluation resource. - * Format: - * `projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callGetModelEvaluation() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getModelEvaluation(request); - console.log(response); - } - - callGetModelEvaluation(); - // [END aiplatform_v1beta1_generated_ModelService_GetModelEvaluation_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/model_service.get_model_evaluation_slice.js b/samples/generated/v1beta1/model_service.get_model_evaluation_slice.js deleted file mode 100644 index 7c421bc6..00000000 --- a/samples/generated/v1beta1/model_service.get_model_evaluation_slice.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_ModelService_GetModelEvaluationSlice_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the ModelEvaluationSlice resource. - * Format: - * `projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}/slices/{slice}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callGetModelEvaluationSlice() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getModelEvaluationSlice(request); - console.log(response); - } - - callGetModelEvaluationSlice(); - // [END aiplatform_v1beta1_generated_ModelService_GetModelEvaluationSlice_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/model_service.import_model_evaluation.js b/samples/generated/v1beta1/model_service.import_model_evaluation.js deleted file mode 100644 index ada50ddf..00000000 --- a/samples/generated/v1beta1/model_service.import_model_evaluation.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, modelEvaluation) { - // [START aiplatform_v1beta1_generated_ModelService_ImportModelEvaluation_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the parent model resource. - * Format: `projects/{project}/locations/{location}/models/{model}` - */ - // const parent = 'abc123' - /** - * Required. Model evaluation resource to be imported. - */ - // const modelEvaluation = {} - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callImportModelEvaluation() { - // Construct request - const request = { - parent, - modelEvaluation, - }; - - // Run request - const response = await aiplatformClient.importModelEvaluation(request); - console.log(response); - } - - callImportModelEvaluation(); - // [END aiplatform_v1beta1_generated_ModelService_ImportModelEvaluation_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/model_service.list_model_evaluation_slices.js b/samples/generated/v1beta1/model_service.list_model_evaluation_slices.js deleted file mode 100644 index f932db34..00000000 --- a/samples/generated/v1beta1/model_service.list_model_evaluation_slices.js +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_ModelService_ListModelEvaluationSlices_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the ModelEvaluation to list the ModelEvaluationSlices - * from. Format: - * `projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - * * `slice.dimension` - for =. - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained via - * ListModelEvaluationSlicesResponse.next_page_token google.cloud.aiplatform.v1beta1.ListModelEvaluationSlicesResponse.next_page_token of the previous - * ModelService.ListModelEvaluationSlices google.cloud.aiplatform.v1beta1.ModelService.ListModelEvaluationSlices call. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callListModelEvaluationSlices() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listModelEvaluationSlicesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListModelEvaluationSlices(); - // [END aiplatform_v1beta1_generated_ModelService_ListModelEvaluationSlices_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/model_service.list_model_evaluations.js b/samples/generated/v1beta1/model_service.list_model_evaluations.js deleted file mode 100644 index b9c13949..00000000 --- a/samples/generated/v1beta1/model_service.list_model_evaluations.js +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_ModelService_ListModelEvaluations_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Model to list the ModelEvaluations from. - * Format: `projects/{project}/locations/{location}/models/{model}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained via - * ListModelEvaluationsResponse.next_page_token google.cloud.aiplatform.v1beta1.ListModelEvaluationsResponse.next_page_token of the previous - * ModelService.ListModelEvaluations google.cloud.aiplatform.v1beta1.ModelService.ListModelEvaluations call. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callListModelEvaluations() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listModelEvaluationsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListModelEvaluations(); - // [END aiplatform_v1beta1_generated_ModelService_ListModelEvaluations_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/model_service.list_model_versions.js b/samples/generated/v1beta1/model_service.list_model_versions.js deleted file mode 100644 index 90da425f..00000000 --- a/samples/generated/v1beta1/model_service.list_model_versions.js +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_ModelService_ListModelVersions_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the model to list versions for. - */ - // const name = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained via - * ListModelVersionsResponse.next_page_token google.cloud.aiplatform.v1beta1.ListModelVersionsResponse.next_page_token of the previous - * ModelService.ListModelversions call. - */ - // const pageToken = 'abc123' - /** - * An expression for filtering the results of the request. For field names - * both snake_case and camelCase are supported. - * * `labels` supports general map functions that is: - * * `labels.key=value` - key:value equality - * * `labels.key:* or labels:key - key existence - * * A key including a space must be quoted. `labels."a key"`. - * Some examples: - * * `labels.myKey="myValue"` - */ - // const filter = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callListModelVersions() { - // Construct request - const request = { - name, - }; - - // Run request - const iterable = await aiplatformClient.listModelVersionsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListModelVersions(); - // [END aiplatform_v1beta1_generated_ModelService_ListModelVersions_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/model_service.list_models.js b/samples/generated/v1beta1/model_service.list_models.js deleted file mode 100644 index 1544b6e0..00000000 --- a/samples/generated/v1beta1/model_service.list_models.js +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_ModelService_ListModels_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to list the Models from. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * An expression for filtering the results of the request. For field names - * both snake_case and camelCase are supported. - * * `model` supports = and !=. `model` represents the Model ID, - * i.e. the last segment of the Model's resource name google.cloud.aiplatform.v1beta1.Model.name. - * * `display_name` supports = and != - * * `labels` supports general map functions that is: - * * `labels.key=value` - key:value equality - * * `labels.key:* or labels:key - key existence - * * A key including a space must be quoted. `labels."a key"`. - * Some examples: - * * `model=1234` - * * `displayName="myDisplayName"` - * * `labels.myKey="myValue"` - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained via - * ListModelsResponse.next_page_token google.cloud.aiplatform.v1beta1.ListModelsResponse.next_page_token of the previous - * ModelService.ListModels google.cloud.aiplatform.v1beta1.ModelService.ListModels call. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callListModels() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listModelsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListModels(); - // [END aiplatform_v1beta1_generated_ModelService_ListModels_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/model_service.merge_version_aliases.js b/samples/generated/v1beta1/model_service.merge_version_aliases.js deleted file mode 100644 index f20bae63..00000000 --- a/samples/generated/v1beta1/model_service.merge_version_aliases.js +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name, versionAliases) { - // [START aiplatform_v1beta1_generated_ModelService_MergeVersionAliases_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the model version to merge aliases, with a version ID - * explicitly included. - * Example: `projects/{project}/locations/{location}/models/{model}@1234` - */ - // const name = 'abc123' - /** - * Required. The set of version aliases to merge. - * The alias should be at most 128 characters, and match - * `[a-z][a-zA-Z0-9-]{0,126}[a-z-0-9]`. - * Add the `-` prefix to an alias means removing that alias from the version. - * `-` is NOT counted in the 128 characters. Example: `-golden` means removing - * the `golden` alias from the version. - * There is NO ordering in aliases, which means - * 1) The aliases returned from GetModel API might not have the exactly same - * order from this MergeVersionAliases API. 2) Adding and deleting the same - * alias in the request is not recommended, and the 2 operations will be - * cancelled out. - */ - // const versionAliases = 'abc123' - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callMergeVersionAliases() { - // Construct request - const request = { - name, - versionAliases, - }; - - // Run request - const response = await aiplatformClient.mergeVersionAliases(request); - console.log(response); - } - - callMergeVersionAliases(); - // [END aiplatform_v1beta1_generated_ModelService_MergeVersionAliases_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/model_service.update_explanation_dataset.js b/samples/generated/v1beta1/model_service.update_explanation_dataset.js deleted file mode 100644 index 47c8f21f..00000000 --- a/samples/generated/v1beta1/model_service.update_explanation_dataset.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(model) { - // [START aiplatform_v1beta1_generated_ModelService_UpdateExplanationDataset_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Model to update. - * Format: `projects/{project}/locations/{location}/models/{model}` - */ - // const model = 'abc123' - /** - * The example config containing the location of the dataset. - */ - // const examples = {} - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callUpdateExplanationDataset() { - // Construct request - const request = { - model, - }; - - // Run request - const [operation] = await aiplatformClient.updateExplanationDataset(request); - const [response] = await operation.promise(); - console.log(response); - } - - callUpdateExplanationDataset(); - // [END aiplatform_v1beta1_generated_ModelService_UpdateExplanationDataset_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/model_service.update_model.js b/samples/generated/v1beta1/model_service.update_model.js deleted file mode 100644 index 02dba574..00000000 --- a/samples/generated/v1beta1/model_service.update_model.js +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(model, updateMask) { - // [START aiplatform_v1beta1_generated_ModelService_UpdateModel_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Model which replaces the resource on the server. - * When Model Versioning is enabled, the model.name will be used to determine - * whether to update the model or model version. - * 1. model.name with the @ value, e.g. models/123@1, refers to a version - * specific update. - * 2. model.name without the @ value, e.g. models/123, refers to a model - * update. - * 3. model.name with @-, e.g. models/123@-, refers to a model update. - * 4. Supported model fields: display_name, description; supported - * version-specific fields: version_description. Labels are supported in both - * scenarios. Both the model labels and the version labels are merged when a - * model is returned. When updating labels, if the request is for - * model-specific update, model label gets updated. Otherwise, version labels - * get updated. - * 5. A model name or model version name fields update mismatch will cause a - * precondition error. - * 6. One request cannot update both the model and the version fields. You - * must update them separately. - */ - // const model = {} - /** - * Required. The update mask applies to the resource. - * For the `FieldMask` definition, see google.protobuf.FieldMask google.protobuf.FieldMask. - */ - // const updateMask = {} - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callUpdateModel() { - // Construct request - const request = { - model, - updateMask, - }; - - // Run request - const response = await aiplatformClient.updateModel(request); - console.log(response); - } - - callUpdateModel(); - // [END aiplatform_v1beta1_generated_ModelService_UpdateModel_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/model_service.upload_model.js b/samples/generated/v1beta1/model_service.upload_model.js deleted file mode 100644 index b9c1810f..00000000 --- a/samples/generated/v1beta1/model_service.upload_model.js +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, model) { - // [START aiplatform_v1beta1_generated_ModelService_UploadModel_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location into which to upload the Model. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Optional. The resource name of the model into which to upload the version. Only - * specify this field when uploading a new version. - */ - // const parentModel = 'abc123' - /** - * Optional. The ID to use for the uploaded Model, which will become the final - * component of the model resource name. - * This value may be up to 63 characters, and valid characters are - * `[a-z0-9_-]`. The first character cannot be a number or hyphen. - */ - // const modelId = 'abc123' - /** - * Required. The Model to create. - */ - // const model = {} - - // Imports the Aiplatform library - const {ModelServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new ModelServiceClient(); - - async function callUploadModel() { - // Construct request - const request = { - parent, - model, - }; - - // Run request - const [operation] = await aiplatformClient.uploadModel(request); - const [response] = await operation.promise(); - console.log(response); - } - - callUploadModel(); - // [END aiplatform_v1beta1_generated_ModelService_UploadModel_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/pipeline_service.cancel_pipeline_job.js b/samples/generated/v1beta1/pipeline_service.cancel_pipeline_job.js deleted file mode 100644 index 62c3e656..00000000 --- a/samples/generated/v1beta1/pipeline_service.cancel_pipeline_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_PipelineService_CancelPipelineJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the PipelineJob to cancel. - * Format: - * `projects/{project}/locations/{location}/pipelineJobs/{pipeline_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {PipelineServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new PipelineServiceClient(); - - async function callCancelPipelineJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.cancelPipelineJob(request); - console.log(response); - } - - callCancelPipelineJob(); - // [END aiplatform_v1beta1_generated_PipelineService_CancelPipelineJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/pipeline_service.cancel_training_pipeline.js b/samples/generated/v1beta1/pipeline_service.cancel_training_pipeline.js deleted file mode 100644 index a4dc9c78..00000000 --- a/samples/generated/v1beta1/pipeline_service.cancel_training_pipeline.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_PipelineService_CancelTrainingPipeline_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the TrainingPipeline to cancel. - * Format: - * `projects/{project}/locations/{location}/trainingPipelines/{training_pipeline}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {PipelineServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new PipelineServiceClient(); - - async function callCancelTrainingPipeline() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.cancelTrainingPipeline(request); - console.log(response); - } - - callCancelTrainingPipeline(); - // [END aiplatform_v1beta1_generated_PipelineService_CancelTrainingPipeline_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/pipeline_service.create_pipeline_job.js b/samples/generated/v1beta1/pipeline_service.create_pipeline_job.js deleted file mode 100644 index b9312e09..00000000 --- a/samples/generated/v1beta1/pipeline_service.create_pipeline_job.js +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, pipelineJob) { - // [START aiplatform_v1beta1_generated_PipelineService_CreatePipelineJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the PipelineJob in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The PipelineJob to create. - */ - // const pipelineJob = {} - /** - * The ID to use for the PipelineJob, which will become the final component of - * the PipelineJob name. If not provided, an ID will be automatically - * generated. - * This value should be less than 128 characters, and valid characters - * are /[a-z][0-9]-/. - */ - // const pipelineJobId = 'abc123' - - // Imports the Aiplatform library - const {PipelineServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new PipelineServiceClient(); - - async function callCreatePipelineJob() { - // Construct request - const request = { - parent, - pipelineJob, - }; - - // Run request - const response = await aiplatformClient.createPipelineJob(request); - console.log(response); - } - - callCreatePipelineJob(); - // [END aiplatform_v1beta1_generated_PipelineService_CreatePipelineJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/pipeline_service.create_training_pipeline.js b/samples/generated/v1beta1/pipeline_service.create_training_pipeline.js deleted file mode 100644 index 5c72fcfd..00000000 --- a/samples/generated/v1beta1/pipeline_service.create_training_pipeline.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, trainingPipeline) { - // [START aiplatform_v1beta1_generated_PipelineService_CreateTrainingPipeline_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the TrainingPipeline in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The TrainingPipeline to create. - */ - // const trainingPipeline = {} - - // Imports the Aiplatform library - const {PipelineServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new PipelineServiceClient(); - - async function callCreateTrainingPipeline() { - // Construct request - const request = { - parent, - trainingPipeline, - }; - - // Run request - const response = await aiplatformClient.createTrainingPipeline(request); - console.log(response); - } - - callCreateTrainingPipeline(); - // [END aiplatform_v1beta1_generated_PipelineService_CreateTrainingPipeline_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/pipeline_service.delete_pipeline_job.js b/samples/generated/v1beta1/pipeline_service.delete_pipeline_job.js deleted file mode 100644 index 53b38d3d..00000000 --- a/samples/generated/v1beta1/pipeline_service.delete_pipeline_job.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_PipelineService_DeletePipelineJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the PipelineJob resource to be deleted. - * Format: - * `projects/{project}/locations/{location}/pipelineJobs/{pipeline_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {PipelineServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new PipelineServiceClient(); - - async function callDeletePipelineJob() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deletePipelineJob(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeletePipelineJob(); - // [END aiplatform_v1beta1_generated_PipelineService_DeletePipelineJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/pipeline_service.delete_training_pipeline.js b/samples/generated/v1beta1/pipeline_service.delete_training_pipeline.js deleted file mode 100644 index 289eb19a..00000000 --- a/samples/generated/v1beta1/pipeline_service.delete_training_pipeline.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_PipelineService_DeleteTrainingPipeline_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the TrainingPipeline resource to be deleted. - * Format: - * `projects/{project}/locations/{location}/trainingPipelines/{training_pipeline}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {PipelineServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new PipelineServiceClient(); - - async function callDeleteTrainingPipeline() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteTrainingPipeline(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteTrainingPipeline(); - // [END aiplatform_v1beta1_generated_PipelineService_DeleteTrainingPipeline_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/pipeline_service.get_pipeline_job.js b/samples/generated/v1beta1/pipeline_service.get_pipeline_job.js deleted file mode 100644 index 1f2d1f37..00000000 --- a/samples/generated/v1beta1/pipeline_service.get_pipeline_job.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_PipelineService_GetPipelineJob_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the PipelineJob resource. - * Format: - * `projects/{project}/locations/{location}/pipelineJobs/{pipeline_job}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {PipelineServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new PipelineServiceClient(); - - async function callGetPipelineJob() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getPipelineJob(request); - console.log(response); - } - - callGetPipelineJob(); - // [END aiplatform_v1beta1_generated_PipelineService_GetPipelineJob_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/pipeline_service.get_training_pipeline.js b/samples/generated/v1beta1/pipeline_service.get_training_pipeline.js deleted file mode 100644 index e0181609..00000000 --- a/samples/generated/v1beta1/pipeline_service.get_training_pipeline.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_PipelineService_GetTrainingPipeline_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the TrainingPipeline resource. - * Format: - * `projects/{project}/locations/{location}/trainingPipelines/{training_pipeline}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {PipelineServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new PipelineServiceClient(); - - async function callGetTrainingPipeline() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getTrainingPipeline(request); - console.log(response); - } - - callGetTrainingPipeline(); - // [END aiplatform_v1beta1_generated_PipelineService_GetTrainingPipeline_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/pipeline_service.list_pipeline_jobs.js b/samples/generated/v1beta1/pipeline_service.list_pipeline_jobs.js deleted file mode 100644 index c0e49e88..00000000 --- a/samples/generated/v1beta1/pipeline_service.list_pipeline_jobs.js +++ /dev/null @@ -1,126 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_PipelineService_ListPipelineJobs_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to list the PipelineJobs from. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Lists the PipelineJobs that match the filter expression. The following - * fields are supported: - * * `pipeline_name`: Supports `=` and `!=` comparisons. - * * `display_name`: Supports `=`, `!=` comparisons, and `:` wildcard. - * * `pipeline_job_user_id`: Supports `=`, `!=` comparisons, and `:` wildcard. - * for example, can check if pipeline's display_name contains *step* by - * doing display_name:\"*step*\" - * * `state`: Supports `=` and `!=` comparisons. - * * `create_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. - * Values must be in RFC 3339 format. - * * `update_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. - * Values must be in RFC 3339 format. - * * `end_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. - * Values must be in RFC 3339 format. - * * `labels`: Supports key-value equality and key presence. - * * `template_uri`: Supports `=`, `!=` comparisons, and `:` wildcard. - * * `template_metadata.version`: Supports `=`, `!=` comparisons, and `:` - * wildcard. - * Filter expressions can be combined together using logical operators - * (`AND` & `OR`). - * For example: `pipeline_name="test" AND create_time>"2020-05-18T13:30:00Z"`. - * The syntax to define filter expression is based on - * https://google.aip.dev/160. - * Examples: - * * `create_time>"2021-05-18T00:00:00Z" OR - * update_time>"2020-05-18T00:00:00Z"` PipelineJobs created or updated - * after 2020-05-18 00:00:00 UTC. - * * `labels.env = "prod"` - * PipelineJobs with label "env" set to "prod". - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained via - * ListPipelineJobsResponse.next_page_token google.cloud.aiplatform.v1beta1.ListPipelineJobsResponse.next_page_token of the previous - * PipelineService.ListPipelineJobs google.cloud.aiplatform.v1beta1.PipelineService.ListPipelineJobs call. - */ - // const pageToken = 'abc123' - /** - * A comma-separated list of fields to order by. The default sort order is in - * ascending order. Use "desc" after a field name for descending. You can have - * multiple order_by fields provided e.g. "create_time desc, end_time", - * "end_time, start_time, update_time" For example, using "create_time desc, - * end_time" will order results by create time in descending order, and if - * there are multiple jobs having the same create time, order them by the end - * time in ascending order. if order_by is not specified, it will order by - * default order is create time in descending order. Supported fields: - * * `create_time` - * * `update_time` - * * `end_time` - * * `start_time` - */ - // const orderBy = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {PipelineServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new PipelineServiceClient(); - - async function callListPipelineJobs() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listPipelineJobsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListPipelineJobs(); - // [END aiplatform_v1beta1_generated_PipelineService_ListPipelineJobs_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/pipeline_service.list_training_pipelines.js b/samples/generated/v1beta1/pipeline_service.list_training_pipelines.js deleted file mode 100644 index b9ab1be4..00000000 --- a/samples/generated/v1beta1/pipeline_service.list_training_pipelines.js +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_PipelineService_ListTrainingPipelines_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to list the TrainingPipelines from. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * The standard list filter. - * Supported fields: - * * `display_name` supports `=`, `!=` comparisons, and `:` wildcard. - * * `state` supports `=`, `!=` comparisons. - * * `training_task_definition` `=`, `!=` comparisons, and `:` wildcard. - * * `create_time` supports `=`, `!=`,`<`, `<=`,`>`, `>=` comparisons. - * `create_time` must be in RFC 3339 format. - * * `labels` supports general map functions that is: - * `labels.key=value` - key:value equality - * `labels.key:* - key existence - * Some examples of using the filter are: - * * `state="PIPELINE_STATE_SUCCEEDED" AND display_name:"my_pipeline_*"` - * * `state!="PIPELINE_STATE_FAILED" OR display_name="my_pipeline"` - * * `NOT display_name="my_pipeline"` - * * `create_time>"2021-05-18T00:00:00Z"` - * * `training_task_definition:"*automl_text_classification*"` - */ - // const filter = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained via - * ListTrainingPipelinesResponse.next_page_token google.cloud.aiplatform.v1beta1.ListTrainingPipelinesResponse.next_page_token of the previous - * PipelineService.ListTrainingPipelines google.cloud.aiplatform.v1beta1.PipelineService.ListTrainingPipelines call. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {PipelineServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new PipelineServiceClient(); - - async function callListTrainingPipelines() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listTrainingPipelinesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListTrainingPipelines(); - // [END aiplatform_v1beta1_generated_PipelineService_ListTrainingPipelines_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/prediction_service.explain.js b/samples/generated/v1beta1/prediction_service.explain.js deleted file mode 100644 index 0c35a5a0..00000000 --- a/samples/generated/v1beta1/prediction_service.explain.js +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(endpoint, instances) { - // [START aiplatform_v1beta1_generated_PredictionService_Explain_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Endpoint requested to serve the explanation. - * Format: - * `projects/{project}/locations/{location}/endpoints/{endpoint}` - */ - // const endpoint = 'abc123' - /** - * Required. The instances that are the input to the explanation call. - * A DeployedModel may have an upper limit on the number of instances it - * supports per request, and when it is exceeded the explanation call errors - * in case of AutoML Models, or, in case of customer created Models, the - * behaviour is as documented by that Model. - * The schema of any single instance may be specified via Endpoint's - * DeployedModels' Model's google.cloud.aiplatform.v1beta1.DeployedModel.model - * PredictSchemata's google.cloud.aiplatform.v1beta1.Model.predict_schemata - * instance_schema_uri google.cloud.aiplatform.v1beta1.PredictSchemata.instance_schema_uri. - */ - // const instances = 1234 - /** - * The parameters that govern the prediction. The schema of the parameters may - * be specified via Endpoint's DeployedModels' Model's google.cloud.aiplatform.v1beta1.DeployedModel.model - * PredictSchemata's google.cloud.aiplatform.v1beta1.Model.predict_schemata - * parameters_schema_uri google.cloud.aiplatform.v1beta1.PredictSchemata.parameters_schema_uri. - */ - // const parameters = {} - /** - * If specified, overrides the - * explanation_spec google.cloud.aiplatform.v1beta1.DeployedModel.explanation_spec of the DeployedModel. - * Can be used for explaining prediction results with different - * configurations, such as: - * - Explaining top-5 predictions results as opposed to top-1; - * - Increasing path count or step count of the attribution methods to reduce - * approximate errors; - * - Using different baselines for explaining the prediction results. - */ - // const explanationSpecOverride = {} - /** - * If specified, this ExplainRequest will be served by the chosen - * DeployedModel, overriding Endpoint.traffic_split google.cloud.aiplatform.v1beta1.Endpoint.traffic_split. - */ - // const deployedModelId = 'abc123' - - // Imports the Aiplatform library - const {PredictionServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new PredictionServiceClient(); - - async function callExplain() { - // Construct request - const request = { - endpoint, - instances, - }; - - // Run request - const response = await aiplatformClient.explain(request); - console.log(response); - } - - callExplain(); - // [END aiplatform_v1beta1_generated_PredictionService_Explain_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/prediction_service.predict.js b/samples/generated/v1beta1/prediction_service.predict.js deleted file mode 100644 index 3cabc926..00000000 --- a/samples/generated/v1beta1/prediction_service.predict.js +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(endpoint, instances) { - // [START aiplatform_v1beta1_generated_PredictionService_Predict_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Endpoint requested to serve the prediction. - * Format: - * `projects/{project}/locations/{location}/endpoints/{endpoint}` - */ - // const endpoint = 'abc123' - /** - * Required. The instances that are the input to the prediction call. - * A DeployedModel may have an upper limit on the number of instances it - * supports per request, and when it is exceeded the prediction call errors - * in case of AutoML Models, or, in case of customer created Models, the - * behaviour is as documented by that Model. - * The schema of any single instance may be specified via Endpoint's - * DeployedModels' Model's google.cloud.aiplatform.v1beta1.DeployedModel.model - * PredictSchemata's google.cloud.aiplatform.v1beta1.Model.predict_schemata - * instance_schema_uri google.cloud.aiplatform.v1beta1.PredictSchemata.instance_schema_uri. - */ - // const instances = 1234 - /** - * The parameters that govern the prediction. The schema of the parameters may - * be specified via Endpoint's DeployedModels' Model's google.cloud.aiplatform.v1beta1.DeployedModel.model - * PredictSchemata's google.cloud.aiplatform.v1beta1.Model.predict_schemata - * parameters_schema_uri google.cloud.aiplatform.v1beta1.PredictSchemata.parameters_schema_uri. - */ - // const parameters = {} - - // Imports the Aiplatform library - const {PredictionServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new PredictionServiceClient(); - - async function callPredict() { - // Construct request - const request = { - endpoint, - instances, - }; - - // Run request - const response = await aiplatformClient.predict(request); - console.log(response); - } - - callPredict(); - // [END aiplatform_v1beta1_generated_PredictionService_Predict_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/prediction_service.raw_predict.js b/samples/generated/v1beta1/prediction_service.raw_predict.js deleted file mode 100644 index b4c6ea93..00000000 --- a/samples/generated/v1beta1/prediction_service.raw_predict.js +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(endpoint) { - // [START aiplatform_v1beta1_generated_PredictionService_RawPredict_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Endpoint requested to serve the prediction. - * Format: - * `projects/{project}/locations/{location}/endpoints/{endpoint}` - */ - // const endpoint = 'abc123' - /** - * The prediction input. Supports HTTP headers and arbitrary data payload. - * A DeployedModel google.cloud.aiplatform.v1beta1.DeployedModel may have an upper limit on the number of instances it - * supports per request. When this limit it is exceeded for an AutoML model, - * the RawPredict google.cloud.aiplatform.v1beta1.PredictionService.RawPredict method returns an error. - * When this limit is exceeded for a custom-trained model, the behavior varies - * depending on the model. - * You can specify the schema for each instance in the - * predict_schemata.instance_schema_uri google.cloud.aiplatform.v1beta1.PredictSchemata.instance_schema_uri - * field when you create a Model google.cloud.aiplatform.v1beta1.Model. This schema applies when you deploy the - * `Model` as a `DeployedModel` to an Endpoint google.cloud.aiplatform.v1beta1.Endpoint and use the `RawPredict` - * method. - */ - // const httpBody = {} - - // Imports the Aiplatform library - const {PredictionServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new PredictionServiceClient(); - - async function callRawPredict() { - // Construct request - const request = { - endpoint, - }; - - // Run request - const response = await aiplatformClient.rawPredict(request); - console.log(response); - } - - callRawPredict(); - // [END aiplatform_v1beta1_generated_PredictionService_RawPredict_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/snippet_metadata.google.cloud.aiplatform.v1beta1.json b/samples/generated/v1beta1/snippet_metadata.google.cloud.aiplatform.v1beta1.json deleted file mode 100644 index 180f2829..00000000 --- a/samples/generated/v1beta1/snippet_metadata.google.cloud.aiplatform.v1beta1.json +++ /dev/null @@ -1,9307 +0,0 @@ -{ - "clientLibrary": { - "name": "nodejs-aiplatform", - "version": "2.3.0", - "language": "TYPESCRIPT", - "apis": [ - { - "id": "google.cloud.aiplatform.v1beta1", - "version": "v1beta1" - } - ] - }, - "snippets": [ - { - "regionTag": "aiplatform_v1beta1_generated_DatasetService_CreateDataset_async", - "title": "DatasetService createDataset Sample", - "origin": "API_DEFINITION", - "description": " Creates a Dataset.", - "canonical": true, - "file": "dataset_service.create_dataset.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 60, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateDataset", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.CreateDataset", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "dataset", - "type": ".google.cloud.aiplatform.v1beta1.Dataset" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetServiceClient" - }, - "method": { - "shortName": "CreateDataset", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.CreateDataset", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_DatasetService_GetDataset_async", - "title": "DatasetService getDataset Sample", - "origin": "API_DEFINITION", - "description": " Gets a Dataset.", - "canonical": true, - "file": "dataset_service.get_dataset.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 57, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetDataset", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.GetDataset", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Dataset", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetServiceClient" - }, - "method": { - "shortName": "GetDataset", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.GetDataset", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_DatasetService_UpdateDataset_async", - "title": "DatasetService updateDataset Sample", - "origin": "API_DEFINITION", - "description": " Updates a Dataset.", - "canonical": true, - "file": "dataset_service.update_dataset.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 63, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateDataset", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.UpdateDataset", - "async": true, - "parameters": [ - { - "name": "dataset", - "type": ".google.cloud.aiplatform.v1beta1.Dataset" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Dataset", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetServiceClient" - }, - "method": { - "shortName": "UpdateDataset", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.UpdateDataset", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_DatasetService_ListDatasets_async", - "title": "DatasetService listDatasets Sample", - "origin": "API_DEFINITION", - "description": " Lists Datasets in a Location.", - "canonical": true, - "file": "dataset_service.list_datasets.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 91, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListDatasets", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ListDatasets", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListDatasetsResponse", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetServiceClient" - }, - "method": { - "shortName": "ListDatasets", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ListDatasets", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_DatasetService_DeleteDataset_async", - "title": "DatasetService deleteDataset Sample", - "origin": "API_DEFINITION", - "description": " Deletes a Dataset.", - "canonical": true, - "file": "dataset_service.delete_dataset.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteDataset", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.DeleteDataset", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetServiceClient" - }, - "method": { - "shortName": "DeleteDataset", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.DeleteDataset", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_DatasetService_ImportData_async", - "title": "DatasetService importData Sample", - "origin": "API_DEFINITION", - "description": " Imports data into a Dataset.", - "canonical": true, - "file": "dataset_service.import_data.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 62, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ImportData", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ImportData", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "import_configs", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetServiceClient" - }, - "method": { - "shortName": "ImportData", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ImportData", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_DatasetService_ExportData_async", - "title": "DatasetService exportData Sample", - "origin": "API_DEFINITION", - "description": " Exports data from a Dataset.", - "canonical": true, - "file": "dataset_service.export_data.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 61, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ExportData", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ExportData", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "export_config", - "type": ".google.cloud.aiplatform.v1beta1.ExportDataConfig" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetServiceClient" - }, - "method": { - "shortName": "ExportData", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ExportData", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_DatasetService_ListDataItems_async", - "title": "DatasetService listDataItems Sample", - "origin": "API_DEFINITION", - "description": " Lists DataItems in a Dataset.", - "canonical": true, - "file": "dataset_service.list_data_items.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 78, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListDataItems", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ListDataItems", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListDataItemsResponse", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetServiceClient" - }, - "method": { - "shortName": "ListDataItems", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ListDataItems", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_DatasetService_ListSavedQueries_async", - "title": "DatasetService listSavedQueries Sample", - "origin": "API_DEFINITION", - "description": " Lists SavedQueries in a Dataset.", - "canonical": true, - "file": "dataset_service.list_saved_queries.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 78, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListSavedQueries", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ListSavedQueries", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListSavedQueriesResponse", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetServiceClient" - }, - "method": { - "shortName": "ListSavedQueries", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ListSavedQueries", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_DatasetService_GetAnnotationSpec_async", - "title": "DatasetService getAnnotationSpec Sample", - "origin": "API_DEFINITION", - "description": " Gets an AnnotationSpec.", - "canonical": true, - "file": "dataset_service.get_annotation_spec.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetAnnotationSpec", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.GetAnnotationSpec", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.AnnotationSpec", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetServiceClient" - }, - "method": { - "shortName": "GetAnnotationSpec", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.GetAnnotationSpec", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_DatasetService_ListAnnotations_async", - "title": "DatasetService listAnnotations Sample", - "origin": "API_DEFINITION", - "description": " Lists Annotations belongs to a dataitem", - "canonical": true, - "file": "dataset_service.list_annotations.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 78, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListAnnotations", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ListAnnotations", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListAnnotationsResponse", - "client": { - "shortName": "DatasetServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetServiceClient" - }, - "method": { - "shortName": "ListAnnotations", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.ListAnnotations", - "service": { - "shortName": "DatasetService", - "fullName": "google.cloud.aiplatform.v1beta1.DatasetService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_DeploymentResourcePoolService_CreateDeploymentResourcePool_async", - "title": "DatasetService createDeploymentResourcePool Sample", - "origin": "API_DEFINITION", - "description": " Create a DeploymentResourcePool.", - "canonical": true, - "file": "deployment_resource_pool_service.create_deployment_resource_pool.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 69, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateDeploymentResourcePool", - "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService.CreateDeploymentResourcePool", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "deployment_resource_pool", - "type": ".google.cloud.aiplatform.v1beta1.DeploymentResourcePool" - }, - { - "name": "deployment_resource_pool_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "DeploymentResourcePoolServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolServiceClient" - }, - "method": { - "shortName": "CreateDeploymentResourcePool", - "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService.CreateDeploymentResourcePool", - "service": { - "shortName": "DeploymentResourcePoolService", - "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_DeploymentResourcePoolService_GetDeploymentResourcePool_async", - "title": "DatasetService getDeploymentResourcePool Sample", - "origin": "API_DEFINITION", - "description": " Get a DeploymentResourcePool.", - "canonical": true, - "file": "deployment_resource_pool_service.get_deployment_resource_pool.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetDeploymentResourcePool", - "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService.GetDeploymentResourcePool", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.DeploymentResourcePool", - "client": { - "shortName": "DeploymentResourcePoolServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolServiceClient" - }, - "method": { - "shortName": "GetDeploymentResourcePool", - "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService.GetDeploymentResourcePool", - "service": { - "shortName": "DeploymentResourcePoolService", - "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_DeploymentResourcePoolService_ListDeploymentResourcePools_async", - "title": "DatasetService listDeploymentResourcePools Sample", - "origin": "API_DEFINITION", - "description": " List DeploymentResourcePools in a location.", - "canonical": true, - "file": "deployment_resource_pool_service.list_deployment_resource_pools.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 69, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListDeploymentResourcePools", - "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService.ListDeploymentResourcePools", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListDeploymentResourcePoolsResponse", - "client": { - "shortName": "DeploymentResourcePoolServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolServiceClient" - }, - "method": { - "shortName": "ListDeploymentResourcePools", - "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService.ListDeploymentResourcePools", - "service": { - "shortName": "DeploymentResourcePoolService", - "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_DeploymentResourcePoolService_DeleteDeploymentResourcePool_async", - "title": "DatasetService deleteDeploymentResourcePool Sample", - "origin": "API_DEFINITION", - "description": " Delete a DeploymentResourcePool.", - "canonical": true, - "file": "deployment_resource_pool_service.delete_deployment_resource_pool.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteDeploymentResourcePool", - "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService.DeleteDeploymentResourcePool", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "DeploymentResourcePoolServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolServiceClient" - }, - "method": { - "shortName": "DeleteDeploymentResourcePool", - "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService.DeleteDeploymentResourcePool", - "service": { - "shortName": "DeploymentResourcePoolService", - "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_DeploymentResourcePoolService_QueryDeployedModels_async", - "title": "DatasetService queryDeployedModels Sample", - "origin": "API_DEFINITION", - "description": " List DeployedModels that have been deployed on this DeploymentResourcePool.", - "canonical": true, - "file": "deployment_resource_pool_service.query_deployed_models.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 70, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "QueryDeployedModels", - "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService.QueryDeployedModels", - "async": true, - "parameters": [ - { - "name": "deployment_resource_pool", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.QueryDeployedModelsResponse", - "client": { - "shortName": "DeploymentResourcePoolServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolServiceClient" - }, - "method": { - "shortName": "QueryDeployedModels", - "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService.QueryDeployedModels", - "service": { - "shortName": "DeploymentResourcePoolService", - "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_EndpointService_CreateEndpoint_async", - "title": "DatasetService createEndpoint Sample", - "origin": "API_DEFINITION", - "description": " Creates an Endpoint.", - "canonical": true, - "file": "endpoint_service.create_endpoint.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 71, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.CreateEndpoint", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "endpoint", - "type": ".google.cloud.aiplatform.v1beta1.Endpoint" - }, - { - "name": "endpoint_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "EndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointServiceClient" - }, - "method": { - "shortName": "CreateEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.CreateEndpoint", - "service": { - "shortName": "EndpointService", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_EndpointService_GetEndpoint_async", - "title": "DatasetService getEndpoint Sample", - "origin": "API_DEFINITION", - "description": " Gets an Endpoint.", - "canonical": true, - "file": "endpoint_service.get_endpoint.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.GetEndpoint", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Endpoint", - "client": { - "shortName": "EndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointServiceClient" - }, - "method": { - "shortName": "GetEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.GetEndpoint", - "service": { - "shortName": "EndpointService", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_EndpointService_ListEndpoints_async", - "title": "DatasetService listEndpoints Sample", - "origin": "API_DEFINITION", - "description": " Lists Endpoints in a Location.", - "canonical": true, - "file": "endpoint_service.list_endpoints.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 87, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListEndpoints", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.ListEndpoints", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListEndpointsResponse", - "client": { - "shortName": "EndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointServiceClient" - }, - "method": { - "shortName": "ListEndpoints", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.ListEndpoints", - "service": { - "shortName": "EndpointService", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_EndpointService_UpdateEndpoint_async", - "title": "DatasetService updateEndpoint Sample", - "origin": "API_DEFINITION", - "description": " Updates an Endpoint.", - "canonical": true, - "file": "endpoint_service.update_endpoint.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 58, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.UpdateEndpoint", - "async": true, - "parameters": [ - { - "name": "endpoint", - "type": ".google.cloud.aiplatform.v1beta1.Endpoint" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Endpoint", - "client": { - "shortName": "EndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointServiceClient" - }, - "method": { - "shortName": "UpdateEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.UpdateEndpoint", - "service": { - "shortName": "EndpointService", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_EndpointService_DeleteEndpoint_async", - "title": "DatasetService deleteEndpoint Sample", - "origin": "API_DEFINITION", - "description": " Deletes an Endpoint.", - "canonical": true, - "file": "endpoint_service.delete_endpoint.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.DeleteEndpoint", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "EndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointServiceClient" - }, - "method": { - "shortName": "DeleteEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.DeleteEndpoint", - "service": { - "shortName": "EndpointService", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_EndpointService_DeployModel_async", - "title": "DatasetService deployModel Sample", - "origin": "API_DEFINITION", - "description": " Deploys a Model into this Endpoint, creating a DeployedModel within it.", - "canonical": true, - "file": "endpoint_service.deploy_model.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 76, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeployModel", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.DeployModel", - "async": true, - "parameters": [ - { - "name": "endpoint", - "type": "TYPE_STRING" - }, - { - "name": "deployed_model", - "type": ".google.cloud.aiplatform.v1beta1.DeployedModel" - }, - { - "name": "traffic_split", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "EndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointServiceClient" - }, - "method": { - "shortName": "DeployModel", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.DeployModel", - "service": { - "shortName": "EndpointService", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_EndpointService_UndeployModel_async", - "title": "DatasetService undeployModel Sample", - "origin": "API_DEFINITION", - "description": " Undeploys a Model from an Endpoint, removing a DeployedModel from it, and freeing all resources it's using.", - "canonical": true, - "file": "endpoint_service.undeploy_model.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 71, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UndeployModel", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.UndeployModel", - "async": true, - "parameters": [ - { - "name": "endpoint", - "type": "TYPE_STRING" - }, - { - "name": "deployed_model_id", - "type": "TYPE_STRING" - }, - { - "name": "traffic_split", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "EndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointServiceClient" - }, - "method": { - "shortName": "UndeployModel", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService.UndeployModel", - "service": { - "shortName": "EndpointService", - "fullName": "google.cloud.aiplatform.v1beta1.EndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreOnlineServingService_ReadFeatureValues_async", - "title": "DatasetService readFeatureValues Sample", - "origin": "API_DEFINITION", - "description": " Reads Feature values of a specific entity of an EntityType. For reading feature values of multiple entities of an EntityType, please use StreamingReadFeatureValues.", - "canonical": true, - "file": "featurestore_online_serving_service.read_feature_values.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 69, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.ReadFeatureValues", - "async": true, - "parameters": [ - { - "name": "entity_type", - "type": "TYPE_STRING" - }, - { - "name": "entity_id", - "type": "TYPE_STRING" - }, - { - "name": "feature_selector", - "type": ".google.cloud.aiplatform.v1beta1.FeatureSelector" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ReadFeatureValuesResponse", - "client": { - "shortName": "FeaturestoreOnlineServingServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingServiceClient" - }, - "method": { - "shortName": "ReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.ReadFeatureValues", - "service": { - "shortName": "FeaturestoreOnlineServingService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreOnlineServingService_StreamingReadFeatureValues_async", - "title": "DatasetService streamingReadFeatureValues Sample", - "origin": "API_DEFINITION", - "description": " Reads Feature values for multiple entities. Depending on their size, data for different entities may be broken up across multiple responses.", - "canonical": true, - "file": "featurestore_online_serving_service.streaming_read_feature_values.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 73, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "StreamingReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.StreamingReadFeatureValues", - "async": true, - "parameters": [ - { - "name": "entity_type", - "type": "TYPE_STRING" - }, - { - "name": "entity_ids", - "type": "TYPE_STRING[]" - }, - { - "name": "feature_selector", - "type": ".google.cloud.aiplatform.v1beta1.FeatureSelector" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ReadFeatureValuesResponse", - "client": { - "shortName": "FeaturestoreOnlineServingServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingServiceClient" - }, - "method": { - "shortName": "StreamingReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.StreamingReadFeatureValues", - "service": { - "shortName": "FeaturestoreOnlineServingService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreOnlineServingService_WriteFeatureValues_async", - "title": "DatasetService writeFeatureValues Sample", - "origin": "API_DEFINITION", - "description": " Writes Feature values of one or more entities of an EntityType. The Feature values are merged into existing entities if any. The Feature values to be written must have timestamp within the online storage retention.", - "canonical": true, - "file": "featurestore_online_serving_service.write_feature_values.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 63, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "WriteFeatureValues", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.WriteFeatureValues", - "async": true, - "parameters": [ - { - "name": "entity_type", - "type": "TYPE_STRING" - }, - { - "name": "payloads", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.WriteFeatureValuesResponse", - "client": { - "shortName": "FeaturestoreOnlineServingServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingServiceClient" - }, - "method": { - "shortName": "WriteFeatureValues", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.WriteFeatureValues", - "service": { - "shortName": "FeaturestoreOnlineServingService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_CreateFeaturestore_async", - "title": "DatasetService createFeaturestore Sample", - "origin": "API_DEFINITION", - "description": " Creates a new Featurestore in a given project and location.", - "canonical": true, - "file": "featurestore_service.create_featurestore.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 70, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateFeaturestore", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateFeaturestore", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "featurestore", - "type": ".google.cloud.aiplatform.v1beta1.Featurestore" - }, - { - "name": "featurestore_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "CreateFeaturestore", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateFeaturestore", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_GetFeaturestore_async", - "title": "DatasetService getFeaturestore Sample", - "origin": "API_DEFINITION", - "description": " Gets details of a single Featurestore.", - "canonical": true, - "file": "featurestore_service.get_featurestore.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 53, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetFeaturestore", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.GetFeaturestore", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Featurestore", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "GetFeaturestore", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.GetFeaturestore", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_ListFeaturestores_async", - "title": "DatasetService listFeaturestores Sample", - "origin": "API_DEFINITION", - "description": " Lists Featurestores in a given project and location.", - "canonical": true, - "file": "featurestore_service.list_featurestores.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 105, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListFeaturestores", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeaturestores", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListFeaturestoresResponse", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "ListFeaturestores", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeaturestores", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_UpdateFeaturestore_async", - "title": "DatasetService updateFeaturestore Sample", - "origin": "API_DEFINITION", - "description": " Updates the parameters of a single Featurestore.", - "canonical": true, - "file": "featurestore_service.update_featurestore.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 71, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateFeaturestore", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateFeaturestore", - "async": true, - "parameters": [ - { - "name": "featurestore", - "type": ".google.cloud.aiplatform.v1beta1.Featurestore" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "UpdateFeaturestore", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateFeaturestore", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_DeleteFeaturestore_async", - "title": "DatasetService deleteFeaturestore Sample", - "origin": "API_DEFINITION", - "description": " Deletes a single Featurestore. The Featurestore must not contain any EntityTypes or `force` must be set to true for the request to succeed.", - "canonical": true, - "file": "featurestore_service.delete_featurestore.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 62, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteFeaturestore", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeaturestore", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "force", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "DeleteFeaturestore", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeaturestore", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_CreateEntityType_async", - "title": "DatasetService createEntityType Sample", - "origin": "API_DEFINITION", - "description": " Creates a new EntityType in a given Featurestore.", - "canonical": true, - "file": "featurestore_service.create_entity_type.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 69, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateEntityType", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateEntityType", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "entity_type", - "type": ".google.cloud.aiplatform.v1beta1.EntityType" - }, - { - "name": "entity_type_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "CreateEntityType", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateEntityType", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_GetEntityType_async", - "title": "DatasetService getEntityType Sample", - "origin": "API_DEFINITION", - "description": " Gets details of a single EntityType.", - "canonical": true, - "file": "featurestore_service.get_entity_type.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetEntityType", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.GetEntityType", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.EntityType", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "GetEntityType", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.GetEntityType", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_ListEntityTypes_async", - "title": "DatasetService listEntityTypes Sample", - "origin": "API_DEFINITION", - "description": " Lists EntityTypes in a given Featurestore.", - "canonical": true, - "file": "featurestore_service.list_entity_types.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 104, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListEntityTypes", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.ListEntityTypes", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListEntityTypesResponse", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "ListEntityTypes", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.ListEntityTypes", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_UpdateEntityType_async", - "title": "DatasetService updateEntityType Sample", - "origin": "API_DEFINITION", - "description": " Updates the parameters of a single EntityType.", - "canonical": true, - "file": "featurestore_service.update_entity_type.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 76, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateEntityType", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateEntityType", - "async": true, - "parameters": [ - { - "name": "entity_type", - "type": ".google.cloud.aiplatform.v1beta1.EntityType" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.EntityType", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "UpdateEntityType", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateEntityType", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_DeleteEntityType_async", - "title": "DatasetService deleteEntityType Sample", - "origin": "API_DEFINITION", - "description": " Deletes a single EntityType. The EntityType must not have any Features or `force` must be set to true for the request to succeed.", - "canonical": true, - "file": "featurestore_service.delete_entity_type.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 61, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteEntityType", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteEntityType", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "force", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "DeleteEntityType", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteEntityType", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_CreateFeature_async", - "title": "DatasetService createFeature Sample", - "origin": "API_DEFINITION", - "description": " Creates a new Feature in a given EntityType.", - "canonical": true, - "file": "featurestore_service.create_feature.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 70, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateFeature", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateFeature", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "feature", - "type": ".google.cloud.aiplatform.v1beta1.Feature" - }, - { - "name": "feature_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "CreateFeature", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateFeature", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_BatchCreateFeatures_async", - "title": "DatasetService batchCreateFeatures Sample", - "origin": "API_DEFINITION", - "description": " Creates a batch of Features in a given EntityType.", - "canonical": true, - "file": "featurestore_service.batch_create_features.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 64, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "BatchCreateFeatures", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchCreateFeatures", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "requests", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "BatchCreateFeatures", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchCreateFeatures", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_GetFeature_async", - "title": "DatasetService getFeature Sample", - "origin": "API_DEFINITION", - "description": " Gets details of a single Feature.", - "canonical": true, - "file": "featurestore_service.get_feature.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetFeature", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.GetFeature", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Feature", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "GetFeature", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.GetFeature", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_ListFeatures_async", - "title": "DatasetService listFeatures Sample", - "origin": "API_DEFINITION", - "description": " Lists Features in a given EntityType.", - "canonical": true, - "file": "featurestore_service.list_features.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 114, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListFeatures", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "latest_stats_count", - "type": "TYPE_INT32" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListFeaturesResponse", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "ListFeatures", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_UpdateFeature_async", - "title": "DatasetService updateFeature Sample", - "origin": "API_DEFINITION", - "description": " Updates the parameters of a single Feature.", - "canonical": true, - "file": "featurestore_service.update_feature.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 70, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateFeature", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateFeature", - "async": true, - "parameters": [ - { - "name": "feature", - "type": ".google.cloud.aiplatform.v1beta1.Feature" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Feature", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "UpdateFeature", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateFeature", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_DeleteFeature_async", - "title": "DatasetService deleteFeature Sample", - "origin": "API_DEFINITION", - "description": " Deletes a single Feature.", - "canonical": true, - "file": "featurestore_service.delete_feature.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteFeature", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeature", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "DeleteFeature", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeature", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_ImportFeatureValues_async", - "title": "DatasetService importFeatureValues Sample", - "origin": "API_DEFINITION", - "description": " Imports Feature values into the Featurestore from a source storage. The progress of the import is tracked by the returned operation. The imported features are guaranteed to be visible to subsequent read operations after the operation is marked as successfully done. If an import operation fails, the Feature values returned from reads and exports may be inconsistent. If consistency is required, the caller must retry the same import request again and wait till the new operation returned is marked as successfully done. There are also scenarios where the caller can cause inconsistency. - Source data for import contains multiple distinct Feature values for the same entity ID and timestamp. - Source is modified during an import. This includes adding, updating, or removing source data and/or metadata. Examples of updating metadata include but are not limited to changing storage location, storage class, or retention policy. - Online serving cluster is under-provisioned.", - "canonical": true, - "file": "featurestore_service.import_feature_values.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 106, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ImportFeatureValues", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.ImportFeatureValues", - "async": true, - "parameters": [ - { - "name": "avro_source", - "type": ".google.cloud.aiplatform.v1beta1.AvroSource" - }, - { - "name": "bigquery_source", - "type": ".google.cloud.aiplatform.v1beta1.BigQuerySource" - }, - { - "name": "csv_source", - "type": ".google.cloud.aiplatform.v1beta1.CsvSource" - }, - { - "name": "feature_time_field", - "type": "TYPE_STRING" - }, - { - "name": "feature_time", - "type": ".google.protobuf.Timestamp" - }, - { - "name": "entity_type", - "type": "TYPE_STRING" - }, - { - "name": "entity_id_field", - "type": "TYPE_STRING" - }, - { - "name": "feature_specs", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "disable_online_serving", - "type": "TYPE_BOOL" - }, - { - "name": "worker_count", - "type": "TYPE_INT32" - }, - { - "name": "disable_ingestion_analysis", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "ImportFeatureValues", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.ImportFeatureValues", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_BatchReadFeatureValues_async", - "title": "DatasetService batchReadFeatureValues Sample", - "origin": "API_DEFINITION", - "description": " Batch reads Feature values from a Featurestore. This API enables batch reading Feature values, where each read instance in the batch may read Feature values of entities from one or more EntityTypes. Point-in-time correctness is guaranteed for Feature values of each read instance as of each instance's read timestamp.", - "canonical": true, - "file": "featurestore_service.batch_read_feature_values.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 103, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "BatchReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchReadFeatureValues", - "async": true, - "parameters": [ - { - "name": "csv_read_instances", - "type": ".google.cloud.aiplatform.v1beta1.CsvSource" - }, - { - "name": "bigquery_read_instances", - "type": ".google.cloud.aiplatform.v1beta1.BigQuerySource" - }, - { - "name": "featurestore", - "type": "TYPE_STRING" - }, - { - "name": "destination", - "type": ".google.cloud.aiplatform.v1beta1.FeatureValueDestination" - }, - { - "name": "pass_through_fields", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "entity_type_specs", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "BatchReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchReadFeatureValues", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_ExportFeatureValues_async", - "title": "DatasetService exportFeatureValues Sample", - "origin": "API_DEFINITION", - "description": " Exports Feature values from all the entities of a target EntityType.", - "canonical": true, - "file": "featurestore_service.export_feature_values.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 80, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ExportFeatureValues", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.ExportFeatureValues", - "async": true, - "parameters": [ - { - "name": "snapshot_export", - "type": ".google.cloud.aiplatform.v1beta1.ExportFeatureValuesRequest.SnapshotExport" - }, - { - "name": "full_export", - "type": ".google.cloud.aiplatform.v1beta1.ExportFeatureValuesRequest.FullExport" - }, - { - "name": "entity_type", - "type": "TYPE_STRING" - }, - { - "name": "destination", - "type": ".google.cloud.aiplatform.v1beta1.FeatureValueDestination" - }, - { - "name": "feature_selector", - "type": ".google.cloud.aiplatform.v1beta1.FeatureSelector" - }, - { - "name": "settings", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "ExportFeatureValues", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.ExportFeatureValues", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_DeleteFeatureValues_async", - "title": "DatasetService deleteFeatureValues Sample", - "origin": "API_DEFINITION", - "description": " Delete Feature values from Featurestore. The progress of the deletion is tracked by the returned operation. The deleted feature values are guaranteed to be invisible to subsequent read operations after the operation is marked as successfully done. If a delete feature values operation fails, the feature values returned from reads and exports may be inconsistent. If consistency is required, the caller must retry the same delete request again and wait till the new operation returned is marked as successfully done.", - "canonical": true, - "file": "featurestore_service.delete_feature_values.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 65, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteFeatureValues", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeatureValues", - "async": true, - "parameters": [ - { - "name": "select_entity", - "type": ".google.cloud.aiplatform.v1beta1.DeleteFeatureValuesRequest.SelectEntity" - }, - { - "name": "select_time_range_and_feature", - "type": ".google.cloud.aiplatform.v1beta1.DeleteFeatureValuesRequest.SelectTimeRangeAndFeature" - }, - { - "name": "entity_type", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "DeleteFeatureValues", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeatureValues", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_FeaturestoreService_SearchFeatures_async", - "title": "DatasetService searchFeatures Sample", - "origin": "API_DEFINITION", - "description": " Searches Features matching a query in a given project.", - "canonical": true, - "file": "featurestore_service.search_features.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 124, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "SearchFeatures", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.SearchFeatures", - "async": true, - "parameters": [ - { - "name": "location", - "type": "TYPE_STRING" - }, - { - "name": "query", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.SearchFeaturesResponse", - "client": { - "shortName": "FeaturestoreServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreServiceClient" - }, - "method": { - "shortName": "SearchFeatures", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService.SearchFeatures", - "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1beta1.FeaturestoreService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_IndexEndpointService_CreateIndexEndpoint_async", - "title": "DatasetService createIndexEndpoint Sample", - "origin": "API_DEFINITION", - "description": " Creates an IndexEndpoint.", - "canonical": true, - "file": "index_endpoint_service.create_index_endpoint.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 60, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.CreateIndexEndpoint", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "index_endpoint", - "type": ".google.cloud.aiplatform.v1beta1.IndexEndpoint" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "IndexEndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointServiceClient" - }, - "method": { - "shortName": "CreateIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.CreateIndexEndpoint", - "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_IndexEndpointService_GetIndexEndpoint_async", - "title": "DatasetService getIndexEndpoint Sample", - "origin": "API_DEFINITION", - "description": " Gets an IndexEndpoint.", - "canonical": true, - "file": "index_endpoint_service.get_index_endpoint.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.GetIndexEndpoint", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.IndexEndpoint", - "client": { - "shortName": "IndexEndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointServiceClient" - }, - "method": { - "shortName": "GetIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.GetIndexEndpoint", - "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_IndexEndpointService_ListIndexEndpoints_async", - "title": "DatasetService listIndexEndpoints Sample", - "origin": "API_DEFINITION", - "description": " Lists IndexEndpoints in a Location.", - "canonical": true, - "file": "index_endpoint_service.list_index_endpoints.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 90, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListIndexEndpoints", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.ListIndexEndpoints", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListIndexEndpointsResponse", - "client": { - "shortName": "IndexEndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointServiceClient" - }, - "method": { - "shortName": "ListIndexEndpoints", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.ListIndexEndpoints", - "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_IndexEndpointService_UpdateIndexEndpoint_async", - "title": "DatasetService updateIndexEndpoint Sample", - "origin": "API_DEFINITION", - "description": " Updates an IndexEndpoint.", - "canonical": true, - "file": "index_endpoint_service.update_index_endpoint.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 58, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.UpdateIndexEndpoint", - "async": true, - "parameters": [ - { - "name": "index_endpoint", - "type": ".google.cloud.aiplatform.v1beta1.IndexEndpoint" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.IndexEndpoint", - "client": { - "shortName": "IndexEndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointServiceClient" - }, - "method": { - "shortName": "UpdateIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.UpdateIndexEndpoint", - "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_IndexEndpointService_DeleteIndexEndpoint_async", - "title": "DatasetService deleteIndexEndpoint Sample", - "origin": "API_DEFINITION", - "description": " Deletes an IndexEndpoint.", - "canonical": true, - "file": "index_endpoint_service.delete_index_endpoint.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.DeleteIndexEndpoint", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "IndexEndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointServiceClient" - }, - "method": { - "shortName": "DeleteIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.DeleteIndexEndpoint", - "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_IndexEndpointService_DeployIndex_async", - "title": "DatasetService deployIndex Sample", - "origin": "API_DEFINITION", - "description": " Deploys an Index into this IndexEndpoint, creating a DeployedIndex within it. Only non-empty Indexes can be deployed.", - "canonical": true, - "file": "index_endpoint_service.deploy_index.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 61, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeployIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.DeployIndex", - "async": true, - "parameters": [ - { - "name": "index_endpoint", - "type": "TYPE_STRING" - }, - { - "name": "deployed_index", - "type": ".google.cloud.aiplatform.v1beta1.DeployedIndex" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "IndexEndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointServiceClient" - }, - "method": { - "shortName": "DeployIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.DeployIndex", - "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_IndexEndpointService_UndeployIndex_async", - "title": "DatasetService undeployIndex Sample", - "origin": "API_DEFINITION", - "description": " Undeploys an Index from an IndexEndpoint, removing a DeployedIndex from it, and freeing all resources it's using.", - "canonical": true, - "file": "index_endpoint_service.undeploy_index.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 61, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UndeployIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.UndeployIndex", - "async": true, - "parameters": [ - { - "name": "index_endpoint", - "type": "TYPE_STRING" - }, - { - "name": "deployed_index_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "IndexEndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointServiceClient" - }, - "method": { - "shortName": "UndeployIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.UndeployIndex", - "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_IndexEndpointService_MutateDeployedIndex_async", - "title": "DatasetService mutateDeployedIndex Sample", - "origin": "API_DEFINITION", - "description": " Update an existing DeployedIndex under an IndexEndpoint.", - "canonical": true, - "file": "index_endpoint_service.mutate_deployed_index.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 63, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "MutateDeployedIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.MutateDeployedIndex", - "async": true, - "parameters": [ - { - "name": "index_endpoint", - "type": "TYPE_STRING" - }, - { - "name": "deployed_index", - "type": ".google.cloud.aiplatform.v1beta1.DeployedIndex" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "IndexEndpointServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointServiceClient" - }, - "method": { - "shortName": "MutateDeployedIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService.MutateDeployedIndex", - "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_IndexService_CreateIndex_async", - "title": "DatasetService createIndex Sample", - "origin": "API_DEFINITION", - "description": " Creates an Index.", - "canonical": true, - "file": "index_service.create_index.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 60, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService.CreateIndex", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "index", - "type": ".google.cloud.aiplatform.v1beta1.Index" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "IndexServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.IndexServiceClient" - }, - "method": { - "shortName": "CreateIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService.CreateIndex", - "service": { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_IndexService_GetIndex_async", - "title": "DatasetService getIndex Sample", - "origin": "API_DEFINITION", - "description": " Gets an Index.", - "canonical": true, - "file": "index_service.get_index.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService.GetIndex", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Index", - "client": { - "shortName": "IndexServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.IndexServiceClient" - }, - "method": { - "shortName": "GetIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService.GetIndex", - "service": { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_IndexService_ListIndexes_async", - "title": "DatasetService listIndexes Sample", - "origin": "API_DEFINITION", - "description": " Lists Indexes in a Location.", - "canonical": true, - "file": "index_service.list_indexes.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 75, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListIndexes", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService.ListIndexes", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListIndexesResponse", - "client": { - "shortName": "IndexServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.IndexServiceClient" - }, - "method": { - "shortName": "ListIndexes", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService.ListIndexes", - "service": { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_IndexService_UpdateIndex_async", - "title": "DatasetService updateIndex Sample", - "origin": "API_DEFINITION", - "description": " Updates an Index.", - "canonical": true, - "file": "index_service.update_index.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService.UpdateIndex", - "async": true, - "parameters": [ - { - "name": "index", - "type": ".google.cloud.aiplatform.v1beta1.Index" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "IndexServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.IndexServiceClient" - }, - "method": { - "shortName": "UpdateIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService.UpdateIndex", - "service": { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_IndexService_DeleteIndex_async", - "title": "DatasetService deleteIndex Sample", - "origin": "API_DEFINITION", - "description": " Deletes an Index. An Index can only be deleted when all its [DeployedIndexes][google.cloud.aiplatform.v1beta1.Index.deployed_indexes] had been undeployed.", - "canonical": true, - "file": "index_service.delete_index.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService.DeleteIndex", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "IndexServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.IndexServiceClient" - }, - "method": { - "shortName": "DeleteIndex", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService.DeleteIndex", - "service": { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_IndexService_UpsertDatapoints_async", - "title": "DatasetService upsertDatapoints Sample", - "origin": "API_DEFINITION", - "description": " Add/update Datapoints into an Index.", - "canonical": true, - "file": "index_service.upsert_datapoints.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpsertDatapoints", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService.UpsertDatapoints", - "async": true, - "parameters": [ - { - "name": "index", - "type": "TYPE_STRING" - }, - { - "name": "datapoints", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.UpsertDatapointsResponse", - "client": { - "shortName": "IndexServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.IndexServiceClient" - }, - "method": { - "shortName": "UpsertDatapoints", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService.UpsertDatapoints", - "service": { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_IndexService_RemoveDatapoints_async", - "title": "DatasetService removeDatapoints Sample", - "origin": "API_DEFINITION", - "description": " Remove Datapoints from an Index.", - "canonical": true, - "file": "index_service.remove_datapoints.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "RemoveDatapoints", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService.RemoveDatapoints", - "async": true, - "parameters": [ - { - "name": "index", - "type": "TYPE_STRING" - }, - { - "name": "datapoint_ids", - "type": "TYPE_STRING[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.RemoveDatapointsResponse", - "client": { - "shortName": "IndexServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.IndexServiceClient" - }, - "method": { - "shortName": "RemoveDatapoints", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService.RemoveDatapoints", - "service": { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1beta1.IndexService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_CreateCustomJob_async", - "title": "DatasetService createCustomJob Sample", - "origin": "API_DEFINITION", - "description": " Creates a CustomJob. A created CustomJob right away will be attempted to be run.", - "canonical": true, - "file": "job_service.create_custom_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateCustomJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CreateCustomJob", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "custom_job", - "type": ".google.cloud.aiplatform.v1beta1.CustomJob" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.CustomJob", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "CreateCustomJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CreateCustomJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_GetCustomJob_async", - "title": "DatasetService getCustomJob Sample", - "origin": "API_DEFINITION", - "description": " Gets a CustomJob.", - "canonical": true, - "file": "job_service.get_custom_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetCustomJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.GetCustomJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.CustomJob", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "GetCustomJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.GetCustomJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_ListCustomJobs_async", - "title": "DatasetService listCustomJobs Sample", - "origin": "API_DEFINITION", - "description": " Lists CustomJobs in a Location.", - "canonical": true, - "file": "job_service.list_custom_jobs.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 90, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListCustomJobs", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.ListCustomJobs", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListCustomJobsResponse", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "ListCustomJobs", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.ListCustomJobs", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_DeleteCustomJob_async", - "title": "DatasetService deleteCustomJob Sample", - "origin": "API_DEFINITION", - "description": " Deletes a CustomJob.", - "canonical": true, - "file": "job_service.delete_custom_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteCustomJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.DeleteCustomJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "DeleteCustomJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.DeleteCustomJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_CancelCustomJob_async", - "title": "DatasetService cancelCustomJob Sample", - "origin": "API_DEFINITION", - "description": " Cancels a CustomJob. Starts asynchronous cancellation on the CustomJob. The server makes a best effort to cancel the job, but success is not guaranteed. Clients can use [JobService.GetCustomJob][google.cloud.aiplatform.v1beta1.JobService.GetCustomJob] or other methods to check whether the cancellation succeeded or whether the job completed despite cancellation. On successful cancellation, the CustomJob is not deleted; instead it becomes a job with a [CustomJob.error][google.cloud.aiplatform.v1beta1.CustomJob.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to `Code.CANCELLED`, and [CustomJob.state][google.cloud.aiplatform.v1beta1.CustomJob.state] is set to `CANCELLED`.", - "canonical": true, - "file": "job_service.cancel_custom_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CancelCustomJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CancelCustomJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.protobuf.Empty", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "CancelCustomJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CancelCustomJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_CreateDataLabelingJob_async", - "title": "DatasetService createDataLabelingJob Sample", - "origin": "API_DEFINITION", - "description": " Creates a DataLabelingJob.", - "canonical": true, - "file": "job_service.create_data_labeling_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CreateDataLabelingJob", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "data_labeling_job", - "type": ".google.cloud.aiplatform.v1beta1.DataLabelingJob" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.DataLabelingJob", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "CreateDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CreateDataLabelingJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_GetDataLabelingJob_async", - "title": "DatasetService getDataLabelingJob Sample", - "origin": "API_DEFINITION", - "description": " Gets a DataLabelingJob.", - "canonical": true, - "file": "job_service.get_data_labeling_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.GetDataLabelingJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.DataLabelingJob", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "GetDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.GetDataLabelingJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_ListDataLabelingJobs_async", - "title": "DatasetService listDataLabelingJobs Sample", - "origin": "API_DEFINITION", - "description": " Lists DataLabelingJobs in a Location.", - "canonical": true, - "file": "job_service.list_data_labeling_jobs.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 96, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListDataLabelingJobs", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.ListDataLabelingJobs", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListDataLabelingJobsResponse", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "ListDataLabelingJobs", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.ListDataLabelingJobs", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_DeleteDataLabelingJob_async", - "title": "DatasetService deleteDataLabelingJob Sample", - "origin": "API_DEFINITION", - "description": " Deletes a DataLabelingJob.", - "canonical": true, - "file": "job_service.delete_data_labeling_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.DeleteDataLabelingJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "DeleteDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.DeleteDataLabelingJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_CancelDataLabelingJob_async", - "title": "DatasetService cancelDataLabelingJob Sample", - "origin": "API_DEFINITION", - "description": " Cancels a DataLabelingJob. Success of cancellation is not guaranteed.", - "canonical": true, - "file": "job_service.cancel_data_labeling_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CancelDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CancelDataLabelingJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.protobuf.Empty", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "CancelDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CancelDataLabelingJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_CreateHyperparameterTuningJob_async", - "title": "DatasetService createHyperparameterTuningJob Sample", - "origin": "API_DEFINITION", - "description": " Creates a HyperparameterTuningJob", - "canonical": true, - "file": "job_service.create_hyperparameter_tuning_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CreateHyperparameterTuningJob", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "hyperparameter_tuning_job", - "type": ".google.cloud.aiplatform.v1beta1.HyperparameterTuningJob" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.HyperparameterTuningJob", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "CreateHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CreateHyperparameterTuningJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_GetHyperparameterTuningJob_async", - "title": "DatasetService getHyperparameterTuningJob Sample", - "origin": "API_DEFINITION", - "description": " Gets a HyperparameterTuningJob", - "canonical": true, - "file": "job_service.get_hyperparameter_tuning_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.GetHyperparameterTuningJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.HyperparameterTuningJob", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "GetHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.GetHyperparameterTuningJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_ListHyperparameterTuningJobs_async", - "title": "DatasetService listHyperparameterTuningJobs Sample", - "origin": "API_DEFINITION", - "description": " Lists HyperparameterTuningJobs in a Location.", - "canonical": true, - "file": "job_service.list_hyperparameter_tuning_jobs.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 90, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListHyperparameterTuningJobs", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.ListHyperparameterTuningJobs", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListHyperparameterTuningJobsResponse", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "ListHyperparameterTuningJobs", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.ListHyperparameterTuningJobs", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_DeleteHyperparameterTuningJob_async", - "title": "DatasetService deleteHyperparameterTuningJob Sample", - "origin": "API_DEFINITION", - "description": " Deletes a HyperparameterTuningJob.", - "canonical": true, - "file": "job_service.delete_hyperparameter_tuning_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.DeleteHyperparameterTuningJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "DeleteHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.DeleteHyperparameterTuningJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_CancelHyperparameterTuningJob_async", - "title": "DatasetService cancelHyperparameterTuningJob Sample", - "origin": "API_DEFINITION", - "description": " Cancels a HyperparameterTuningJob. Starts asynchronous cancellation on the HyperparameterTuningJob. The server makes a best effort to cancel the job, but success is not guaranteed. Clients can use [JobService.GetHyperparameterTuningJob][google.cloud.aiplatform.v1beta1.JobService.GetHyperparameterTuningJob] or other methods to check whether the cancellation succeeded or whether the job completed despite cancellation. On successful cancellation, the HyperparameterTuningJob is not deleted; instead it becomes a job with a [HyperparameterTuningJob.error][google.cloud.aiplatform.v1beta1.HyperparameterTuningJob.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to `Code.CANCELLED`, and [HyperparameterTuningJob.state][google.cloud.aiplatform.v1beta1.HyperparameterTuningJob.state] is set to `CANCELLED`.", - "canonical": true, - "file": "job_service.cancel_hyperparameter_tuning_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CancelHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CancelHyperparameterTuningJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.protobuf.Empty", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "CancelHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CancelHyperparameterTuningJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_CreateBatchPredictionJob_async", - "title": "DatasetService createBatchPredictionJob Sample", - "origin": "API_DEFINITION", - "description": " Creates a BatchPredictionJob. A BatchPredictionJob once created will right away be attempted to start.", - "canonical": true, - "file": "job_service.create_batch_prediction_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CreateBatchPredictionJob", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "batch_prediction_job", - "type": ".google.cloud.aiplatform.v1beta1.BatchPredictionJob" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.BatchPredictionJob", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "CreateBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CreateBatchPredictionJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_GetBatchPredictionJob_async", - "title": "DatasetService getBatchPredictionJob Sample", - "origin": "API_DEFINITION", - "description": " Gets a BatchPredictionJob", - "canonical": true, - "file": "job_service.get_batch_prediction_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.GetBatchPredictionJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.BatchPredictionJob", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "GetBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.GetBatchPredictionJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_ListBatchPredictionJobs_async", - "title": "DatasetService listBatchPredictionJobs Sample", - "origin": "API_DEFINITION", - "description": " Lists BatchPredictionJobs in a Location.", - "canonical": true, - "file": "job_service.list_batch_prediction_jobs.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 91, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListBatchPredictionJobs", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.ListBatchPredictionJobs", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListBatchPredictionJobsResponse", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "ListBatchPredictionJobs", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.ListBatchPredictionJobs", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_DeleteBatchPredictionJob_async", - "title": "DatasetService deleteBatchPredictionJob Sample", - "origin": "API_DEFINITION", - "description": " Deletes a BatchPredictionJob. Can only be called on jobs that already finished.", - "canonical": true, - "file": "job_service.delete_batch_prediction_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.DeleteBatchPredictionJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "DeleteBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.DeleteBatchPredictionJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_CancelBatchPredictionJob_async", - "title": "DatasetService cancelBatchPredictionJob Sample", - "origin": "API_DEFINITION", - "description": " Cancels a BatchPredictionJob. Starts asynchronous cancellation on the BatchPredictionJob. The server makes the best effort to cancel the job, but success is not guaranteed. Clients can use [JobService.GetBatchPredictionJob][google.cloud.aiplatform.v1beta1.JobService.GetBatchPredictionJob] or other methods to check whether the cancellation succeeded or whether the job completed despite cancellation. On a successful cancellation, the BatchPredictionJob is not deleted;instead its [BatchPredictionJob.state][google.cloud.aiplatform.v1beta1.BatchPredictionJob.state] is set to `CANCELLED`. Any files already outputted by the job are not deleted.", - "canonical": true, - "file": "job_service.cancel_batch_prediction_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CancelBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CancelBatchPredictionJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.protobuf.Empty", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "CancelBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CancelBatchPredictionJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_CreateModelDeploymentMonitoringJob_async", - "title": "DatasetService createModelDeploymentMonitoringJob Sample", - "origin": "API_DEFINITION", - "description": " Creates a ModelDeploymentMonitoringJob. It will run periodically on a configured interval.", - "canonical": true, - "file": "job_service.create_model_deployment_monitoring_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CreateModelDeploymentMonitoringJob", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "model_deployment_monitoring_job", - "type": ".google.cloud.aiplatform.v1beta1.ModelDeploymentMonitoringJob" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ModelDeploymentMonitoringJob", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "CreateModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.CreateModelDeploymentMonitoringJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_SearchModelDeploymentMonitoringStatsAnomalies_async", - "title": "DatasetService searchModelDeploymentMonitoringStatsAnomalies Sample", - "origin": "API_DEFINITION", - "description": " Searches Model Monitoring Statistics generated within a given time window.", - "canonical": true, - "file": "job_service.search_model_deployment_monitoring_stats_anomalies.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 95, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "SearchModelDeploymentMonitoringStatsAnomalies", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.SearchModelDeploymentMonitoringStatsAnomalies", - "async": true, - "parameters": [ - { - "name": "model_deployment_monitoring_job", - "type": "TYPE_STRING" - }, - { - "name": "deployed_model_id", - "type": "TYPE_STRING" - }, - { - "name": "feature_display_name", - "type": "TYPE_STRING" - }, - { - "name": "objectives", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "start_time", - "type": ".google.protobuf.Timestamp" - }, - { - "name": "end_time", - "type": ".google.protobuf.Timestamp" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.SearchModelDeploymentMonitoringStatsAnomaliesResponse", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "SearchModelDeploymentMonitoringStatsAnomalies", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.SearchModelDeploymentMonitoringStatsAnomalies", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_GetModelDeploymentMonitoringJob_async", - "title": "DatasetService getModelDeploymentMonitoringJob Sample", - "origin": "API_DEFINITION", - "description": " Gets a ModelDeploymentMonitoringJob.", - "canonical": true, - "file": "job_service.get_model_deployment_monitoring_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.GetModelDeploymentMonitoringJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ModelDeploymentMonitoringJob", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "GetModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.GetModelDeploymentMonitoringJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_ListModelDeploymentMonitoringJobs_async", - "title": "DatasetService listModelDeploymentMonitoringJobs Sample", - "origin": "API_DEFINITION", - "description": " Lists ModelDeploymentMonitoringJobs in a Location.", - "canonical": true, - "file": "job_service.list_model_deployment_monitoring_jobs.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 87, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListModelDeploymentMonitoringJobs", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.ListModelDeploymentMonitoringJobs", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListModelDeploymentMonitoringJobsResponse", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "ListModelDeploymentMonitoringJobs", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.ListModelDeploymentMonitoringJobs", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_UpdateModelDeploymentMonitoringJob_async", - "title": "DatasetService updateModelDeploymentMonitoringJob Sample", - "origin": "API_DEFINITION", - "description": " Updates a ModelDeploymentMonitoringJob.", - "canonical": true, - "file": "job_service.update_model_deployment_monitoring_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 84, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.UpdateModelDeploymentMonitoringJob", - "async": true, - "parameters": [ - { - "name": "model_deployment_monitoring_job", - "type": ".google.cloud.aiplatform.v1beta1.ModelDeploymentMonitoringJob" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "UpdateModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.UpdateModelDeploymentMonitoringJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_DeleteModelDeploymentMonitoringJob_async", - "title": "DatasetService deleteModelDeploymentMonitoringJob Sample", - "origin": "API_DEFINITION", - "description": " Deletes a ModelDeploymentMonitoringJob.", - "canonical": true, - "file": "job_service.delete_model_deployment_monitoring_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.DeleteModelDeploymentMonitoringJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "DeleteModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.DeleteModelDeploymentMonitoringJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_PauseModelDeploymentMonitoringJob_async", - "title": "DatasetService pauseModelDeploymentMonitoringJob Sample", - "origin": "API_DEFINITION", - "description": " Pauses a ModelDeploymentMonitoringJob. If the job is running, the server makes a best effort to cancel the job. Will mark [ModelDeploymentMonitoringJob.state][google.cloud.aiplatform.v1beta1.ModelDeploymentMonitoringJob.state] to 'PAUSED'.", - "canonical": true, - "file": "job_service.pause_model_deployment_monitoring_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "PauseModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.PauseModelDeploymentMonitoringJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.protobuf.Empty", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "PauseModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.PauseModelDeploymentMonitoringJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_JobService_ResumeModelDeploymentMonitoringJob_async", - "title": "DatasetService resumeModelDeploymentMonitoringJob Sample", - "origin": "API_DEFINITION", - "description": " Resumes a paused ModelDeploymentMonitoringJob. It will start to run from next scheduled time. A deleted ModelDeploymentMonitoringJob can't be resumed.", - "canonical": true, - "file": "job_service.resume_model_deployment_monitoring_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ResumeModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.ResumeModelDeploymentMonitoringJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.protobuf.Empty", - "client": { - "shortName": "JobServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.JobServiceClient" - }, - "method": { - "shortName": "ResumeModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1beta1.JobService.ResumeModelDeploymentMonitoringJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1beta1.JobService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_CreateMetadataStore_async", - "title": "DatasetService createMetadataStore Sample", - "origin": "API_DEFINITION", - "description": " Initializes a MetadataStore, including allocation of resources.", - "canonical": true, - "file": "metadata_service.create_metadata_store.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 72, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateMetadataStore", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.CreateMetadataStore", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "metadata_store", - "type": ".google.cloud.aiplatform.v1beta1.MetadataStore" - }, - { - "name": "metadata_store_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "CreateMetadataStore", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.CreateMetadataStore", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_GetMetadataStore_async", - "title": "DatasetService getMetadataStore Sample", - "origin": "API_DEFINITION", - "description": " Retrieves a specific MetadataStore.", - "canonical": true, - "file": "metadata_service.get_metadata_store.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetMetadataStore", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.GetMetadataStore", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.MetadataStore", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "GetMetadataStore", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.GetMetadataStore", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_ListMetadataStores_async", - "title": "DatasetService listMetadataStores Sample", - "origin": "API_DEFINITION", - "description": " Lists MetadataStores for a Location.", - "canonical": true, - "file": "metadata_service.list_metadata_stores.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 72, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListMetadataStores", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.ListMetadataStores", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListMetadataStoresResponse", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "ListMetadataStores", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.ListMetadataStores", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_DeleteMetadataStore_async", - "title": "DatasetService deleteMetadataStore Sample", - "origin": "API_DEFINITION", - "description": " Deletes a single MetadataStore and all its child resources (Artifacts, Executions, and Contexts).", - "canonical": true, - "file": "metadata_service.delete_metadata_store.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteMetadataStore", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.DeleteMetadataStore", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "force", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "DeleteMetadataStore", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.DeleteMetadataStore", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_CreateArtifact_async", - "title": "DatasetService createArtifact Sample", - "origin": "API_DEFINITION", - "description": " Creates an Artifact associated with a MetadataStore.", - "canonical": true, - "file": "metadata_service.create_artifact.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 71, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateArtifact", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.CreateArtifact", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "artifact", - "type": ".google.cloud.aiplatform.v1beta1.Artifact" - }, - { - "name": "artifact_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Artifact", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "CreateArtifact", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.CreateArtifact", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_GetArtifact_async", - "title": "DatasetService getArtifact Sample", - "origin": "API_DEFINITION", - "description": " Retrieves a specific Artifact.", - "canonical": true, - "file": "metadata_service.get_artifact.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetArtifact", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.GetArtifact", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Artifact", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "GetArtifact", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.GetArtifact", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_ListArtifacts_async", - "title": "DatasetService listArtifacts Sample", - "origin": "API_DEFINITION", - "description": " Lists Artifacts in the MetadataStore.", - "canonical": true, - "file": "metadata_service.list_artifacts.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 106, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListArtifacts", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.ListArtifacts", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListArtifactsResponse", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "ListArtifacts", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.ListArtifacts", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_UpdateArtifact_async", - "title": "DatasetService updateArtifact Sample", - "origin": "API_DEFINITION", - "description": " Updates a stored Artifact.", - "canonical": true, - "file": "metadata_service.update_artifact.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 67, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateArtifact", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.UpdateArtifact", - "async": true, - "parameters": [ - { - "name": "artifact", - "type": ".google.cloud.aiplatform.v1beta1.Artifact" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "allow_missing", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Artifact", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "UpdateArtifact", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.UpdateArtifact", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_DeleteArtifact_async", - "title": "DatasetService deleteArtifact Sample", - "origin": "API_DEFINITION", - "description": " Deletes an Artifact.", - "canonical": true, - "file": "metadata_service.delete_artifact.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 62, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteArtifact", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.DeleteArtifact", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "etag", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "DeleteArtifact", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.DeleteArtifact", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_PurgeArtifacts_async", - "title": "DatasetService purgeArtifacts Sample", - "origin": "API_DEFINITION", - "description": " Purges Artifacts.", - "canonical": true, - "file": "metadata_service.purge_artifacts.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 68, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "PurgeArtifacts", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.PurgeArtifacts", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "force", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "PurgeArtifacts", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.PurgeArtifacts", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_CreateContext_async", - "title": "DatasetService createContext Sample", - "origin": "API_DEFINITION", - "description": " Creates a Context associated with a MetadataStore.", - "canonical": true, - "file": "metadata_service.create_context.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 71, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateContext", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.CreateContext", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "context", - "type": ".google.cloud.aiplatform.v1beta1.Context" - }, - { - "name": "context_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Context", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "CreateContext", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.CreateContext", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_GetContext_async", - "title": "DatasetService getContext Sample", - "origin": "API_DEFINITION", - "description": " Retrieves a specific Context.", - "canonical": true, - "file": "metadata_service.get_context.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetContext", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.GetContext", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Context", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "GetContext", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.GetContext", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_ListContexts_async", - "title": "DatasetService listContexts Sample", - "origin": "API_DEFINITION", - "description": " Lists Contexts on the MetadataStore.", - "canonical": true, - "file": "metadata_service.list_contexts.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 109, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListContexts", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.ListContexts", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListContextsResponse", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "ListContexts", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.ListContexts", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_UpdateContext_async", - "title": "DatasetService updateContext Sample", - "origin": "API_DEFINITION", - "description": " Updates a stored Context.", - "canonical": true, - "file": "metadata_service.update_context.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 67, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateContext", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.UpdateContext", - "async": true, - "parameters": [ - { - "name": "context", - "type": ".google.cloud.aiplatform.v1beta1.Context" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "allow_missing", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Context", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "UpdateContext", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.UpdateContext", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_DeleteContext_async", - "title": "DatasetService deleteContext Sample", - "origin": "API_DEFINITION", - "description": " Deletes a stored Context.", - "canonical": true, - "file": "metadata_service.delete_context.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 67, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteContext", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.DeleteContext", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "force", - "type": "TYPE_BOOL" - }, - { - "name": "etag", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "DeleteContext", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.DeleteContext", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_PurgeContexts_async", - "title": "DatasetService purgeContexts Sample", - "origin": "API_DEFINITION", - "description": " Purges Contexts.", - "canonical": true, - "file": "metadata_service.purge_contexts.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 68, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "PurgeContexts", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.PurgeContexts", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "force", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "PurgeContexts", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.PurgeContexts", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_AddContextArtifactsAndExecutions_async", - "title": "DatasetService addContextArtifactsAndExecutions Sample", - "origin": "API_DEFINITION", - "description": " Adds a set of Artifacts and Executions to a Context. If any of the Artifacts or Executions have already been added to a Context, they are simply skipped.", - "canonical": true, - "file": "metadata_service.add_context_artifacts_and_executions.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 69, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "AddContextArtifactsAndExecutions", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.AddContextArtifactsAndExecutions", - "async": true, - "parameters": [ - { - "name": "context", - "type": "TYPE_STRING" - }, - { - "name": "artifacts", - "type": "TYPE_STRING[]" - }, - { - "name": "executions", - "type": "TYPE_STRING[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.AddContextArtifactsAndExecutionsResponse", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "AddContextArtifactsAndExecutions", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.AddContextArtifactsAndExecutions", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_AddContextChildren_async", - "title": "DatasetService addContextChildren Sample", - "origin": "API_DEFINITION", - "description": " Adds a set of Contexts as children to a parent Context. If any of the child Contexts have already been added to the parent Context, they are simply skipped. If this call would create a cycle or cause any Context to have more than 10 parents, the request will fail with an INVALID_ARGUMENT error.", - "canonical": true, - "file": "metadata_service.add_context_children.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "AddContextChildren", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.AddContextChildren", - "async": true, - "parameters": [ - { - "name": "context", - "type": "TYPE_STRING" - }, - { - "name": "child_contexts", - "type": "TYPE_STRING[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.AddContextChildrenResponse", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "AddContextChildren", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.AddContextChildren", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_RemoveContextChildren_async", - "title": "DatasetService removeContextChildren Sample", - "origin": "API_DEFINITION", - "description": " Remove a set of children contexts from a parent Context. If any of the child Contexts were NOT added to the parent Context, they are simply skipped.", - "canonical": true, - "file": "metadata_service.remove_context_children.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "RemoveContextChildren", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.RemoveContextChildren", - "async": true, - "parameters": [ - { - "name": "context", - "type": "TYPE_STRING" - }, - { - "name": "child_contexts", - "type": "TYPE_STRING[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.RemoveContextChildrenResponse", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "RemoveContextChildren", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.RemoveContextChildren", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_QueryContextLineageSubgraph_async", - "title": "DatasetService queryContextLineageSubgraph Sample", - "origin": "API_DEFINITION", - "description": " Retrieves Artifacts and Executions within the specified Context, connected by Event edges and returned as a LineageSubgraph.", - "canonical": true, - "file": "metadata_service.query_context_lineage_subgraph.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "QueryContextLineageSubgraph", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.QueryContextLineageSubgraph", - "async": true, - "parameters": [ - { - "name": "context", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.LineageSubgraph", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "QueryContextLineageSubgraph", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.QueryContextLineageSubgraph", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_CreateExecution_async", - "title": "DatasetService createExecution Sample", - "origin": "API_DEFINITION", - "description": " Creates an Execution associated with a MetadataStore.", - "canonical": true, - "file": "metadata_service.create_execution.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 72, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateExecution", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.CreateExecution", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "execution", - "type": ".google.cloud.aiplatform.v1beta1.Execution" - }, - { - "name": "execution_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Execution", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "CreateExecution", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.CreateExecution", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_GetExecution_async", - "title": "DatasetService getExecution Sample", - "origin": "API_DEFINITION", - "description": " Retrieves a specific Execution.", - "canonical": true, - "file": "metadata_service.get_execution.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetExecution", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.GetExecution", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Execution", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "GetExecution", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.GetExecution", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_ListExecutions_async", - "title": "DatasetService listExecutions Sample", - "origin": "API_DEFINITION", - "description": " Lists Executions in the MetadataStore.", - "canonical": true, - "file": "metadata_service.list_executions.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 106, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListExecutions", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.ListExecutions", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListExecutionsResponse", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "ListExecutions", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.ListExecutions", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_UpdateExecution_async", - "title": "DatasetService updateExecution Sample", - "origin": "API_DEFINITION", - "description": " Updates a stored Execution.", - "canonical": true, - "file": "metadata_service.update_execution.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 67, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateExecution", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.UpdateExecution", - "async": true, - "parameters": [ - { - "name": "execution", - "type": ".google.cloud.aiplatform.v1beta1.Execution" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "allow_missing", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Execution", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "UpdateExecution", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.UpdateExecution", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_DeleteExecution_async", - "title": "DatasetService deleteExecution Sample", - "origin": "API_DEFINITION", - "description": " Deletes an Execution.", - "canonical": true, - "file": "metadata_service.delete_execution.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 62, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteExecution", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.DeleteExecution", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "etag", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "DeleteExecution", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.DeleteExecution", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_PurgeExecutions_async", - "title": "DatasetService purgeExecutions Sample", - "origin": "API_DEFINITION", - "description": " Purges Executions.", - "canonical": true, - "file": "metadata_service.purge_executions.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 68, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "PurgeExecutions", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.PurgeExecutions", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "force", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "PurgeExecutions", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.PurgeExecutions", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_AddExecutionEvents_async", - "title": "DatasetService addExecutionEvents Sample", - "origin": "API_DEFINITION", - "description": " Adds Events to the specified Execution. An Event indicates whether an Artifact was used as an input or output for an Execution. If an Event already exists between the Execution and the Artifact, the Event is skipped.", - "canonical": true, - "file": "metadata_service.add_execution_events.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 60, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "AddExecutionEvents", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.AddExecutionEvents", - "async": true, - "parameters": [ - { - "name": "execution", - "type": "TYPE_STRING" - }, - { - "name": "events", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.AddExecutionEventsResponse", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "AddExecutionEvents", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.AddExecutionEvents", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_QueryExecutionInputsAndOutputs_async", - "title": "DatasetService queryExecutionInputsAndOutputs Sample", - "origin": "API_DEFINITION", - "description": " Obtains the set of input and output Artifacts for this Execution, in the form of LineageSubgraph that also contains the Execution and connecting Events.", - "canonical": true, - "file": "metadata_service.query_execution_inputs_and_outputs.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "QueryExecutionInputsAndOutputs", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.QueryExecutionInputsAndOutputs", - "async": true, - "parameters": [ - { - "name": "execution", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.LineageSubgraph", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "QueryExecutionInputsAndOutputs", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.QueryExecutionInputsAndOutputs", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_CreateMetadataSchema_async", - "title": "DatasetService createMetadataSchema Sample", - "origin": "API_DEFINITION", - "description": " Creates a MetadataSchema.", - "canonical": true, - "file": "metadata_service.create_metadata_schema.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 72, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateMetadataSchema", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.CreateMetadataSchema", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "metadata_schema", - "type": ".google.cloud.aiplatform.v1beta1.MetadataSchema" - }, - { - "name": "metadata_schema_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.MetadataSchema", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "CreateMetadataSchema", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.CreateMetadataSchema", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_GetMetadataSchema_async", - "title": "DatasetService getMetadataSchema Sample", - "origin": "API_DEFINITION", - "description": " Retrieves a specific MetadataSchema.", - "canonical": true, - "file": "metadata_service.get_metadata_schema.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetMetadataSchema", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.GetMetadataSchema", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.MetadataSchema", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "GetMetadataSchema", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.GetMetadataSchema", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_ListMetadataSchemas_async", - "title": "DatasetService listMetadataSchemas Sample", - "origin": "API_DEFINITION", - "description": " Lists MetadataSchemas.", - "canonical": true, - "file": "metadata_service.list_metadata_schemas.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 76, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListMetadataSchemas", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.ListMetadataSchemas", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListMetadataSchemasResponse", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "ListMetadataSchemas", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.ListMetadataSchemas", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MetadataService_QueryArtifactLineageSubgraph_async", - "title": "DatasetService queryArtifactLineageSubgraph Sample", - "origin": "API_DEFINITION", - "description": " Retrieves lineage of an Artifact represented through Artifacts and Executions connected by Event edges and returned as a LineageSubgraph.", - "canonical": true, - "file": "metadata_service.query_artifact_lineage_subgraph.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 88, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "QueryArtifactLineageSubgraph", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.QueryArtifactLineageSubgraph", - "async": true, - "parameters": [ - { - "name": "artifact", - "type": "TYPE_STRING" - }, - { - "name": "max_hops", - "type": "TYPE_INT32" - }, - { - "name": "filter", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.LineageSubgraph", - "client": { - "shortName": "MetadataServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataServiceClient" - }, - "method": { - "shortName": "QueryArtifactLineageSubgraph", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService.QueryArtifactLineageSubgraph", - "service": { - "shortName": "MetadataService", - "fullName": "google.cloud.aiplatform.v1beta1.MetadataService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MigrationService_SearchMigratableResources_async", - "title": "DatasetService searchMigratableResources Sample", - "origin": "API_DEFINITION", - "description": " Searches all of the resources in automl.googleapis.com, datalabeling.googleapis.com and ml.googleapis.com that can be migrated to Vertex AI's given location.", - "canonical": true, - "file": "migration_service.search_migratable_resources.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 82, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "SearchMigratableResources", - "fullName": "google.cloud.aiplatform.v1beta1.MigrationService.SearchMigratableResources", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.SearchMigratableResourcesResponse", - "client": { - "shortName": "MigrationServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MigrationServiceClient" - }, - "method": { - "shortName": "SearchMigratableResources", - "fullName": "google.cloud.aiplatform.v1beta1.MigrationService.SearchMigratableResources", - "service": { - "shortName": "MigrationService", - "fullName": "google.cloud.aiplatform.v1beta1.MigrationService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_MigrationService_BatchMigrateResources_async", - "title": "DatasetService batchMigrateResources Sample", - "origin": "API_DEFINITION", - "description": " Batch migrates resources from ml.googleapis.com, automl.googleapis.com, and datalabeling.googleapis.com to Vertex AI.", - "canonical": true, - "file": "migration_service.batch_migrate_resources.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 62, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "BatchMigrateResources", - "fullName": "google.cloud.aiplatform.v1beta1.MigrationService.BatchMigrateResources", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "migrate_resource_requests", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "MigrationServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.MigrationServiceClient" - }, - "method": { - "shortName": "BatchMigrateResources", - "fullName": "google.cloud.aiplatform.v1beta1.MigrationService.BatchMigrateResources", - "service": { - "shortName": "MigrationService", - "fullName": "google.cloud.aiplatform.v1beta1.MigrationService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_ModelService_UploadModel_async", - "title": "DatasetService uploadModel Sample", - "origin": "API_DEFINITION", - "description": " Uploads a Model artifact into Vertex AI.", - "canonical": true, - "file": "model_service.upload_model.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 72, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UploadModel", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.UploadModel", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "parent_model", - "type": "TYPE_STRING" - }, - { - "name": "model_id", - "type": "TYPE_STRING" - }, - { - "name": "model", - "type": ".google.cloud.aiplatform.v1beta1.Model" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.ModelServiceClient" - }, - "method": { - "shortName": "UploadModel", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.UploadModel", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_ModelService_GetModel_async", - "title": "DatasetService getModel Sample", - "origin": "API_DEFINITION", - "description": " Gets a Model.", - "canonical": true, - "file": "model_service.get_model.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 63, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetModel", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.GetModel", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Model", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.ModelServiceClient" - }, - "method": { - "shortName": "GetModel", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.GetModel", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_ModelService_ListModels_async", - "title": "DatasetService listModels Sample", - "origin": "API_DEFINITION", - "description": " Lists Models in a Location.", - "canonical": true, - "file": "model_service.list_models.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 87, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListModels", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ListModels", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListModelsResponse", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.ModelServiceClient" - }, - "method": { - "shortName": "ListModels", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ListModels", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_ModelService_ListModelVersions_async", - "title": "DatasetService listModelVersions Sample", - "origin": "API_DEFINITION", - "description": " Lists versions of the specified model.", - "canonical": true, - "file": "model_service.list_model_versions.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 81, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListModelVersions", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ListModelVersions", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListModelVersionsResponse", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.ModelServiceClient" - }, - "method": { - "shortName": "ListModelVersions", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ListModelVersions", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_ModelService_UpdateModel_async", - "title": "DatasetService updateModel Sample", - "origin": "API_DEFINITION", - "description": " Updates a Model.", - "canonical": true, - "file": "model_service.update_model.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 76, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateModel", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.UpdateModel", - "async": true, - "parameters": [ - { - "name": "model", - "type": ".google.cloud.aiplatform.v1beta1.Model" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Model", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.ModelServiceClient" - }, - "method": { - "shortName": "UpdateModel", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.UpdateModel", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_ModelService_UpdateExplanationDataset_async", - "title": "DatasetService updateExplanationDataset Sample", - "origin": "API_DEFINITION", - "description": " Incrementally update the dataset used for an examples model.", - "canonical": true, - "file": "model_service.update_explanation_dataset.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateExplanationDataset", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.UpdateExplanationDataset", - "async": true, - "parameters": [ - { - "name": "model", - "type": "TYPE_STRING" - }, - { - "name": "examples", - "type": ".google.cloud.aiplatform.v1beta1.Examples" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.ModelServiceClient" - }, - "method": { - "shortName": "UpdateExplanationDataset", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.UpdateExplanationDataset", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_ModelService_DeleteModel_async", - "title": "DatasetService deleteModel Sample", - "origin": "API_DEFINITION", - "description": " Deletes a Model. A model cannot be deleted if any [Endpoint][google.cloud.aiplatform.v1beta1.Endpoint] resource has a [DeployedModel][google.cloud.aiplatform.v1beta1.DeployedModel] based on the model in its [deployed_models][google.cloud.aiplatform.v1beta1.Endpoint.deployed_models] field.", - "canonical": true, - "file": "model_service.delete_model.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteModel", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.DeleteModel", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.ModelServiceClient" - }, - "method": { - "shortName": "DeleteModel", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.DeleteModel", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_ModelService_DeleteModelVersion_async", - "title": "DatasetService deleteModelVersion Sample", - "origin": "API_DEFINITION", - "description": " Deletes a Model version. Model version can only be deleted if there are no [DeployedModels][] created from it. Deleting the only version in the Model is not allowed. Use [DeleteModel][google.cloud.aiplatform.v1beta1.ModelService.DeleteModel] for deleting the Model instead.", - "canonical": true, - "file": "model_service.delete_model_version.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteModelVersion", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.DeleteModelVersion", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.ModelServiceClient" - }, - "method": { - "shortName": "DeleteModelVersion", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.DeleteModelVersion", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_ModelService_MergeVersionAliases_async", - "title": "DatasetService mergeVersionAliases Sample", - "origin": "API_DEFINITION", - "description": " Merges a set of aliases for a Model version.", - "canonical": true, - "file": "model_service.merge_version_aliases.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 70, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "MergeVersionAliases", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.MergeVersionAliases", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "version_aliases", - "type": "TYPE_STRING[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Model", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.ModelServiceClient" - }, - "method": { - "shortName": "MergeVersionAliases", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.MergeVersionAliases", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_ModelService_ExportModel_async", - "title": "DatasetService exportModel Sample", - "origin": "API_DEFINITION", - "description": " Exports a trained, exportable Model to a location specified by the user. A Model is considered to be exportable if it has at least one [supported export format][google.cloud.aiplatform.v1beta1.Model.supported_export_formats].", - "canonical": true, - "file": "model_service.export_model.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 61, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ExportModel", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ExportModel", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "output_config", - "type": ".google.cloud.aiplatform.v1beta1.ExportModelRequest.OutputConfig" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.ModelServiceClient" - }, - "method": { - "shortName": "ExportModel", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ExportModel", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_ModelService_ImportModelEvaluation_async", - "title": "DatasetService importModelEvaluation Sample", - "origin": "API_DEFINITION", - "description": " Imports an externally generated ModelEvaluation.", - "canonical": true, - "file": "model_service.import_model_evaluation.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ImportModelEvaluation", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ImportModelEvaluation", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "model_evaluation", - "type": ".google.cloud.aiplatform.v1beta1.ModelEvaluation" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ModelEvaluation", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.ModelServiceClient" - }, - "method": { - "shortName": "ImportModelEvaluation", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ImportModelEvaluation", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_ModelService_BatchImportModelEvaluationSlices_async", - "title": "DatasetService batchImportModelEvaluationSlices Sample", - "origin": "API_DEFINITION", - "description": " Imports a list of externally generated ModelEvaluationSlice.", - "canonical": true, - "file": "model_service.batch_import_model_evaluation_slices.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 60, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "BatchImportModelEvaluationSlices", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.BatchImportModelEvaluationSlices", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "model_evaluation_slices", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.BatchImportModelEvaluationSlicesResponse", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.ModelServiceClient" - }, - "method": { - "shortName": "BatchImportModelEvaluationSlices", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.BatchImportModelEvaluationSlices", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_ModelService_GetModelEvaluation_async", - "title": "DatasetService getModelEvaluation Sample", - "origin": "API_DEFINITION", - "description": " Gets a ModelEvaluation.", - "canonical": true, - "file": "model_service.get_model_evaluation.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetModelEvaluation", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.GetModelEvaluation", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ModelEvaluation", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.ModelServiceClient" - }, - "method": { - "shortName": "GetModelEvaluation", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.GetModelEvaluation", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_ModelService_ListModelEvaluations_async", - "title": "DatasetService listModelEvaluations Sample", - "origin": "API_DEFINITION", - "description": " Lists ModelEvaluations in a Model.", - "canonical": true, - "file": "model_service.list_model_evaluations.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 75, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListModelEvaluations", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ListModelEvaluations", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListModelEvaluationsResponse", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.ModelServiceClient" - }, - "method": { - "shortName": "ListModelEvaluations", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ListModelEvaluations", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_ModelService_GetModelEvaluationSlice_async", - "title": "DatasetService getModelEvaluationSlice Sample", - "origin": "API_DEFINITION", - "description": " Gets a ModelEvaluationSlice.", - "canonical": true, - "file": "model_service.get_model_evaluation_slice.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetModelEvaluationSlice", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.GetModelEvaluationSlice", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ModelEvaluationSlice", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.ModelServiceClient" - }, - "method": { - "shortName": "GetModelEvaluationSlice", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.GetModelEvaluationSlice", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_ModelService_ListModelEvaluationSlices_async", - "title": "DatasetService listModelEvaluationSlices Sample", - "origin": "API_DEFINITION", - "description": " Lists ModelEvaluationSlices in a ModelEvaluation.", - "canonical": true, - "file": "model_service.list_model_evaluation_slices.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 77, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListModelEvaluationSlices", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ListModelEvaluationSlices", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListModelEvaluationSlicesResponse", - "client": { - "shortName": "ModelServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.ModelServiceClient" - }, - "method": { - "shortName": "ListModelEvaluationSlices", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService.ListModelEvaluationSlices", - "service": { - "shortName": "ModelService", - "fullName": "google.cloud.aiplatform.v1beta1.ModelService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_PipelineService_CreateTrainingPipeline_async", - "title": "DatasetService createTrainingPipeline Sample", - "origin": "API_DEFINITION", - "description": " Creates a TrainingPipeline. A created TrainingPipeline right away will be attempted to be run.", - "canonical": true, - "file": "pipeline_service.create_training_pipeline.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.CreateTrainingPipeline", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "training_pipeline", - "type": ".google.cloud.aiplatform.v1beta1.TrainingPipeline" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.TrainingPipeline", - "client": { - "shortName": "PipelineServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineServiceClient" - }, - "method": { - "shortName": "CreateTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.CreateTrainingPipeline", - "service": { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_PipelineService_GetTrainingPipeline_async", - "title": "DatasetService getTrainingPipeline Sample", - "origin": "API_DEFINITION", - "description": " Gets a TrainingPipeline.", - "canonical": true, - "file": "pipeline_service.get_training_pipeline.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.GetTrainingPipeline", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.TrainingPipeline", - "client": { - "shortName": "PipelineServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineServiceClient" - }, - "method": { - "shortName": "GetTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.GetTrainingPipeline", - "service": { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_PipelineService_ListTrainingPipelines_async", - "title": "DatasetService listTrainingPipelines Sample", - "origin": "API_DEFINITION", - "description": " Lists TrainingPipelines in a Location.", - "canonical": true, - "file": "pipeline_service.list_training_pipelines.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 90, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListTrainingPipelines", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.ListTrainingPipelines", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListTrainingPipelinesResponse", - "client": { - "shortName": "PipelineServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineServiceClient" - }, - "method": { - "shortName": "ListTrainingPipelines", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.ListTrainingPipelines", - "service": { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_PipelineService_DeleteTrainingPipeline_async", - "title": "DatasetService deleteTrainingPipeline Sample", - "origin": "API_DEFINITION", - "description": " Deletes a TrainingPipeline.", - "canonical": true, - "file": "pipeline_service.delete_training_pipeline.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.DeleteTrainingPipeline", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "PipelineServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineServiceClient" - }, - "method": { - "shortName": "DeleteTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.DeleteTrainingPipeline", - "service": { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_PipelineService_CancelTrainingPipeline_async", - "title": "DatasetService cancelTrainingPipeline Sample", - "origin": "API_DEFINITION", - "description": " Cancels a TrainingPipeline. Starts asynchronous cancellation on the TrainingPipeline. The server makes a best effort to cancel the pipeline, but success is not guaranteed. Clients can use [PipelineService.GetTrainingPipeline][google.cloud.aiplatform.v1beta1.PipelineService.GetTrainingPipeline] or other methods to check whether the cancellation succeeded or whether the pipeline completed despite cancellation. On successful cancellation, the TrainingPipeline is not deleted; instead it becomes a pipeline with a [TrainingPipeline.error][google.cloud.aiplatform.v1beta1.TrainingPipeline.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to `Code.CANCELLED`, and [TrainingPipeline.state][google.cloud.aiplatform.v1beta1.TrainingPipeline.state] is set to `CANCELLED`.", - "canonical": true, - "file": "pipeline_service.cancel_training_pipeline.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CancelTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.CancelTrainingPipeline", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.protobuf.Empty", - "client": { - "shortName": "PipelineServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineServiceClient" - }, - "method": { - "shortName": "CancelTrainingPipeline", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.CancelTrainingPipeline", - "service": { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_PipelineService_CreatePipelineJob_async", - "title": "DatasetService createPipelineJob Sample", - "origin": "API_DEFINITION", - "description": " Creates a PipelineJob. A PipelineJob will run immediately when created.", - "canonical": true, - "file": "pipeline_service.create_pipeline_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 67, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreatePipelineJob", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.CreatePipelineJob", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "pipeline_job", - "type": ".google.cloud.aiplatform.v1beta1.PipelineJob" - }, - { - "name": "pipeline_job_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.PipelineJob", - "client": { - "shortName": "PipelineServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineServiceClient" - }, - "method": { - "shortName": "CreatePipelineJob", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.CreatePipelineJob", - "service": { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_PipelineService_GetPipelineJob_async", - "title": "DatasetService getPipelineJob Sample", - "origin": "API_DEFINITION", - "description": " Gets a PipelineJob.", - "canonical": true, - "file": "pipeline_service.get_pipeline_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetPipelineJob", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.GetPipelineJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.PipelineJob", - "client": { - "shortName": "PipelineServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineServiceClient" - }, - "method": { - "shortName": "GetPipelineJob", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.GetPipelineJob", - "service": { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_PipelineService_ListPipelineJobs_async", - "title": "DatasetService listPipelineJobs Sample", - "origin": "API_DEFINITION", - "description": " Lists PipelineJobs in a Location.", - "canonical": true, - "file": "pipeline_service.list_pipeline_jobs.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 118, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListPipelineJobs", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.ListPipelineJobs", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListPipelineJobsResponse", - "client": { - "shortName": "PipelineServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineServiceClient" - }, - "method": { - "shortName": "ListPipelineJobs", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.ListPipelineJobs", - "service": { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_PipelineService_DeletePipelineJob_async", - "title": "DatasetService deletePipelineJob Sample", - "origin": "API_DEFINITION", - "description": " Deletes a PipelineJob.", - "canonical": true, - "file": "pipeline_service.delete_pipeline_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeletePipelineJob", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.DeletePipelineJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "PipelineServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineServiceClient" - }, - "method": { - "shortName": "DeletePipelineJob", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.DeletePipelineJob", - "service": { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_PipelineService_CancelPipelineJob_async", - "title": "DatasetService cancelPipelineJob Sample", - "origin": "API_DEFINITION", - "description": " Cancels a PipelineJob. Starts asynchronous cancellation on the PipelineJob. The server makes a best effort to cancel the pipeline, but success is not guaranteed. Clients can use [PipelineService.GetPipelineJob][google.cloud.aiplatform.v1beta1.PipelineService.GetPipelineJob] or other methods to check whether the cancellation succeeded or whether the pipeline completed despite cancellation. On successful cancellation, the PipelineJob is not deleted; instead it becomes a pipeline with a [PipelineJob.error][google.cloud.aiplatform.v1beta1.PipelineJob.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to `Code.CANCELLED`, and [PipelineJob.state][google.cloud.aiplatform.v1beta1.PipelineJob.state] is set to `CANCELLED`.", - "canonical": true, - "file": "pipeline_service.cancel_pipeline_job.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CancelPipelineJob", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.CancelPipelineJob", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.protobuf.Empty", - "client": { - "shortName": "PipelineServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineServiceClient" - }, - "method": { - "shortName": "CancelPipelineJob", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.CancelPipelineJob", - "service": { - "shortName": "PipelineService", - "fullName": "google.cloud.aiplatform.v1beta1.PipelineService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_PredictionService_Predict_async", - "title": "DatasetService predict Sample", - "origin": "API_DEFINITION", - "description": " Perform an online prediction.", - "canonical": true, - "file": "prediction_service.predict.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 75, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "Predict", - "fullName": "google.cloud.aiplatform.v1beta1.PredictionService.Predict", - "async": true, - "parameters": [ - { - "name": "endpoint", - "type": "TYPE_STRING" - }, - { - "name": "instances", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "parameters", - "type": ".google.protobuf.Value" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.PredictResponse", - "client": { - "shortName": "PredictionServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.PredictionServiceClient" - }, - "method": { - "shortName": "Predict", - "fullName": "google.cloud.aiplatform.v1beta1.PredictionService.Predict", - "service": { - "shortName": "PredictionService", - "fullName": "google.cloud.aiplatform.v1beta1.PredictionService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_PredictionService_RawPredict_async", - "title": "DatasetService rawPredict Sample", - "origin": "API_DEFINITION", - "description": " Perform an online prediction with an arbitrary HTTP payload. The response includes the following HTTP headers: * `X-Vertex-AI-Endpoint-Id`: ID of the [Endpoint][google.cloud.aiplatform.v1beta1.Endpoint] that served this prediction. * `X-Vertex-AI-Deployed-Model-Id`: ID of the Endpoint's [DeployedModel][google.cloud.aiplatform.v1beta1.DeployedModel] that served this prediction.", - "canonical": true, - "file": "prediction_service.raw_predict.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 69, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "RawPredict", - "fullName": "google.cloud.aiplatform.v1beta1.PredictionService.RawPredict", - "async": true, - "parameters": [ - { - "name": "endpoint", - "type": "TYPE_STRING" - }, - { - "name": "http_body", - "type": ".google.api.HttpBody" - } - ], - "resultType": ".google.api.HttpBody", - "client": { - "shortName": "PredictionServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.PredictionServiceClient" - }, - "method": { - "shortName": "RawPredict", - "fullName": "google.cloud.aiplatform.v1beta1.PredictionService.RawPredict", - "service": { - "shortName": "PredictionService", - "fullName": "google.cloud.aiplatform.v1beta1.PredictionService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_PredictionService_Explain_async", - "title": "DatasetService explain Sample", - "origin": "API_DEFINITION", - "description": " Perform an online explanation. If [deployed_model_id][google.cloud.aiplatform.v1beta1.ExplainRequest.deployed_model_id] is specified, the corresponding DeployModel must have [explanation_spec][google.cloud.aiplatform.v1beta1.DeployedModel.explanation_spec] populated. If [deployed_model_id][google.cloud.aiplatform.v1beta1.ExplainRequest.deployed_model_id] is not specified, all DeployedModels must have [explanation_spec][google.cloud.aiplatform.v1beta1.DeployedModel.explanation_spec] populated. Only deployed AutoML tabular Models have explanation_spec.", - "canonical": true, - "file": "prediction_service.explain.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 91, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "Explain", - "fullName": "google.cloud.aiplatform.v1beta1.PredictionService.Explain", - "async": true, - "parameters": [ - { - "name": "endpoint", - "type": "TYPE_STRING" - }, - { - "name": "instances", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "parameters", - "type": ".google.protobuf.Value" - }, - { - "name": "explanation_spec_override", - "type": ".google.cloud.aiplatform.v1beta1.ExplanationSpecOverride" - }, - { - "name": "deployed_model_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ExplainResponse", - "client": { - "shortName": "PredictionServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.PredictionServiceClient" - }, - "method": { - "shortName": "Explain", - "fullName": "google.cloud.aiplatform.v1beta1.PredictionService.Explain", - "service": { - "shortName": "PredictionService", - "fullName": "google.cloud.aiplatform.v1beta1.PredictionService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_SpecialistPoolService_CreateSpecialistPool_async", - "title": "DatasetService createSpecialistPool Sample", - "origin": "API_DEFINITION", - "description": " Creates a SpecialistPool.", - "canonical": true, - "file": "specialist_pool_service.create_specialist_pool.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 60, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateSpecialistPool", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService.CreateSpecialistPool", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "specialist_pool", - "type": ".google.cloud.aiplatform.v1beta1.SpecialistPool" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "SpecialistPoolServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolServiceClient" - }, - "method": { - "shortName": "CreateSpecialistPool", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService.CreateSpecialistPool", - "service": { - "shortName": "SpecialistPoolService", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_SpecialistPoolService_GetSpecialistPool_async", - "title": "DatasetService getSpecialistPool Sample", - "origin": "API_DEFINITION", - "description": " Gets a SpecialistPool.", - "canonical": true, - "file": "specialist_pool_service.get_specialist_pool.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetSpecialistPool", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService.GetSpecialistPool", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.SpecialistPool", - "client": { - "shortName": "SpecialistPoolServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolServiceClient" - }, - "method": { - "shortName": "GetSpecialistPool", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService.GetSpecialistPool", - "service": { - "shortName": "SpecialistPoolService", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_SpecialistPoolService_ListSpecialistPools_async", - "title": "DatasetService listSpecialistPools Sample", - "origin": "API_DEFINITION", - "description": " Lists SpecialistPools in a Location.", - "canonical": true, - "file": "specialist_pool_service.list_specialist_pools.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 71, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListSpecialistPools", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService.ListSpecialistPools", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListSpecialistPoolsResponse", - "client": { - "shortName": "SpecialistPoolServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolServiceClient" - }, - "method": { - "shortName": "ListSpecialistPools", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService.ListSpecialistPools", - "service": { - "shortName": "SpecialistPoolService", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_SpecialistPoolService_DeleteSpecialistPool_async", - "title": "DatasetService deleteSpecialistPool Sample", - "origin": "API_DEFINITION", - "description": " Deletes a SpecialistPool as well as all Specialists in the pool.", - "canonical": true, - "file": "specialist_pool_service.delete_specialist_pool.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 61, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteSpecialistPool", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService.DeleteSpecialistPool", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "force", - "type": "TYPE_BOOL" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "SpecialistPoolServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolServiceClient" - }, - "method": { - "shortName": "DeleteSpecialistPool", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService.DeleteSpecialistPool", - "service": { - "shortName": "SpecialistPoolService", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_SpecialistPoolService_UpdateSpecialistPool_async", - "title": "DatasetService updateSpecialistPool Sample", - "origin": "API_DEFINITION", - "description": " Updates a SpecialistPool.", - "canonical": true, - "file": "specialist_pool_service.update_specialist_pool.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateSpecialistPool", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService.UpdateSpecialistPool", - "async": true, - "parameters": [ - { - "name": "specialist_pool", - "type": ".google.cloud.aiplatform.v1beta1.SpecialistPool" - }, - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "SpecialistPoolServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolServiceClient" - }, - "method": { - "shortName": "UpdateSpecialistPool", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService.UpdateSpecialistPool", - "service": { - "shortName": "SpecialistPoolService", - "fullName": "google.cloud.aiplatform.v1beta1.SpecialistPoolService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_CreateTensorboard_async", - "title": "DatasetService createTensorboard Sample", - "origin": "API_DEFINITION", - "description": " Creates a Tensorboard.", - "canonical": true, - "file": "tensorboard_service.create_tensorboard.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 60, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateTensorboard", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboard", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "tensorboard", - "type": ".google.cloud.aiplatform.v1beta1.Tensorboard" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "CreateTensorboard", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboard", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_GetTensorboard_async", - "title": "DatasetService getTensorboard Sample", - "origin": "API_DEFINITION", - "description": " Gets a Tensorboard.", - "canonical": true, - "file": "tensorboard_service.get_tensorboard.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetTensorboard", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.GetTensorboard", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Tensorboard", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "GetTensorboard", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.GetTensorboard", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_UpdateTensorboard_async", - "title": "DatasetService updateTensorboard Sample", - "origin": "API_DEFINITION", - "description": " Updates a Tensorboard.", - "canonical": true, - "file": "tensorboard_service.update_tensorboard.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 66, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateTensorboard", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.UpdateTensorboard", - "async": true, - "parameters": [ - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "tensorboard", - "type": ".google.cloud.aiplatform.v1beta1.Tensorboard" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "UpdateTensorboard", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.UpdateTensorboard", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_ListTensorboards_async", - "title": "DatasetService listTensorboards Sample", - "origin": "API_DEFINITION", - "description": " Lists Tensorboards in a Location.", - "canonical": true, - "file": "tensorboard_service.list_tensorboards.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 85, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListTensorboards", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboards", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListTensorboardsResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "ListTensorboards", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboards", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_DeleteTensorboard_async", - "title": "DatasetService deleteTensorboard Sample", - "origin": "API_DEFINITION", - "description": " Deletes a Tensorboard.", - "canonical": true, - "file": "tensorboard_service.delete_tensorboard.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteTensorboard", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.DeleteTensorboard", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "DeleteTensorboard", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.DeleteTensorboard", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_CreateTensorboardExperiment_async", - "title": "DatasetService createTensorboardExperiment Sample", - "origin": "API_DEFINITION", - "description": " Creates a TensorboardExperiment.", - "canonical": true, - "file": "tensorboard_service.create_tensorboard_experiment.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 67, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboardExperiment", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "tensorboard_experiment", - "type": ".google.cloud.aiplatform.v1beta1.TensorboardExperiment" - }, - { - "name": "tensorboard_experiment_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.TensorboardExperiment", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "CreateTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboardExperiment", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_GetTensorboardExperiment_async", - "title": "DatasetService getTensorboardExperiment Sample", - "origin": "API_DEFINITION", - "description": " Gets a TensorboardExperiment.", - "canonical": true, - "file": "tensorboard_service.get_tensorboard_experiment.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.GetTensorboardExperiment", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.TensorboardExperiment", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "GetTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.GetTensorboardExperiment", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_UpdateTensorboardExperiment_async", - "title": "DatasetService updateTensorboardExperiment Sample", - "origin": "API_DEFINITION", - "description": " Updates a TensorboardExperiment.", - "canonical": true, - "file": "tensorboard_service.update_tensorboard_experiment.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 65, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.UpdateTensorboardExperiment", - "async": true, - "parameters": [ - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "tensorboard_experiment", - "type": ".google.cloud.aiplatform.v1beta1.TensorboardExperiment" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.TensorboardExperiment", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "UpdateTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.UpdateTensorboardExperiment", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_ListTensorboardExperiments_async", - "title": "DatasetService listTensorboardExperiments Sample", - "origin": "API_DEFINITION", - "description": " Lists TensorboardExperiments in a Location.", - "canonical": true, - "file": "tensorboard_service.list_tensorboard_experiments.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 85, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListTensorboardExperiments", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardExperiments", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListTensorboardExperimentsResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "ListTensorboardExperiments", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardExperiments", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_DeleteTensorboardExperiment_async", - "title": "DatasetService deleteTensorboardExperiment Sample", - "origin": "API_DEFINITION", - "description": " Deletes a TensorboardExperiment.", - "canonical": true, - "file": "tensorboard_service.delete_tensorboard_experiment.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.DeleteTensorboardExperiment", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "DeleteTensorboardExperiment", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.DeleteTensorboardExperiment", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_CreateTensorboardRun_async", - "title": "DatasetService createTensorboardRun Sample", - "origin": "API_DEFINITION", - "description": " Creates a TensorboardRun.", - "canonical": true, - "file": "tensorboard_service.create_tensorboard_run.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 68, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateTensorboardRun", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboardRun", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "tensorboard_run", - "type": ".google.cloud.aiplatform.v1beta1.TensorboardRun" - }, - { - "name": "tensorboard_run_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.TensorboardRun", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "CreateTensorboardRun", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboardRun", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_BatchCreateTensorboardRuns_async", - "title": "DatasetService batchCreateTensorboardRuns Sample", - "origin": "API_DEFINITION", - "description": " Batch create TensorboardRuns.", - "canonical": true, - "file": "tensorboard_service.batch_create_tensorboard_runs.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 63, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "BatchCreateTensorboardRuns", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.BatchCreateTensorboardRuns", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "requests", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.BatchCreateTensorboardRunsResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "BatchCreateTensorboardRuns", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.BatchCreateTensorboardRuns", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_GetTensorboardRun_async", - "title": "DatasetService getTensorboardRun Sample", - "origin": "API_DEFINITION", - "description": " Gets a TensorboardRun.", - "canonical": true, - "file": "tensorboard_service.get_tensorboard_run.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetTensorboardRun", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.GetTensorboardRun", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.TensorboardRun", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "GetTensorboardRun", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.GetTensorboardRun", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_UpdateTensorboardRun_async", - "title": "DatasetService updateTensorboardRun Sample", - "origin": "API_DEFINITION", - "description": " Updates a TensorboardRun.", - "canonical": true, - "file": "tensorboard_service.update_tensorboard_run.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 65, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateTensorboardRun", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.UpdateTensorboardRun", - "async": true, - "parameters": [ - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "tensorboard_run", - "type": ".google.cloud.aiplatform.v1beta1.TensorboardRun" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.TensorboardRun", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "UpdateTensorboardRun", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.UpdateTensorboardRun", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_ListTensorboardRuns_async", - "title": "DatasetService listTensorboardRuns Sample", - "origin": "API_DEFINITION", - "description": " Lists TensorboardRuns in a Location.", - "canonical": true, - "file": "tensorboard_service.list_tensorboard_runs.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 85, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListTensorboardRuns", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardRuns", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListTensorboardRunsResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "ListTensorboardRuns", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardRuns", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_DeleteTensorboardRun_async", - "title": "DatasetService deleteTensorboardRun Sample", - "origin": "API_DEFINITION", - "description": " Deletes a TensorboardRun.", - "canonical": true, - "file": "tensorboard_service.delete_tensorboard_run.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteTensorboardRun", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.DeleteTensorboardRun", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "DeleteTensorboardRun", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.DeleteTensorboardRun", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_BatchCreateTensorboardTimeSeries_async", - "title": "DatasetService batchCreateTensorboardTimeSeries Sample", - "origin": "API_DEFINITION", - "description": " Batch create TensorboardTimeSeries that belong to a TensorboardExperiment.", - "canonical": true, - "file": "tensorboard_service.batch_create_tensorboard_time_series.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 65, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "BatchCreateTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.BatchCreateTensorboardTimeSeries", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "requests", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.BatchCreateTensorboardTimeSeriesResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "BatchCreateTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.BatchCreateTensorboardTimeSeries", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_CreateTensorboardTimeSeries_async", - "title": "DatasetService createTensorboardTimeSeries Sample", - "origin": "API_DEFINITION", - "description": " Creates a TensorboardTimeSeries.", - "canonical": true, - "file": "tensorboard_service.create_tensorboard_time_series.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 68, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboardTimeSeries", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "tensorboard_time_series_id", - "type": "TYPE_STRING" - }, - { - "name": "tensorboard_time_series", - "type": ".google.cloud.aiplatform.v1beta1.TensorboardTimeSeries" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.TensorboardTimeSeries", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "CreateTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboardTimeSeries", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_GetTensorboardTimeSeries_async", - "title": "DatasetService getTensorboardTimeSeries Sample", - "origin": "API_DEFINITION", - "description": " Gets a TensorboardTimeSeries.", - "canonical": true, - "file": "tensorboard_service.get_tensorboard_time_series.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.GetTensorboardTimeSeries", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.TensorboardTimeSeries", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "GetTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.GetTensorboardTimeSeries", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_UpdateTensorboardTimeSeries_async", - "title": "DatasetService updateTensorboardTimeSeries Sample", - "origin": "API_DEFINITION", - "description": " Updates a TensorboardTimeSeries.", - "canonical": true, - "file": "tensorboard_service.update_tensorboard_time_series.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 66, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "UpdateTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.UpdateTensorboardTimeSeries", - "async": true, - "parameters": [ - { - "name": "update_mask", - "type": ".google.protobuf.FieldMask" - }, - { - "name": "tensorboard_time_series", - "type": ".google.cloud.aiplatform.v1beta1.TensorboardTimeSeries" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.TensorboardTimeSeries", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "UpdateTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.UpdateTensorboardTimeSeries", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_ListTensorboardTimeSeries_async", - "title": "DatasetService listTensorboardTimeSeries Sample", - "origin": "API_DEFINITION", - "description": " Lists TensorboardTimeSeries in a Location.", - "canonical": true, - "file": "tensorboard_service.list_tensorboard_time_series.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 85, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardTimeSeries", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - }, - { - "name": "read_mask", - "type": ".google.protobuf.FieldMask" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListTensorboardTimeSeriesResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "ListTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardTimeSeries", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_DeleteTensorboardTimeSeries_async", - "title": "DatasetService deleteTensorboardTimeSeries Sample", - "origin": "API_DEFINITION", - "description": " Deletes a TensorboardTimeSeries.", - "canonical": true, - "file": "tensorboard_service.delete_tensorboard_time_series.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.DeleteTensorboardTimeSeries", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "DeleteTensorboardTimeSeries", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.DeleteTensorboardTimeSeries", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_BatchReadTensorboardTimeSeriesData_async", - "title": "DatasetService batchReadTensorboardTimeSeriesData Sample", - "origin": "API_DEFINITION", - "description": " Reads multiple TensorboardTimeSeries' data. The data point number limit is 1000 for scalars, 100 for tensors and blob references. If the number of data points stored is less than the limit, all data will be returned. Otherwise, that limit number of data points will be randomly selected from this time series and returned.", - "canonical": true, - "file": "tensorboard_service.batch_read_tensorboard_time_series_data.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 63, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "BatchReadTensorboardTimeSeriesData", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.BatchReadTensorboardTimeSeriesData", - "async": true, - "parameters": [ - { - "name": "tensorboard", - "type": "TYPE_STRING" - }, - { - "name": "time_series", - "type": "TYPE_STRING[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.BatchReadTensorboardTimeSeriesDataResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "BatchReadTensorboardTimeSeriesData", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.BatchReadTensorboardTimeSeriesData", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_ReadTensorboardTimeSeriesData_async", - "title": "DatasetService readTensorboardTimeSeriesData Sample", - "origin": "API_DEFINITION", - "description": " Reads a TensorboardTimeSeries' data. By default, if the number of data points stored is less than 1000, all data will be returned. Otherwise, 1000 data points will be randomly selected from this time series and returned. This value can be changed by changing max_data_points, which can't be greater than 10k.", - "canonical": true, - "file": "tensorboard_service.read_tensorboard_time_series_data.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 65, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ReadTensorboardTimeSeriesData", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.ReadTensorboardTimeSeriesData", - "async": true, - "parameters": [ - { - "name": "tensorboard_time_series", - "type": "TYPE_STRING" - }, - { - "name": "max_data_points", - "type": "TYPE_INT32" - }, - { - "name": "filter", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ReadTensorboardTimeSeriesDataResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "ReadTensorboardTimeSeriesData", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.ReadTensorboardTimeSeriesData", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_ReadTensorboardBlobData_async", - "title": "DatasetService readTensorboardBlobData Sample", - "origin": "API_DEFINITION", - "description": " Gets bytes of TensorboardBlobs. This is to allow reading blob data stored in consumer project's Cloud Storage bucket without users having to obtain Cloud Storage access permission.", - "canonical": true, - "file": "tensorboard_service.read_tensorboard_blob_data.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 61, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ReadTensorboardBlobData", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.ReadTensorboardBlobData", - "async": true, - "parameters": [ - { - "name": "time_series", - "type": "TYPE_STRING" - }, - { - "name": "blob_ids", - "type": "TYPE_STRING[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ReadTensorboardBlobDataResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "ReadTensorboardBlobData", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.ReadTensorboardBlobData", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_WriteTensorboardExperimentData_async", - "title": "DatasetService writeTensorboardExperimentData Sample", - "origin": "API_DEFINITION", - "description": " Write time series data points of multiple TensorboardTimeSeries in multiple TensorboardRun's. If any data fail to be ingested, an error will be returned.", - "canonical": true, - "file": "tensorboard_service.write_tensorboard_experiment_data.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 60, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "WriteTensorboardExperimentData", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.WriteTensorboardExperimentData", - "async": true, - "parameters": [ - { - "name": "tensorboard_experiment", - "type": "TYPE_STRING" - }, - { - "name": "write_run_data_requests", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.WriteTensorboardExperimentDataResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "WriteTensorboardExperimentData", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.WriteTensorboardExperimentData", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_WriteTensorboardRunData_async", - "title": "DatasetService writeTensorboardRunData Sample", - "origin": "API_DEFINITION", - "description": " Write time series data points into multiple TensorboardTimeSeries under a TensorboardRun. If any data fail to be ingested, an error will be returned.", - "canonical": true, - "file": "tensorboard_service.write_tensorboard_run_data.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 64, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "WriteTensorboardRunData", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.WriteTensorboardRunData", - "async": true, - "parameters": [ - { - "name": "tensorboard_run", - "type": "TYPE_STRING" - }, - { - "name": "time_series_data", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.WriteTensorboardRunDataResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "WriteTensorboardRunData", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.WriteTensorboardRunData", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_TensorboardService_ExportTensorboardTimeSeriesData_async", - "title": "DatasetService exportTensorboardTimeSeriesData Sample", - "origin": "API_DEFINITION", - "description": " Exports a TensorboardTimeSeries' data. Data is returned in paginated responses.", - "canonical": true, - "file": "tensorboard_service.export_tensorboard_time_series_data.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 82, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ExportTensorboardTimeSeriesData", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.ExportTensorboardTimeSeriesData", - "async": true, - "parameters": [ - { - "name": "tensorboard_time_series", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "order_by", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ExportTensorboardTimeSeriesDataResponse", - "client": { - "shortName": "TensorboardServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardServiceClient" - }, - "method": { - "shortName": "ExportTensorboardTimeSeriesData", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService.ExportTensorboardTimeSeriesData", - "service": { - "shortName": "TensorboardService", - "fullName": "google.cloud.aiplatform.v1beta1.TensorboardService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_VizierService_CreateStudy_async", - "title": "DatasetService createStudy Sample", - "origin": "API_DEFINITION", - "description": " Creates a Study. A resource name will be generated after creation of the Study.", - "canonical": true, - "file": "vizier_service.create_study.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateStudy", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.CreateStudy", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "study", - "type": ".google.cloud.aiplatform.v1beta1.Study" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Study", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.VizierServiceClient" - }, - "method": { - "shortName": "CreateStudy", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.CreateStudy", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_VizierService_GetStudy_async", - "title": "DatasetService getStudy Sample", - "origin": "API_DEFINITION", - "description": " Gets a Study by name.", - "canonical": true, - "file": "vizier_service.get_study.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 54, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetStudy", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.GetStudy", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Study", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.VizierServiceClient" - }, - "method": { - "shortName": "GetStudy", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.GetStudy", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_VizierService_ListStudies_async", - "title": "DatasetService listStudies Sample", - "origin": "API_DEFINITION", - "description": " Lists all the studies in a region for an associated project.", - "canonical": true, - "file": "vizier_service.list_studies.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 66, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListStudies", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.ListStudies", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListStudiesResponse", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.VizierServiceClient" - }, - "method": { - "shortName": "ListStudies", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.ListStudies", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_VizierService_DeleteStudy_async", - "title": "DatasetService deleteStudy Sample", - "origin": "API_DEFINITION", - "description": " Deletes a Study.", - "canonical": true, - "file": "vizier_service.delete_study.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 54, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteStudy", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.DeleteStudy", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.protobuf.Empty", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.VizierServiceClient" - }, - "method": { - "shortName": "DeleteStudy", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.DeleteStudy", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_VizierService_LookupStudy_async", - "title": "DatasetService lookupStudy Sample", - "origin": "API_DEFINITION", - "description": " Looks a study up using the user-defined display_name field instead of the fully qualified resource name.", - "canonical": true, - "file": "vizier_service.lookup_study.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "LookupStudy", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.LookupStudy", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "display_name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Study", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.VizierServiceClient" - }, - "method": { - "shortName": "LookupStudy", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.LookupStudy", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_VizierService_SuggestTrials_async", - "title": "DatasetService suggestTrials Sample", - "origin": "API_DEFINITION", - "description": " Adds one or more Trials to a Study, with parameter values suggested by Vertex AI Vizier. Returns a long-running operation associated with the generation of Trial suggestions. When this long-running operation succeeds, it will contain a [SuggestTrialsResponse][google.cloud.ml.v1.SuggestTrialsResponse].", - "canonical": true, - "file": "vizier_service.suggest_trials.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 68, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "SuggestTrials", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.SuggestTrials", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "suggestion_count", - "type": "TYPE_INT32" - }, - { - "name": "client_id", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.VizierServiceClient" - }, - "method": { - "shortName": "SuggestTrials", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.SuggestTrials", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_VizierService_CreateTrial_async", - "title": "DatasetService createTrial Sample", - "origin": "API_DEFINITION", - "description": " Adds a user provided Trial to a Study.", - "canonical": true, - "file": "vizier_service.create_trial.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 59, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateTrial", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.CreateTrial", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "trial", - "type": ".google.cloud.aiplatform.v1beta1.Trial" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Trial", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.VizierServiceClient" - }, - "method": { - "shortName": "CreateTrial", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.CreateTrial", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_VizierService_GetTrial_async", - "title": "DatasetService getTrial Sample", - "origin": "API_DEFINITION", - "description": " Gets a Trial.", - "canonical": true, - "file": "vizier_service.get_trial.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetTrial", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.GetTrial", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Trial", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.VizierServiceClient" - }, - "method": { - "shortName": "GetTrial", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.GetTrial", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_VizierService_ListTrials_async", - "title": "DatasetService listTrials Sample", - "origin": "API_DEFINITION", - "description": " Lists the Trials associated with a Study.", - "canonical": true, - "file": "vizier_service.list_trials.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 66, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListTrials", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.ListTrials", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListTrialsResponse", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.VizierServiceClient" - }, - "method": { - "shortName": "ListTrials", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.ListTrials", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_VizierService_AddTrialMeasurement_async", - "title": "DatasetService addTrialMeasurement Sample", - "origin": "API_DEFINITION", - "description": " Adds a measurement of the objective metrics to a Trial. This measurement is assumed to have been taken before the Trial is complete.", - "canonical": true, - "file": "vizier_service.add_trial_measurement.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 60, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "AddTrialMeasurement", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.AddTrialMeasurement", - "async": true, - "parameters": [ - { - "name": "trial_name", - "type": "TYPE_STRING" - }, - { - "name": "measurement", - "type": ".google.cloud.aiplatform.v1beta1.Measurement" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Trial", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.VizierServiceClient" - }, - "method": { - "shortName": "AddTrialMeasurement", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.AddTrialMeasurement", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_VizierService_CompleteTrial_async", - "title": "DatasetService completeTrial Sample", - "origin": "API_DEFINITION", - "description": " Marks a Trial as complete.", - "canonical": true, - "file": "vizier_service.complete_trial.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 71, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CompleteTrial", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.CompleteTrial", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - }, - { - "name": "final_measurement", - "type": ".google.cloud.aiplatform.v1beta1.Measurement" - }, - { - "name": "trial_infeasible", - "type": "TYPE_BOOL" - }, - { - "name": "infeasible_reason", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Trial", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.VizierServiceClient" - }, - "method": { - "shortName": "CompleteTrial", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.CompleteTrial", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_VizierService_DeleteTrial_async", - "title": "DatasetService deleteTrial Sample", - "origin": "API_DEFINITION", - "description": " Deletes a Trial.", - "canonical": true, - "file": "vizier_service.delete_trial.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteTrial", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.DeleteTrial", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.protobuf.Empty", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.VizierServiceClient" - }, - "method": { - "shortName": "DeleteTrial", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.DeleteTrial", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_VizierService_CheckTrialEarlyStoppingState_async", - "title": "DatasetService checkTrialEarlyStoppingState Sample", - "origin": "API_DEFINITION", - "description": " Checks whether a Trial should stop or not. Returns a long-running operation. When the operation is successful, it will contain a [CheckTrialEarlyStoppingStateResponse][google.cloud.ml.v1.CheckTrialEarlyStoppingStateResponse].", - "canonical": true, - "file": "vizier_service.check_trial_early_stopping_state.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CheckTrialEarlyStoppingState", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.CheckTrialEarlyStoppingState", - "async": true, - "parameters": [ - { - "name": "trial_name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.VizierServiceClient" - }, - "method": { - "shortName": "CheckTrialEarlyStoppingState", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.CheckTrialEarlyStoppingState", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_VizierService_StopTrial_async", - "title": "DatasetService stopTrial Sample", - "origin": "API_DEFINITION", - "description": " Stops a Trial.", - "canonical": true, - "file": "vizier_service.stop_trial.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 55, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "StopTrial", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.StopTrial", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.Trial", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.VizierServiceClient" - }, - "method": { - "shortName": "StopTrial", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.StopTrial", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService" - } - } - } - }, - { - "regionTag": "aiplatform_v1beta1_generated_VizierService_ListOptimalTrials_async", - "title": "DatasetService listOptimalTrials Sample", - "origin": "API_DEFINITION", - "description": " Lists the pareto-optimal Trials for multi-objective Study or the optimal Trials for single-objective Study. The definition of pareto-optimal can be checked in wiki page. https://en.wikipedia.org/wiki/Pareto_efficiency", - "canonical": true, - "file": "vizier_service.list_optimal_trials.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 53, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListOptimalTrials", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.ListOptimalTrials", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.aiplatform.v1beta1.ListOptimalTrialsResponse", - "client": { - "shortName": "VizierServiceClient", - "fullName": "google.cloud.aiplatform.v1beta1.VizierServiceClient" - }, - "method": { - "shortName": "ListOptimalTrials", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService.ListOptimalTrials", - "service": { - "shortName": "VizierService", - "fullName": "google.cloud.aiplatform.v1beta1.VizierService" - } - } - } - } - ] -} \ No newline at end of file diff --git a/samples/generated/v1beta1/specialist_pool_service.create_specialist_pool.js b/samples/generated/v1beta1/specialist_pool_service.create_specialist_pool.js deleted file mode 100644 index 3adcd396..00000000 --- a/samples/generated/v1beta1/specialist_pool_service.create_specialist_pool.js +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, specialistPool) { - // [START aiplatform_v1beta1_generated_SpecialistPoolService_CreateSpecialistPool_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The parent Project name for the new SpecialistPool. - * The form is `projects/{project}/locations/{location}`. - */ - // const parent = 'abc123' - /** - * Required. The SpecialistPool to create. - */ - // const specialistPool = {} - - // Imports the Aiplatform library - const {SpecialistPoolServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new SpecialistPoolServiceClient(); - - async function callCreateSpecialistPool() { - // Construct request - const request = { - parent, - specialistPool, - }; - - // Run request - const [operation] = await aiplatformClient.createSpecialistPool(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateSpecialistPool(); - // [END aiplatform_v1beta1_generated_SpecialistPoolService_CreateSpecialistPool_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/specialist_pool_service.delete_specialist_pool.js b/samples/generated/v1beta1/specialist_pool_service.delete_specialist_pool.js deleted file mode 100644 index 1201df40..00000000 --- a/samples/generated/v1beta1/specialist_pool_service.delete_specialist_pool.js +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_SpecialistPoolService_DeleteSpecialistPool_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the SpecialistPool to delete. Format: - * `projects/{project}/locations/{location}/specialistPools/{specialist_pool}` - */ - // const name = 'abc123' - /** - * If set to true, any specialist managers in this SpecialistPool will also be - * deleted. (Otherwise, the request will only work if the SpecialistPool has - * no specialist managers.) - */ - // const force = true - - // Imports the Aiplatform library - const {SpecialistPoolServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new SpecialistPoolServiceClient(); - - async function callDeleteSpecialistPool() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteSpecialistPool(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteSpecialistPool(); - // [END aiplatform_v1beta1_generated_SpecialistPoolService_DeleteSpecialistPool_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/specialist_pool_service.get_specialist_pool.js b/samples/generated/v1beta1/specialist_pool_service.get_specialist_pool.js deleted file mode 100644 index e5dff722..00000000 --- a/samples/generated/v1beta1/specialist_pool_service.get_specialist_pool.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_SpecialistPoolService_GetSpecialistPool_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the SpecialistPool resource. - * The form is - * `projects/{project}/locations/{location}/specialistPools/{specialist_pool}`. - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {SpecialistPoolServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new SpecialistPoolServiceClient(); - - async function callGetSpecialistPool() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getSpecialistPool(request); - console.log(response); - } - - callGetSpecialistPool(); - // [END aiplatform_v1beta1_generated_SpecialistPoolService_GetSpecialistPool_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/specialist_pool_service.list_specialist_pools.js b/samples/generated/v1beta1/specialist_pool_service.list_specialist_pools.js deleted file mode 100644 index 18e48844..00000000 --- a/samples/generated/v1beta1/specialist_pool_service.list_specialist_pools.js +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_SpecialistPoolService_ListSpecialistPools_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the SpecialistPool's parent resource. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * The standard list page size. - */ - // const pageSize = 1234 - /** - * The standard list page token. - * Typically obtained by ListSpecialistPoolsResponse.next_page_token google.cloud.aiplatform.v1beta1.ListSpecialistPoolsResponse.next_page_token of - * the previous SpecialistPoolService.ListSpecialistPools google.cloud.aiplatform.v1beta1.SpecialistPoolService.ListSpecialistPools call. Return - * first page if empty. - */ - // const pageToken = 'abc123' - /** - * Mask specifying which fields to read. FieldMask represents a set of - */ - // const readMask = {} - - // Imports the Aiplatform library - const {SpecialistPoolServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new SpecialistPoolServiceClient(); - - async function callListSpecialistPools() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listSpecialistPoolsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListSpecialistPools(); - // [END aiplatform_v1beta1_generated_SpecialistPoolService_ListSpecialistPools_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/specialist_pool_service.update_specialist_pool.js b/samples/generated/v1beta1/specialist_pool_service.update_specialist_pool.js deleted file mode 100644 index 2bcb18f8..00000000 --- a/samples/generated/v1beta1/specialist_pool_service.update_specialist_pool.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(specialistPool, updateMask) { - // [START aiplatform_v1beta1_generated_SpecialistPoolService_UpdateSpecialistPool_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The SpecialistPool which replaces the resource on the server. - */ - // const specialistPool = {} - /** - * Required. The update mask applies to the resource. - */ - // const updateMask = {} - - // Imports the Aiplatform library - const {SpecialistPoolServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new SpecialistPoolServiceClient(); - - async function callUpdateSpecialistPool() { - // Construct request - const request = { - specialistPool, - updateMask, - }; - - // Run request - const [operation] = await aiplatformClient.updateSpecialistPool(request); - const [response] = await operation.promise(); - console.log(response); - } - - callUpdateSpecialistPool(); - // [END aiplatform_v1beta1_generated_SpecialistPoolService_UpdateSpecialistPool_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.batch_create_tensorboard_runs.js b/samples/generated/v1beta1/tensorboard_service.batch_create_tensorboard_runs.js deleted file mode 100644 index 180c7e68..00000000 --- a/samples/generated/v1beta1/tensorboard_service.batch_create_tensorboard_runs.js +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, requests) { - // [START aiplatform_v1beta1_generated_TensorboardService_BatchCreateTensorboardRuns_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardExperiment to create the - * TensorboardRuns in. Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` - * The parent field in the CreateTensorboardRunRequest messages must match - * this field. - */ - // const parent = 'abc123' - /** - * Required. The request message specifying the TensorboardRuns to create. - * A maximum of 1000 TensorboardRuns can be created in a batch. - */ - // const requests = 1234 - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callBatchCreateTensorboardRuns() { - // Construct request - const request = { - parent, - requests, - }; - - // Run request - const response = await aiplatformClient.batchCreateTensorboardRuns(request); - console.log(response); - } - - callBatchCreateTensorboardRuns(); - // [END aiplatform_v1beta1_generated_TensorboardService_BatchCreateTensorboardRuns_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.batch_create_tensorboard_time_series.js b/samples/generated/v1beta1/tensorboard_service.batch_create_tensorboard_time_series.js deleted file mode 100644 index e8566dcd..00000000 --- a/samples/generated/v1beta1/tensorboard_service.batch_create_tensorboard_time_series.js +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, requests) { - // [START aiplatform_v1beta1_generated_TensorboardService_BatchCreateTensorboardTimeSeries_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardExperiment to create the - * TensorboardTimeSeries in. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` - * The TensorboardRuns referenced by the parent fields in the - * CreateTensorboardTimeSeriesRequest messages must be sub resources of this - * TensorboardExperiment. - */ - // const parent = 'abc123' - /** - * Required. The request message specifying the TensorboardTimeSeries to create. - * A maximum of 1000 TensorboardTimeSeries can be created in a batch. - */ - // const requests = 1234 - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callBatchCreateTensorboardTimeSeries() { - // Construct request - const request = { - parent, - requests, - }; - - // Run request - const response = await aiplatformClient.batchCreateTensorboardTimeSeries(request); - console.log(response); - } - - callBatchCreateTensorboardTimeSeries(); - // [END aiplatform_v1beta1_generated_TensorboardService_BatchCreateTensorboardTimeSeries_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.batch_read_tensorboard_time_series_data.js b/samples/generated/v1beta1/tensorboard_service.batch_read_tensorboard_time_series_data.js deleted file mode 100644 index c660faf0..00000000 --- a/samples/generated/v1beta1/tensorboard_service.batch_read_tensorboard_time_series_data.js +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(tensorboard, timeSeries) { - // [START aiplatform_v1beta1_generated_TensorboardService_BatchReadTensorboardTimeSeriesData_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Tensorboard containing TensorboardTimeSeries to - * read data from. Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}`. - * The TensorboardTimeSeries referenced by time_series google.cloud.aiplatform.v1beta1.BatchReadTensorboardTimeSeriesDataRequest.time_series must be sub - * resources of this Tensorboard. - */ - // const tensorboard = 'abc123' - /** - * Required. The resource names of the TensorboardTimeSeries to read data from. Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` - */ - // const timeSeries = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callBatchReadTensorboardTimeSeriesData() { - // Construct request - const request = { - tensorboard, - timeSeries, - }; - - // Run request - const response = await aiplatformClient.batchReadTensorboardTimeSeriesData(request); - console.log(response); - } - - callBatchReadTensorboardTimeSeriesData(); - // [END aiplatform_v1beta1_generated_TensorboardService_BatchReadTensorboardTimeSeriesData_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.create_tensorboard.js b/samples/generated/v1beta1/tensorboard_service.create_tensorboard.js deleted file mode 100644 index b0ba37fd..00000000 --- a/samples/generated/v1beta1/tensorboard_service.create_tensorboard.js +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, tensorboard) { - // [START aiplatform_v1beta1_generated_TensorboardService_CreateTensorboard_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the Tensorboard in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The Tensorboard to create. - */ - // const tensorboard = {} - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callCreateTensorboard() { - // Construct request - const request = { - parent, - tensorboard, - }; - - // Run request - const [operation] = await aiplatformClient.createTensorboard(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateTensorboard(); - // [END aiplatform_v1beta1_generated_TensorboardService_CreateTensorboard_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.create_tensorboard_experiment.js b/samples/generated/v1beta1/tensorboard_service.create_tensorboard_experiment.js deleted file mode 100644 index 60c0e504..00000000 --- a/samples/generated/v1beta1/tensorboard_service.create_tensorboard_experiment.js +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, tensorboardExperimentId) { - // [START aiplatform_v1beta1_generated_TensorboardService_CreateTensorboardExperiment_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Tensorboard to create the TensorboardExperiment - * in. Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}` - */ - // const parent = 'abc123' - /** - * The TensorboardExperiment to create. - */ - // const tensorboardExperiment = {} - /** - * Required. The ID to use for the Tensorboard experiment, which will become the final - * component of the Tensorboard experiment's resource name. - * This value should be 1-128 characters, and valid characters - * are /[a-z][0-9]-/. - */ - // const tensorboardExperimentId = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callCreateTensorboardExperiment() { - // Construct request - const request = { - parent, - tensorboardExperimentId, - }; - - // Run request - const response = await aiplatformClient.createTensorboardExperiment(request); - console.log(response); - } - - callCreateTensorboardExperiment(); - // [END aiplatform_v1beta1_generated_TensorboardService_CreateTensorboardExperiment_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.create_tensorboard_run.js b/samples/generated/v1beta1/tensorboard_service.create_tensorboard_run.js deleted file mode 100644 index a2f63d51..00000000 --- a/samples/generated/v1beta1/tensorboard_service.create_tensorboard_run.js +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, tensorboardRun, tensorboardRunId) { - // [START aiplatform_v1beta1_generated_TensorboardService_CreateTensorboardRun_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardExperiment to create the TensorboardRun - * in. Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` - */ - // const parent = 'abc123' - /** - * Required. The TensorboardRun to create. - */ - // const tensorboardRun = {} - /** - * Required. The ID to use for the Tensorboard run, which will become the final - * component of the Tensorboard run's resource name. - * This value should be 1-128 characters, and valid characters - * are /[a-z][0-9]-/. - */ - // const tensorboardRunId = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callCreateTensorboardRun() { - // Construct request - const request = { - parent, - tensorboardRun, - tensorboardRunId, - }; - - // Run request - const response = await aiplatformClient.createTensorboardRun(request); - console.log(response); - } - - callCreateTensorboardRun(); - // [END aiplatform_v1beta1_generated_TensorboardService_CreateTensorboardRun_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.create_tensorboard_time_series.js b/samples/generated/v1beta1/tensorboard_service.create_tensorboard_time_series.js deleted file mode 100644 index 5f83b15e..00000000 --- a/samples/generated/v1beta1/tensorboard_service.create_tensorboard_time_series.js +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, tensorboardTimeSeries) { - // [START aiplatform_v1beta1_generated_TensorboardService_CreateTensorboardTimeSeries_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardRun to create the - * TensorboardTimeSeries in. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` - */ - // const parent = 'abc123' - /** - * Optional. The user specified unique ID to use for the TensorboardTimeSeries, which - * will become the final component of the TensorboardTimeSeries's resource - * name. - * This value should match "[a-z0-9][a-z0-9-]{0, 127}" - */ - // const tensorboardTimeSeriesId = 'abc123' - /** - * Required. The TensorboardTimeSeries to create. - */ - // const tensorboardTimeSeries = {} - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callCreateTensorboardTimeSeries() { - // Construct request - const request = { - parent, - tensorboardTimeSeries, - }; - - // Run request - const response = await aiplatformClient.createTensorboardTimeSeries(request); - console.log(response); - } - - callCreateTensorboardTimeSeries(); - // [END aiplatform_v1beta1_generated_TensorboardService_CreateTensorboardTimeSeries_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.delete_tensorboard.js b/samples/generated/v1beta1/tensorboard_service.delete_tensorboard.js deleted file mode 100644 index db8c965f..00000000 --- a/samples/generated/v1beta1/tensorboard_service.delete_tensorboard.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_TensorboardService_DeleteTensorboard_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Tensorboard to be deleted. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callDeleteTensorboard() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteTensorboard(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteTensorboard(); - // [END aiplatform_v1beta1_generated_TensorboardService_DeleteTensorboard_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.delete_tensorboard_experiment.js b/samples/generated/v1beta1/tensorboard_service.delete_tensorboard_experiment.js deleted file mode 100644 index 2bac02c2..00000000 --- a/samples/generated/v1beta1/tensorboard_service.delete_tensorboard_experiment.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_TensorboardService_DeleteTensorboardExperiment_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the TensorboardExperiment to be deleted. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callDeleteTensorboardExperiment() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteTensorboardExperiment(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteTensorboardExperiment(); - // [END aiplatform_v1beta1_generated_TensorboardService_DeleteTensorboardExperiment_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.delete_tensorboard_run.js b/samples/generated/v1beta1/tensorboard_service.delete_tensorboard_run.js deleted file mode 100644 index a544165a..00000000 --- a/samples/generated/v1beta1/tensorboard_service.delete_tensorboard_run.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_TensorboardService_DeleteTensorboardRun_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the TensorboardRun to be deleted. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callDeleteTensorboardRun() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteTensorboardRun(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteTensorboardRun(); - // [END aiplatform_v1beta1_generated_TensorboardService_DeleteTensorboardRun_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.delete_tensorboard_time_series.js b/samples/generated/v1beta1/tensorboard_service.delete_tensorboard_time_series.js deleted file mode 100644 index 9b269b8e..00000000 --- a/samples/generated/v1beta1/tensorboard_service.delete_tensorboard_time_series.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_TensorboardService_DeleteTensorboardTimeSeries_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the TensorboardTimeSeries to be deleted. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callDeleteTensorboardTimeSeries() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await aiplatformClient.deleteTensorboardTimeSeries(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteTensorboardTimeSeries(); - // [END aiplatform_v1beta1_generated_TensorboardService_DeleteTensorboardTimeSeries_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.export_tensorboard_time_series_data.js b/samples/generated/v1beta1/tensorboard_service.export_tensorboard_time_series_data.js deleted file mode 100644 index c83147c3..00000000 --- a/samples/generated/v1beta1/tensorboard_service.export_tensorboard_time_series_data.js +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(tensorboardTimeSeries) { - // [START aiplatform_v1beta1_generated_TensorboardService_ExportTensorboardTimeSeriesData_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardTimeSeries to export data from. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` - */ - // const tensorboardTimeSeries = 'abc123' - /** - * Exports the TensorboardTimeSeries' data that match the filter expression. - */ - // const filter = 'abc123' - /** - * The maximum number of data points to return per page. - * The default page_size will be 1000. Values must be between 1 and 10000. - * Values above 10000 will be coerced to 10000. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * TensorboardService.ExportTensorboardTimeSeries call. - * Provide this to retrieve the subsequent page. - * When paginating, all other parameters provided to - * TensorboardService.ExportTensorboardTimeSeries must - * match the call that provided the page token. - */ - // const pageToken = 'abc123' - /** - * Field to use to sort the TensorboardTimeSeries' data. - * By default, TensorboardTimeSeries' data will be returned in a pseudo random - * order. - */ - // const orderBy = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callExportTensorboardTimeSeriesData() { - // Construct request - const request = { - tensorboardTimeSeries, - }; - - // Run request - const iterable = await aiplatformClient.exportTensorboardTimeSeriesDataAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callExportTensorboardTimeSeriesData(); - // [END aiplatform_v1beta1_generated_TensorboardService_ExportTensorboardTimeSeriesData_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.get_tensorboard.js b/samples/generated/v1beta1/tensorboard_service.get_tensorboard.js deleted file mode 100644 index d803ada8..00000000 --- a/samples/generated/v1beta1/tensorboard_service.get_tensorboard.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_TensorboardService_GetTensorboard_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Tensorboard resource. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callGetTensorboard() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getTensorboard(request); - console.log(response); - } - - callGetTensorboard(); - // [END aiplatform_v1beta1_generated_TensorboardService_GetTensorboard_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.get_tensorboard_experiment.js b/samples/generated/v1beta1/tensorboard_service.get_tensorboard_experiment.js deleted file mode 100644 index 3ccbd39e..00000000 --- a/samples/generated/v1beta1/tensorboard_service.get_tensorboard_experiment.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_TensorboardService_GetTensorboardExperiment_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the TensorboardExperiment resource. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callGetTensorboardExperiment() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getTensorboardExperiment(request); - console.log(response); - } - - callGetTensorboardExperiment(); - // [END aiplatform_v1beta1_generated_TensorboardService_GetTensorboardExperiment_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.get_tensorboard_run.js b/samples/generated/v1beta1/tensorboard_service.get_tensorboard_run.js deleted file mode 100644 index 14df8157..00000000 --- a/samples/generated/v1beta1/tensorboard_service.get_tensorboard_run.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_TensorboardService_GetTensorboardRun_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the TensorboardRun resource. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callGetTensorboardRun() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getTensorboardRun(request); - console.log(response); - } - - callGetTensorboardRun(); - // [END aiplatform_v1beta1_generated_TensorboardService_GetTensorboardRun_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.get_tensorboard_time_series.js b/samples/generated/v1beta1/tensorboard_service.get_tensorboard_time_series.js deleted file mode 100644 index 4c20724f..00000000 --- a/samples/generated/v1beta1/tensorboard_service.get_tensorboard_time_series.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_TensorboardService_GetTensorboardTimeSeries_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the TensorboardTimeSeries resource. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callGetTensorboardTimeSeries() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getTensorboardTimeSeries(request); - console.log(response); - } - - callGetTensorboardTimeSeries(); - // [END aiplatform_v1beta1_generated_TensorboardService_GetTensorboardTimeSeries_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.list_tensorboard_experiments.js b/samples/generated/v1beta1/tensorboard_service.list_tensorboard_experiments.js deleted file mode 100644 index 1d93e6c1..00000000 --- a/samples/generated/v1beta1/tensorboard_service.list_tensorboard_experiments.js +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_TensorboardService_ListTensorboardExperiments_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Tensorboard to list TensorboardExperiments. - * Format: - * 'projects/{project}/locations/{location}/tensorboards/{tensorboard}' - */ - // const parent = 'abc123' - /** - * Lists the TensorboardExperiments that match the filter expression. - */ - // const filter = 'abc123' - /** - * The maximum number of TensorboardExperiments to return. The service may - * return fewer than this value. If unspecified, at most 50 - * TensorboardExperiments will be returned. The maximum value is 1000; values - * above 1000 will be coerced to 1000. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * TensorboardService.ListTensorboardExperiments google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardExperiments call. - * Provide this to retrieve the subsequent page. - * When paginating, all other parameters provided to - * TensorboardService.ListTensorboardExperiments google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardExperiments must - * match the call that provided the page token. - */ - // const pageToken = 'abc123' - /** - * Field to use to sort the list. - */ - // const orderBy = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callListTensorboardExperiments() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listTensorboardExperimentsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListTensorboardExperiments(); - // [END aiplatform_v1beta1_generated_TensorboardService_ListTensorboardExperiments_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.list_tensorboard_runs.js b/samples/generated/v1beta1/tensorboard_service.list_tensorboard_runs.js deleted file mode 100644 index 5bcd80b0..00000000 --- a/samples/generated/v1beta1/tensorboard_service.list_tensorboard_runs.js +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_TensorboardService_ListTensorboardRuns_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardExperiment to list TensorboardRuns. - * Format: - * 'projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}' - */ - // const parent = 'abc123' - /** - * Lists the TensorboardRuns that match the filter expression. - */ - // const filter = 'abc123' - /** - * The maximum number of TensorboardRuns to return. The service may return - * fewer than this value. If unspecified, at most 50 TensorboardRuns will be - * returned. The maximum value is 1000; values above 1000 will be coerced to - * 1000. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * TensorboardService.ListTensorboardRuns google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardRuns call. - * Provide this to retrieve the subsequent page. - * When paginating, all other parameters provided to - * TensorboardService.ListTensorboardRuns google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardRuns must - * match the call that provided the page token. - */ - // const pageToken = 'abc123' - /** - * Field to use to sort the list. - */ - // const orderBy = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callListTensorboardRuns() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listTensorboardRunsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListTensorboardRuns(); - // [END aiplatform_v1beta1_generated_TensorboardService_ListTensorboardRuns_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.list_tensorboard_time_series.js b/samples/generated/v1beta1/tensorboard_service.list_tensorboard_time_series.js deleted file mode 100644 index 19c420d5..00000000 --- a/samples/generated/v1beta1/tensorboard_service.list_tensorboard_time_series.js +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_TensorboardService_ListTensorboardTimeSeries_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardRun to list TensorboardTimeSeries. - * Format: - * 'projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}' - */ - // const parent = 'abc123' - /** - * Lists the TensorboardTimeSeries that match the filter expression. - */ - // const filter = 'abc123' - /** - * The maximum number of TensorboardTimeSeries to return. The service may - * return fewer than this value. If unspecified, at most 50 - * TensorboardTimeSeries will be returned. The maximum value is 1000; values - * above 1000 will be coerced to 1000. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * TensorboardService.ListTensorboardTimeSeries google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardTimeSeries call. - * Provide this to retrieve the subsequent page. - * When paginating, all other parameters provided to - * TensorboardService.ListTensorboardTimeSeries google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardTimeSeries must - * match the call that provided the page token. - */ - // const pageToken = 'abc123' - /** - * Field to use to sort the list. - */ - // const orderBy = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callListTensorboardTimeSeries() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listTensorboardTimeSeriesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListTensorboardTimeSeries(); - // [END aiplatform_v1beta1_generated_TensorboardService_ListTensorboardTimeSeries_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.list_tensorboards.js b/samples/generated/v1beta1/tensorboard_service.list_tensorboards.js deleted file mode 100644 index 762b5915..00000000 --- a/samples/generated/v1beta1/tensorboard_service.list_tensorboards.js +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_TensorboardService_ListTensorboards_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to list Tensorboards. - * Format: - * `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Lists the Tensorboards that match the filter expression. - */ - // const filter = 'abc123' - /** - * The maximum number of Tensorboards to return. The service may return - * fewer than this value. If unspecified, at most 100 Tensorboards will be - * returned. The maximum value is 100; values above 100 will be coerced to - * 100. - */ - // const pageSize = 1234 - /** - * A page token, received from a previous - * TensorboardService.ListTensorboards google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboards call. - * Provide this to retrieve the subsequent page. - * When paginating, all other parameters provided to - * TensorboardService.ListTensorboards google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboards must - * match the call that provided the page token. - */ - // const pageToken = 'abc123' - /** - * Field to use to sort the list. - */ - // const orderBy = 'abc123' - /** - * Mask specifying which fields to read. - */ - // const readMask = {} - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callListTensorboards() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listTensorboardsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListTensorboards(); - // [END aiplatform_v1beta1_generated_TensorboardService_ListTensorboards_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.read_tensorboard_blob_data.js b/samples/generated/v1beta1/tensorboard_service.read_tensorboard_blob_data.js deleted file mode 100644 index 0092407c..00000000 --- a/samples/generated/v1beta1/tensorboard_service.read_tensorboard_blob_data.js +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(timeSeries) { - // [START aiplatform_v1beta1_generated_TensorboardService_ReadTensorboardBlobData_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardTimeSeries to list Blobs. - * Format: - * 'projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}' - */ - // const timeSeries = 'abc123' - /** - * IDs of the blobs to read. - */ - // const blobIds = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callReadTensorboardBlobData() { - // Construct request - const request = { - timeSeries, - }; - - // Run request - const stream = await aiplatformClient.readTensorboardBlobData(request); - stream.on('data', (response) => { console.log(response) }); - stream.on('error', (err) => { throw(err) }); - stream.on('end', () => { /* API call completed */ }); - } - - callReadTensorboardBlobData(); - // [END aiplatform_v1beta1_generated_TensorboardService_ReadTensorboardBlobData_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.read_tensorboard_time_series_data.js b/samples/generated/v1beta1/tensorboard_service.read_tensorboard_time_series_data.js deleted file mode 100644 index 9e5f79fd..00000000 --- a/samples/generated/v1beta1/tensorboard_service.read_tensorboard_time_series_data.js +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(tensorboardTimeSeries) { - // [START aiplatform_v1beta1_generated_TensorboardService_ReadTensorboardTimeSeriesData_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardTimeSeries to read data from. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` - */ - // const tensorboardTimeSeries = 'abc123' - /** - * The maximum number of TensorboardTimeSeries' data to return. - * This value should be a positive integer. - * This value can be set to -1 to return all data. - */ - // const maxDataPoints = 1234 - /** - * Reads the TensorboardTimeSeries' data that match the filter expression. - */ - // const filter = 'abc123' - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callReadTensorboardTimeSeriesData() { - // Construct request - const request = { - tensorboardTimeSeries, - }; - - // Run request - const response = await aiplatformClient.readTensorboardTimeSeriesData(request); - console.log(response); - } - - callReadTensorboardTimeSeriesData(); - // [END aiplatform_v1beta1_generated_TensorboardService_ReadTensorboardTimeSeriesData_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.update_tensorboard.js b/samples/generated/v1beta1/tensorboard_service.update_tensorboard.js deleted file mode 100644 index ba8f468d..00000000 --- a/samples/generated/v1beta1/tensorboard_service.update_tensorboard.js +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(updateMask, tensorboard) { - // [START aiplatform_v1beta1_generated_TensorboardService_UpdateTensorboard_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. Field mask is used to specify the fields to be overwritten in the - * Tensorboard resource by the update. - * The fields specified in the update_mask are relative to the resource, not - * the full request. A field will be overwritten if it is in the mask. If the - * user does not provide a mask then all fields will be overwritten if new - * values are specified. - */ - // const updateMask = {} - /** - * Required. The Tensorboard's `name` field is used to identify the - * Tensorboard to be updated. Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}` - */ - // const tensorboard = {} - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callUpdateTensorboard() { - // Construct request - const request = { - updateMask, - tensorboard, - }; - - // Run request - const [operation] = await aiplatformClient.updateTensorboard(request); - const [response] = await operation.promise(); - console.log(response); - } - - callUpdateTensorboard(); - // [END aiplatform_v1beta1_generated_TensorboardService_UpdateTensorboard_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.update_tensorboard_experiment.js b/samples/generated/v1beta1/tensorboard_service.update_tensorboard_experiment.js deleted file mode 100644 index bd6bbeaa..00000000 --- a/samples/generated/v1beta1/tensorboard_service.update_tensorboard_experiment.js +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(updateMask, tensorboardExperiment) { - // [START aiplatform_v1beta1_generated_TensorboardService_UpdateTensorboardExperiment_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. Field mask is used to specify the fields to be overwritten in the - * TensorboardExperiment resource by the update. - * The fields specified in the update_mask are relative to the resource, not - * the full request. A field will be overwritten if it is in the mask. If the - * user does not provide a mask then all fields will be overwritten if new - * values are specified. - */ - // const updateMask = {} - /** - * Required. The TensorboardExperiment's `name` field is used to identify the - * TensorboardExperiment to be updated. Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` - */ - // const tensorboardExperiment = {} - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callUpdateTensorboardExperiment() { - // Construct request - const request = { - updateMask, - tensorboardExperiment, - }; - - // Run request - const response = await aiplatformClient.updateTensorboardExperiment(request); - console.log(response); - } - - callUpdateTensorboardExperiment(); - // [END aiplatform_v1beta1_generated_TensorboardService_UpdateTensorboardExperiment_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.update_tensorboard_run.js b/samples/generated/v1beta1/tensorboard_service.update_tensorboard_run.js deleted file mode 100644 index d250a3a1..00000000 --- a/samples/generated/v1beta1/tensorboard_service.update_tensorboard_run.js +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(updateMask, tensorboardRun) { - // [START aiplatform_v1beta1_generated_TensorboardService_UpdateTensorboardRun_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. Field mask is used to specify the fields to be overwritten in the - * TensorboardRun resource by the update. - * The fields specified in the update_mask are relative to the resource, not - * the full request. A field will be overwritten if it is in the mask. If the - * user does not provide a mask then all fields will be overwritten if new - * values are specified. - */ - // const updateMask = {} - /** - * Required. The TensorboardRun's `name` field is used to identify the TensorboardRun to - * be updated. Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` - */ - // const tensorboardRun = {} - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callUpdateTensorboardRun() { - // Construct request - const request = { - updateMask, - tensorboardRun, - }; - - // Run request - const response = await aiplatformClient.updateTensorboardRun(request); - console.log(response); - } - - callUpdateTensorboardRun(); - // [END aiplatform_v1beta1_generated_TensorboardService_UpdateTensorboardRun_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.update_tensorboard_time_series.js b/samples/generated/v1beta1/tensorboard_service.update_tensorboard_time_series.js deleted file mode 100644 index fb384b47..00000000 --- a/samples/generated/v1beta1/tensorboard_service.update_tensorboard_time_series.js +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(updateMask, tensorboardTimeSeries) { - // [START aiplatform_v1beta1_generated_TensorboardService_UpdateTensorboardTimeSeries_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. Field mask is used to specify the fields to be overwritten in the - * TensorboardTimeSeries resource by the update. - * The fields specified in the update_mask are relative to the resource, not - * the full request. A field will be overwritten if it is in the mask. If the - * user does not provide a mask then all fields will be overwritten if new - * values are specified. - */ - // const updateMask = {} - /** - * Required. The TensorboardTimeSeries' `name` field is used to identify the - * TensorboardTimeSeries to be updated. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` - */ - // const tensorboardTimeSeries = {} - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callUpdateTensorboardTimeSeries() { - // Construct request - const request = { - updateMask, - tensorboardTimeSeries, - }; - - // Run request - const response = await aiplatformClient.updateTensorboardTimeSeries(request); - console.log(response); - } - - callUpdateTensorboardTimeSeries(); - // [END aiplatform_v1beta1_generated_TensorboardService_UpdateTensorboardTimeSeries_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.write_tensorboard_experiment_data.js b/samples/generated/v1beta1/tensorboard_service.write_tensorboard_experiment_data.js deleted file mode 100644 index 9d7b69e4..00000000 --- a/samples/generated/v1beta1/tensorboard_service.write_tensorboard_experiment_data.js +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(tensorboardExperiment, writeRunDataRequests) { - // [START aiplatform_v1beta1_generated_TensorboardService_WriteTensorboardExperimentData_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardExperiment to write data to. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` - */ - // const tensorboardExperiment = 'abc123' - /** - * Required. Requests containing per-run TensorboardTimeSeries data to write. - */ - // const writeRunDataRequests = 1234 - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callWriteTensorboardExperimentData() { - // Construct request - const request = { - tensorboardExperiment, - writeRunDataRequests, - }; - - // Run request - const response = await aiplatformClient.writeTensorboardExperimentData(request); - console.log(response); - } - - callWriteTensorboardExperimentData(); - // [END aiplatform_v1beta1_generated_TensorboardService_WriteTensorboardExperimentData_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/tensorboard_service.write_tensorboard_run_data.js b/samples/generated/v1beta1/tensorboard_service.write_tensorboard_run_data.js deleted file mode 100644 index 28617125..00000000 --- a/samples/generated/v1beta1/tensorboard_service.write_tensorboard_run_data.js +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(tensorboardRun, timeSeriesData) { - // [START aiplatform_v1beta1_generated_TensorboardService_WriteTensorboardRunData_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the TensorboardRun to write data to. - * Format: - * `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` - */ - // const tensorboardRun = 'abc123' - /** - * Required. The TensorboardTimeSeries data to write. - * Values with in a time series are indexed by their step value. - * Repeated writes to the same step will overwrite the existing value for that - * step. - * The upper limit of data points per write request is 5000. - */ - // const timeSeriesData = 1234 - - // Imports the Aiplatform library - const {TensorboardServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new TensorboardServiceClient(); - - async function callWriteTensorboardRunData() { - // Construct request - const request = { - tensorboardRun, - timeSeriesData, - }; - - // Run request - const response = await aiplatformClient.writeTensorboardRunData(request); - console.log(response); - } - - callWriteTensorboardRunData(); - // [END aiplatform_v1beta1_generated_TensorboardService_WriteTensorboardRunData_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/vizier_service.add_trial_measurement.js b/samples/generated/v1beta1/vizier_service.add_trial_measurement.js deleted file mode 100644 index 28271abf..00000000 --- a/samples/generated/v1beta1/vizier_service.add_trial_measurement.js +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(trialName, measurement) { - // [START aiplatform_v1beta1_generated_VizierService_AddTrialMeasurement_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the trial to add measurement. - * Format: - * `projects/{project}/locations/{location}/studies/{study}/trials/{trial}` - */ - // const trialName = 'abc123' - /** - * Required. The measurement to be added to a Trial. - */ - // const measurement = {} - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callAddTrialMeasurement() { - // Construct request - const request = { - trialName, - measurement, - }; - - // Run request - const response = await aiplatformClient.addTrialMeasurement(request); - console.log(response); - } - - callAddTrialMeasurement(); - // [END aiplatform_v1beta1_generated_VizierService_AddTrialMeasurement_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/vizier_service.check_trial_early_stopping_state.js b/samples/generated/v1beta1/vizier_service.check_trial_early_stopping_state.js deleted file mode 100644 index 27989052..00000000 --- a/samples/generated/v1beta1/vizier_service.check_trial_early_stopping_state.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(trialName) { - // [START aiplatform_v1beta1_generated_VizierService_CheckTrialEarlyStoppingState_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Trial's name. - * Format: - * `projects/{project}/locations/{location}/studies/{study}/trials/{trial}` - */ - // const trialName = 'abc123' - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callCheckTrialEarlyStoppingState() { - // Construct request - const request = { - trialName, - }; - - // Run request - const [operation] = await aiplatformClient.checkTrialEarlyStoppingState(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCheckTrialEarlyStoppingState(); - // [END aiplatform_v1beta1_generated_VizierService_CheckTrialEarlyStoppingState_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/vizier_service.complete_trial.js b/samples/generated/v1beta1/vizier_service.complete_trial.js deleted file mode 100644 index fc2447df..00000000 --- a/samples/generated/v1beta1/vizier_service.complete_trial.js +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_VizierService_CompleteTrial_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Trial's name. - * Format: - * `projects/{project}/locations/{location}/studies/{study}/trials/{trial}` - */ - // const name = 'abc123' - /** - * Optional. If provided, it will be used as the completed Trial's - * final_measurement; Otherwise, the service will auto-select a - * previously reported measurement as the final-measurement - */ - // const finalMeasurement = {} - /** - * Optional. True if the Trial cannot be run with the given Parameter, and - * final_measurement will be ignored. - */ - // const trialInfeasible = true - /** - * Optional. A human readable reason why the trial was infeasible. This should - * only be provided if `trial_infeasible` is true. - */ - // const infeasibleReason = 'abc123' - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callCompleteTrial() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.completeTrial(request); - console.log(response); - } - - callCompleteTrial(); - // [END aiplatform_v1beta1_generated_VizierService_CompleteTrial_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/vizier_service.create_study.js b/samples/generated/v1beta1/vizier_service.create_study.js deleted file mode 100644 index f6cdaba4..00000000 --- a/samples/generated/v1beta1/vizier_service.create_study.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, study) { - // [START aiplatform_v1beta1_generated_VizierService_CreateStudy_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to create the CustomJob in. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The Study configuration used to create the Study. - */ - // const study = {} - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callCreateStudy() { - // Construct request - const request = { - parent, - study, - }; - - // Run request - const response = await aiplatformClient.createStudy(request); - console.log(response); - } - - callCreateStudy(); - // [END aiplatform_v1beta1_generated_VizierService_CreateStudy_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/vizier_service.create_trial.js b/samples/generated/v1beta1/vizier_service.create_trial.js deleted file mode 100644 index f8afe5b1..00000000 --- a/samples/generated/v1beta1/vizier_service.create_trial.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, trial) { - // [START aiplatform_v1beta1_generated_VizierService_CreateTrial_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Study to create the Trial in. - * Format: `projects/{project}/locations/{location}/studies/{study}` - */ - // const parent = 'abc123' - /** - * Required. The Trial to create. - */ - // const trial = {} - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callCreateTrial() { - // Construct request - const request = { - parent, - trial, - }; - - // Run request - const response = await aiplatformClient.createTrial(request); - console.log(response); - } - - callCreateTrial(); - // [END aiplatform_v1beta1_generated_VizierService_CreateTrial_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/vizier_service.delete_study.js b/samples/generated/v1beta1/vizier_service.delete_study.js deleted file mode 100644 index 8ff5fcdc..00000000 --- a/samples/generated/v1beta1/vizier_service.delete_study.js +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_VizierService_DeleteStudy_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Study resource to be deleted. - * Format: `projects/{project}/locations/{location}/studies/{study}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callDeleteStudy() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.deleteStudy(request); - console.log(response); - } - - callDeleteStudy(); - // [END aiplatform_v1beta1_generated_VizierService_DeleteStudy_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/vizier_service.delete_trial.js b/samples/generated/v1beta1/vizier_service.delete_trial.js deleted file mode 100644 index b33de2c3..00000000 --- a/samples/generated/v1beta1/vizier_service.delete_trial.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_VizierService_DeleteTrial_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Trial's name. - * Format: - * `projects/{project}/locations/{location}/studies/{study}/trials/{trial}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callDeleteTrial() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.deleteTrial(request); - console.log(response); - } - - callDeleteTrial(); - // [END aiplatform_v1beta1_generated_VizierService_DeleteTrial_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/vizier_service.get_study.js b/samples/generated/v1beta1/vizier_service.get_study.js deleted file mode 100644 index 0eccef49..00000000 --- a/samples/generated/v1beta1/vizier_service.get_study.js +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_VizierService_GetStudy_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Study resource. - * Format: `projects/{project}/locations/{location}/studies/{study}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callGetStudy() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getStudy(request); - console.log(response); - } - - callGetStudy(); - // [END aiplatform_v1beta1_generated_VizierService_GetStudy_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/vizier_service.get_trial.js b/samples/generated/v1beta1/vizier_service.get_trial.js deleted file mode 100644 index d1ff22d3..00000000 --- a/samples/generated/v1beta1/vizier_service.get_trial.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_VizierService_GetTrial_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Trial resource. - * Format: - * `projects/{project}/locations/{location}/studies/{study}/trials/{trial}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callGetTrial() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.getTrial(request); - console.log(response); - } - - callGetTrial(); - // [END aiplatform_v1beta1_generated_VizierService_GetTrial_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/vizier_service.list_optimal_trials.js b/samples/generated/v1beta1/vizier_service.list_optimal_trials.js deleted file mode 100644 index dcd6452d..00000000 --- a/samples/generated/v1beta1/vizier_service.list_optimal_trials.js +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_VizierService_ListOptimalTrials_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the Study that the optimal Trial belongs to. - */ - // const parent = 'abc123' - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callListOptimalTrials() { - // Construct request - const request = { - parent, - }; - - // Run request - const response = await aiplatformClient.listOptimalTrials(request); - console.log(response); - } - - callListOptimalTrials(); - // [END aiplatform_v1beta1_generated_VizierService_ListOptimalTrials_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/vizier_service.list_studies.js b/samples/generated/v1beta1/vizier_service.list_studies.js deleted file mode 100644 index b61e2496..00000000 --- a/samples/generated/v1beta1/vizier_service.list_studies.js +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_VizierService_ListStudies_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to list the Study from. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Optional. A page token to request the next page of results. - * If unspecified, there are no subsequent pages. - */ - // const pageToken = 'abc123' - /** - * Optional. The maximum number of studies to return per "page" of results. - * If unspecified, service will pick an appropriate default. - */ - // const pageSize = 1234 - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callListStudies() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listStudiesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListStudies(); - // [END aiplatform_v1beta1_generated_VizierService_ListStudies_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/vizier_service.list_trials.js b/samples/generated/v1beta1/vizier_service.list_trials.js deleted file mode 100644 index ad56495e..00000000 --- a/samples/generated/v1beta1/vizier_service.list_trials.js +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START aiplatform_v1beta1_generated_VizierService_ListTrials_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Study to list the Trial from. - * Format: `projects/{project}/locations/{location}/studies/{study}` - */ - // const parent = 'abc123' - /** - * Optional. A page token to request the next page of results. - * If unspecified, there are no subsequent pages. - */ - // const pageToken = 'abc123' - /** - * Optional. The number of Trials to retrieve per "page" of results. - * If unspecified, the service will pick an appropriate default. - */ - // const pageSize = 1234 - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callListTrials() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await aiplatformClient.listTrialsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListTrials(); - // [END aiplatform_v1beta1_generated_VizierService_ListTrials_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/vizier_service.lookup_study.js b/samples/generated/v1beta1/vizier_service.lookup_study.js deleted file mode 100644 index c77ec93a..00000000 --- a/samples/generated/v1beta1/vizier_service.lookup_study.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, displayName) { - // [START aiplatform_v1beta1_generated_VizierService_LookupStudy_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Location to get the Study from. - * Format: `projects/{project}/locations/{location}` - */ - // const parent = 'abc123' - /** - * Required. The user-defined display name of the Study - */ - // const displayName = 'abc123' - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callLookupStudy() { - // Construct request - const request = { - parent, - displayName, - }; - - // Run request - const response = await aiplatformClient.lookupStudy(request); - console.log(response); - } - - callLookupStudy(); - // [END aiplatform_v1beta1_generated_VizierService_LookupStudy_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/vizier_service.stop_trial.js b/samples/generated/v1beta1/vizier_service.stop_trial.js deleted file mode 100644 index e0ae4bc4..00000000 --- a/samples/generated/v1beta1/vizier_service.stop_trial.js +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START aiplatform_v1beta1_generated_VizierService_StopTrial_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The Trial's name. - * Format: - * `projects/{project}/locations/{location}/studies/{study}/trials/{trial}` - */ - // const name = 'abc123' - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callStopTrial() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await aiplatformClient.stopTrial(request); - console.log(response); - } - - callStopTrial(); - // [END aiplatform_v1beta1_generated_VizierService_StopTrial_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/generated/v1beta1/vizier_service.suggest_trials.js b/samples/generated/v1beta1/vizier_service.suggest_trials.js deleted file mode 100644 index 7d8cbc0e..00000000 --- a/samples/generated/v1beta1/vizier_service.suggest_trials.js +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, suggestionCount, clientId) { - // [START aiplatform_v1beta1_generated_VizierService_SuggestTrials_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The project and location that the Study belongs to. - * Format: `projects/{project}/locations/{location}/studies/{study}` - */ - // const parent = 'abc123' - /** - * Required. The number of suggestions requested. It must be positive. - */ - // const suggestionCount = 1234 - /** - * Required. The identifier of the client that is requesting the suggestion. - * If multiple SuggestTrialsRequests have the same `client_id`, - * the service will return the identical suggested Trial if the Trial is - * pending, and provide a new Trial if the last suggested Trial was completed. - */ - // const clientId = 'abc123' - - // Imports the Aiplatform library - const {VizierServiceClient} = require('@google-cloud/aiplatform').v1beta1; - - // Instantiates a client - const aiplatformClient = new VizierServiceClient(); - - async function callSuggestTrials() { - // Construct request - const request = { - parent, - suggestionCount, - clientId, - }; - - // Run request - const [operation] = await aiplatformClient.suggestTrials(request); - const [response] = await operation.promise(); - console.log(response); - } - - callSuggestTrials(); - // [END aiplatform_v1beta1_generated_VizierService_SuggestTrials_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/samples/get-batch-prediction-job.js b/samples/get-batch-prediction-job.js deleted file mode 100644 index a263b9e1..00000000 --- a/samples/get-batch-prediction-job.js +++ /dev/null @@ -1,151 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -'use strict'; - -async function main(batchPredictionJobId, project, location = 'us-central1') { - // [START aiplatform_get_batch_prediction_job_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const batchPredictionJobId = 'YOUR_BATCH_PREDICTION_JOB_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Job Service Client library - const {JobServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const jobServiceClient = new JobServiceClient(clientOptions); - - async function getBatchPredictionJob() { - // Configure the parent resource - const name = `projects/${project}/locations/${location}/batchPredictionJobs/${batchPredictionJobId}`; - const request = { - name, - }; - - // Get batch prediction request - const [response] = await jobServiceClient.getBatchPredictionJob(request); - - console.log('Get batch prediction job response'); - console.log(`\tName : ${response.name}`); - console.log(`\tDisplayName : ${response.displayName}`); - console.log(`\tModel : ${response.model}`); - console.log(`\tModel parameters : ${response.modelParameters}`); - console.log(`\tGenerate explanation : ${response.generateExplanation}`); - console.log(`\tState : ${response.state}`); - console.log(`\tCreate Time : ${JSON.stringify(response.createTime)}`); - console.log(`\tStart Time : ${JSON.stringify(response.startTime)}`); - console.log(`\tEnd Time : ${JSON.stringify(response.endTime)}`); - console.log(`\tUpdate Time : ${JSON.stringify(response.updateTime)}`); - console.log(`\tLabels : ${JSON.stringify(response.labels)}`); - - const inputConfig = response.inputConfig; - console.log('\tInput config'); - console.log(`\t\tInstances format : ${inputConfig.instancesFormat}`); - - const gcsSource = inputConfig.gcsSource; - console.log('\t\tGcs source'); - console.log(`\t\t\tUris : ${gcsSource.uris}`); - - const bigquerySource = inputConfig.bigquerySource; - console.log('\t\tBigQuery Source'); - if (!bigquerySource) { - console.log('\t\t\tInput Uri : {}'); - } else { - console.log(`\t\t\tInput Uri : ${bigquerySource.inputUri}`); - } - - const outputConfig = response.outputConfig; - console.log('\t\tOutput config'); - console.log(`\t\tPredictions format : ${outputConfig.predictionsFormat}`); - - const gcsDestination = outputConfig.gcsDestination; - console.log('\t\tGcs Destination'); - console.log(`\t\t\tOutput uri prefix : ${gcsDestination.outputUriPrefix}`); - - const bigqueryDestination = outputConfig.bigqueryDestination; - if (!bigqueryDestination) { - console.log('\t\tBigquery Destination'); - console.log('\t\t\tOutput uri : {}'); - } else { - console.log('\t\tBigquery Destination'); - console.log(`\t\t\tOutput uri : ${bigqueryDestination.outputUri}`); - } - - const outputInfo = response.outputInfo; - if (!outputInfo) { - console.log('\tOutput info'); - console.log('\t\tGcs output directory : {}'); - console.log('\t\tBigquery_output_dataset : {}'); - } else { - console.log('\tOutput info'); - console.log( - `\t\tGcs output directory : ${outputInfo.gcsOutputDirectory}` - ); - console.log(`\t\tBigquery_output_dataset : - ${outputInfo.bigqueryOutputDataset}`); - } - - const error = response.error; - console.log('\tError'); - console.log(`\t\tCode : ${error.code}`); - console.log(`\t\tMessage : ${error.message}`); - - const details = error.details; - console.log(`\t\tDetails : ${details}`); - - const partialFailures = response.partialFailures; - console.log('\tPartial failure'); - console.log(partialFailures); - - const resourcesConsumed = response.resourcesConsumed; - console.log('\tResource consumed'); - if (!resourcesConsumed) { - console.log('\t\tReplica Hours: {}'); - } else { - console.log(`\t\tReplica Hours: ${resourcesConsumed.replicaHours}`); - } - - const completionStats = response.completionStats; - console.log('\tCompletion status'); - if (!completionStats) { - console.log('\t\tSuccessful count: {}'); - console.log('\t\tFailed count: {}'); - console.log('\t\tIncomplete count: {}'); - } else { - console.log(`\t\tSuccessful count: ${completionStats.successfulCount}`); - console.log(`\t\tFailed count: ${completionStats.failedCount}`); - console.log(`\t\tIncomplete count: ${completionStats.incompleteCount}`); - } - } - getBatchPredictionJob(); - // [END aiplatform_get_batch_prediction_job_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/get-custom-job.js b/samples/get-custom-job.js deleted file mode 100644 index 7589a725..00000000 --- a/samples/get-custom-job.js +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(customJobId, project, location = 'us-central1') { - // [START aiplatform_get_custom_job_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - */ - - // const customJobId = 'YOUR_CUSTOM_JOB_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Job Service Client library - const {JobServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const jobServiceClient = new JobServiceClient(clientOptions); - - async function getCustomJob() { - // Configure the name resource - const name = `projects/${project}/locations/${location}/customJobs/${customJobId}`; - const request = { - name, - }; - - // Get custom job request - const [response] = await jobServiceClient.getCustomJob(request); - - console.log('Get custom job response'); - console.log(`\t${JSON.stringify(response)}`); - } - getCustomJob(); - // [END aiplatform_get_custom_job_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/get-entity-type-sample.js b/samples/get-entity-type-sample.js deleted file mode 100644 index 7123bb34..00000000 --- a/samples/get-entity-type-sample.js +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Gets details of a single EntityType. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - entityTypeId, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 5000 -) { - // [START aiplatform_get_entity_type_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function getEntityType() { - // Configure the name resource - const name = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId}`; - - const request = { - name: name, - }; - - // Get EntityType request - const [response] = await featurestoreServiceClient.getEntityType(request, { - timeout: Number(timeout), - }); - - console.log('Get entity type response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - getEntityType(); - // [END aiplatform_get_entity_type_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/get-feature-sample.js b/samples/get-feature-sample.js deleted file mode 100644 index e89fcdc3..00000000 --- a/samples/get-feature-sample.js +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Gets details of a single Feature. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - entityTypeId, - featureId, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_get_feature_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; - // const featureId = 'YOUR_FEATURE_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function getFeature() { - // Configure the name resource - const name = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId}/features/${featureId}`; - - const request = { - name: name, - }; - - // Get Feature request - const [response] = await featurestoreServiceClient.getFeature(request, { - timeout: Number(timeout), - }); - - console.log('Get feature response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - getFeature(); - // [END aiplatform_get_feature_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/get-featurestore-sample.js b/samples/get-featurestore-sample.js deleted file mode 100644 index fe6e38f3..00000000 --- a/samples/get-featurestore-sample.js +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Gets details of a single Featurestore. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 5000 -) { - // [START aiplatform_get_featurestore_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function getFeaturestore() { - // Configure the parent resource - const name = `projects/${project}/locations/${location}/featurestores/${featurestoreId}`; - - const request = { - name: name, - }; - - // Get Featurestore request - const [response] = await featurestoreServiceClient.getFeaturestore( - request, - {timeout: Number(timeout)} - ); - - console.log('Get featurestore response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - getFeaturestore(); - // [END aiplatform_get_featurestore_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/get-hyperparameter-tuning-job.js b/samples/get-hyperparameter-tuning-job.js deleted file mode 100644 index 9331f0d9..00000000 --- a/samples/get-hyperparameter-tuning-job.js +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2021 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(tuningJobId, project, location = 'us-central1') { - // [START aiplatform_get_hyperparameter_tuning_job_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const tuningJobId = 'YOUR_TUNING_JOB_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Model Service Client library - const {JobServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const jobServiceClient = new JobServiceClient(clientOptions); - - async function getHyperparameterTuningJob() { - // Configure the parent resource - const name = jobServiceClient.hyperparameterTuningJobPath( - project, - location, - tuningJobId - ); - const request = { - name, - }; - // Get and print out a list of all the endpoints for this resource - const [response] = await jobServiceClient.getHyperparameterTuningJob( - request - ); - - console.log('Get hyperparameter tuning job response'); - console.log(`\tDisplay name: ${response.displayName}`); - console.log(`\tTuning job resource name: ${response.name}`); - console.log(`\tJob status: ${response.state}`); - } - getHyperparameterTuningJob(); - // [END aiplatform_get_hyperparameter_tuning_job_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/get-model-evaluation-image-classification.js b/samples/get-model-evaluation-image-classification.js deleted file mode 100644 index 0b67c1cf..00000000 --- a/samples/get-model-evaluation-image-classification.js +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(modelId, evaluationId, project, location = 'us-central1') { - // [START aiplatform_get_model_evaluation_image_classification_sample] - /** - * TODO(developer): Uncomment these variables before running the sample - * (not necessary if passing values as arguments). To obtain evaluationId, - * instantiate the client and run the following the commands. - */ - // const parentName = `projects/${project}/locations/${location}/models/${modelId}`; - // const evalRequest = { - // parent: parentName - // }; - // const [evalResponse] = await modelServiceClient.listModelEvaluations(evalRequest); - // console.log(evalResponse); - - // const modelId = 'YOUR_MODEL_ID'; - // const evaluationId = 'YOUR_EVALUATION_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Model Service Client library - const {ModelServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const modelServiceClient = new ModelServiceClient(clientOptions); - - async function getModelEvaluationImageClassification() { - // Configure the name resources - const name = `projects/${project}/locations/${location}/models/${modelId}/evaluations/${evaluationId}`; - const request = { - name, - }; - - // Create get model evaluation request - const [response] = await modelServiceClient.getModelEvaluation(request); - - console.log('Get model evaluation image classification response'); - console.log(`\tName : ${response.name}`); - console.log(`\tMetrics schema uri : ${response.metricsSchemaUri}`); - console.log(`\tMetrics : ${JSON.stringify(response.metrics)}`); - console.log(`\tCreate time : ${JSON.stringify(response.createTime)}`); - console.log(`\tSlice dimensions : ${response.sliceDimensions}`); - - const modelExplanation = response.modelExplanation; - if (modelExplanation === null) { - console.log(`\tModel explanation: ${JSON.stringify(modelExplanation)}`); - } else { - const meanAttributions = modelExplanation.meanAttributions; - for (const meanAttribution of meanAttributions) { - console.log('\t\tMean attribution'); - console.log( - `\t\t\tBaseline output value : \ - ${meanAttribution.baselineOutputValue}` - ); - console.log( - `\t\t\tInstance output value : \ - ${meanAttribution.instanceOutputValue}` - ); - console.log( - `\t\t\tFeature attributions : \ - ${JSON.stringify(meanAttribution.featureAttributions)}` - ); - console.log(`\t\t\tOutput index : ${meanAttribution.outputIndex}`); - console.log( - `\t\t\tOutput display name : \ - ${meanAttribution.outputDisplayName}` - ); - console.log( - `\t\t\tApproximation error : \ - ${meanAttribution.approximationError}` - ); - } - } - } - getModelEvaluationImageClassification(); - // [END aiplatform_get_model_evaluation_image_classification_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/get-model-evaluation-image-object-detection.js b/samples/get-model-evaluation-image-object-detection.js deleted file mode 100644 index fc60fc7a..00000000 --- a/samples/get-model-evaluation-image-object-detection.js +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(modelId, evaluationId, project, location = 'us-central1') { - // [START aiplatform_get_model_evaluation_image_object_detection_sample] - /** - * TODO(developer): Uncomment these variables before running the sample - * (not necessary if passing values as arguments). To obtain evaluationId, - * instantiate the client and run the following the commands. - */ - // const parentName = `projects/${project}/locations/${location}/models/${modelId}`; - // const evalRequest = { - // parent: parentName - // }; - // const [evalResponse] = await modelServiceClient.listModelEvaluations(evalRequest); - // console.log(evalResponse); - - // const modelId = 'YOUR_MODEL_ID'; - // const evaluationId = 'YOUR_EVALUATION_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Model Service Client library - const {ModelServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const modelServiceClient = new ModelServiceClient(clientOptions); - - async function getModelEvaluationImageObjectDetection() { - // Configure the name resources - const name = `projects/${project}/locations/${location}/models/${modelId}/evaluations/${evaluationId}`; - const request = { - name, - }; - - // Create get model evaluation request - const [response] = await modelServiceClient.getModelEvaluation(request); - - console.log('Get model evaluation image object detection response'); - console.log(`\tName : ${response.name}`); - console.log(`\tMetrics schema uri : ${response.metricsSchemaUri}`); - console.log(`\tCreate time : ${JSON.stringify(response.createTime)}`); - console.log(`\tSlice dimensions : ${response.sliceDimensions}`); - - const modelExplanation = response.modelExplanation; - console.log('\tModel explanation'); - if (modelExplanation === null) { - console.log('\t\t{}'); - } else { - const meanAttributions = modelExplanation.meanAttributions; - if (meanAttributions === null) { - console.log('\t\t\t []'); - } else { - for (const meanAttribution of meanAttributions) { - console.log('\t\tMean attribution'); - console.log( - `\t\t\tBaseline output value : \ - ${meanAttribution.baselineOutputValue}` - ); - console.log( - `\t\t\tInstance output value : \ - ${meanAttribution.instanceOutputValue}` - ); - console.log( - `\t\t\tFeature attributions : \ - ${meanAttribution.featureAttributions}` - ); - console.log(`\t\t\tOutput index : ${meanAttribution.outputIndex}`); - console.log( - `\t\t\tOutput display name : \ - ${meanAttribution.outputDisplayName}` - ); - console.log( - `\t\t\tApproximation error : \ - ${meanAttribution.approximationError}` - ); - } - } - } - } - getModelEvaluationImageObjectDetection(); - // [END aiplatform_get_model_evaluation_image_object_detection_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/get-model-evaluation-slice.js b/samples/get-model-evaluation-slice.js deleted file mode 100644 index e31d60c3..00000000 --- a/samples/get-model-evaluation-slice.js +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - modelId, - evaluationId, - sliceId, - project, - location = 'us-central1' -) { - // [START aiplatform_get_model_evaluation_slice_sample] - /** - * TODO(developer): Uncomment these variables before running the sample - * (not necessary if passing values as arguments). To obtain evaluationId, - * instantiate the client and run the following the commands. - */ - // const parentName = `projects/${project}/locations/${location}/models/${modelId}`; - // const evalRequest = { - // parent: parentName - // }; - // const [evalResponse] = await modelServiceClient.listModelEvaluations(evalRequest); - // console.log(evalResponse); - - // const modelId = 'YOUR_MODEL_ID'; - // const evaluationId = 'YOUR_EVALUATION_ID'; - // const sliceId = 'YOUR_SLICE_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Model Service client library - const {ModelServiceClient} = require('@google-cloud/aiplatform'); - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - // Specifies the location of the api endpoint - const modelServiceClient = new ModelServiceClient(clientOptions); - - async function getModelEvaluationSlice() { - // Configure the parent resource - const name = `projects/${project}/locations/${location}/models/${modelId}/evaluations/${evaluationId}/slices/${sliceId}`; - const request = { - name, - }; - - // Get and print out a list of all the endpoints for this resource - const [response] = await modelServiceClient.getModelEvaluationSlice( - request - ); - - console.log('Get model evaluation slice'); - console.log(`\tName : ${response.name}`); - console.log(`\tMetrics_Schema_Uri : ${response.metricsSchemaUri}`); - console.log(`\tMetrics : ${JSON.stringify(response.metrics)}`); - console.log(`\tCreate time : ${JSON.stringify(response.createTime)}`); - - console.log('Slice'); - const slice = response.slice; - console.log(`\tDimension :${slice.dimension}`); - console.log(`\tValue :${slice.value}`); - } - getModelEvaluationSlice(); - // [END aiplatform_get_model_evaluation_slice_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/get-model-evaluation-tabular-classification.js b/samples/get-model-evaluation-tabular-classification.js deleted file mode 100644 index 63f0c98c..00000000 --- a/samples/get-model-evaluation-tabular-classification.js +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(modelId, evaluationId, project, location = 'us-central1') { - // [START aiplatform_get_model_evaluation_tabular_classification_sample] - /** - * TODO(developer): Uncomment these variables before running the sample - * (not necessary if passing values as arguments). To obtain evaluationId, - * instantiate the client and run the following the commands. - */ - // const parentName = `projects/${project}/locations/${location}/models/${modelId}`; - // const evalRequest = { - // parent: parentName - // }; - // const [evalResponse] = await modelServiceClient.listModelEvaluations(evalRequest); - // console.log(evalResponse); - - // const modelId = 'YOUR_MODEL_ID'; - // const evaluationId = 'YOUR_EVALUATION_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Model Service Client library - const {ModelServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const modelServiceClient = new ModelServiceClient(clientOptions); - - async function getModelEvaluationTabularClassification() { - // Configure the parent resources - const name = `projects/${project}/locations/${location}/models/${modelId}/evaluations/${evaluationId}`; - const request = { - name, - }; - - // Get model evaluation request - const [response] = await modelServiceClient.getModelEvaluation(request); - - console.log('Get model evaluation tabular classification response'); - console.log(`\tName : ${response.name}`); - console.log(`\tMetrics schema uri : ${response.metricsSchemaUri}`); - console.log(`\tMetrics : ${JSON.stringify(response.metrics)}`); - console.log(`\tCreate time : ${JSON.stringify(response.createTime)}`); - console.log(`\tSlice dimensions : ${response.sliceDimensions}`); - - const modelExplanation = response.modelExplanation; - console.log('\tModel explanation'); - if (!modelExplanation) { - console.log('\t\t{}'); - } else { - const meanAttributions = modelExplanation.meanAttributions; - if (!meanAttributions) { - console.log('\t\t\t []'); - } else { - for (const meanAttribution of meanAttributions) { - console.log('\t\tMean attribution'); - console.log( - `\t\t\tBaseline output value : \ - ${meanAttribution.baselineOutputValue}` - ); - console.log( - `\t\t\tInstance output value : \ - ${meanAttribution.instanceOutputValue}` - ); - console.log( - `\t\t\tFeature attributions : \ - ${JSON.stringify(meanAttribution.featureAttributions)}` - ); - console.log(`\t\t\tOutput index : ${meanAttribution.outputIndex}`); - console.log( - `\t\t\tOutput display name : \ - ${meanAttribution.outputDisplayName}` - ); - console.log( - `\t\t\tApproximation error : \ - ${meanAttribution.approximationError}` - ); - } - } - } - } - getModelEvaluationTabularClassification(); - // [END aiplatform_get_model_evaluation_tabular_classification_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/get-model-evaluation-tabular-regression.js b/samples/get-model-evaluation-tabular-regression.js deleted file mode 100644 index 55766745..00000000 --- a/samples/get-model-evaluation-tabular-regression.js +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(modelId, evaluationId, project, location = 'us-central1') { - // [START aiplatform_get_model_evaluation_tabular_regression_sample] - /** - * TODO(developer): Uncomment these variables before running the sample - * (not necessary if passing values as arguments). To obtain evaluationId, - * instantiate the client and run the following the commands. - */ - // const parentName = `projects/${project}/locations/${location}/models/${modelId}`; - // const evalRequest = { - // parent: parentName - // }; - // const [evalResponse] = await modelServiceClient.listModelEvaluations(evalRequest); - // console.log(evalResponse); - - // const modelId = 'YOUR_MODEL_ID'; - // const evaluationId = 'YOUR_EVALUATION_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Model Service Client library - const {ModelServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const modelServiceClient = new ModelServiceClient(clientOptions); - - async function getModelEvaluationTabularRegression() { - // Configure the parent resources - const name = `projects/${project}/locations/${location}/models/${modelId}/evaluations/${evaluationId}`; - const request = { - name, - }; - - // Get model evaluation request - const [response] = await modelServiceClient.getModelEvaluation(request); - - console.log('Get model evaluation tabular regression response'); - console.log(`\tName : ${response.name}`); - console.log(`\tMetrics schema uri : ${response.metricsSchemaUri}`); - console.log(`\tMetrics : ${JSON.stringify(response.metrics)}`); - console.log(`\tCreate time : ${JSON.stringify(response.createTime)}`); - console.log(`\tSlice dimensions : ${response.sliceDimensions}`); - - const modelExplanation = response.modelExplanation; - console.log('\tModel explanation'); - if (!modelExplanation) { - console.log('\t\t{}'); - } else { - const meanAttributions = modelExplanation.meanAttributions; - if (!meanAttributions) { - console.log('\t\t\t []'); - } else { - for (const meanAttribution of meanAttributions) { - console.log('\t\tMean attribution'); - console.log( - `\t\t\tBaseline output value : \ - ${meanAttribution.baselineOutputValue}` - ); - console.log( - `\t\t\tInstance output value : \ - ${meanAttribution.instanceOutputValue}` - ); - console.log( - `\t\t\tFeature attributions : \ - ${JSON.stringify(meanAttribution.featureAttributions)}` - ); - console.log(`\t\t\tOutput index : ${meanAttribution.outputIndex}`); - console.log( - `\t\t\tOutput display name : \ - ${meanAttribution.outputDisplayName}` - ); - console.log( - `\t\t\tApproximation error : \ - ${meanAttribution.approximationError}` - ); - } - } - } - } - getModelEvaluationTabularRegression(); - // [END aiplatform_get_model_evaluation_tabular_regression_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/get-model-evaluation-text-classification.js b/samples/get-model-evaluation-text-classification.js deleted file mode 100644 index bb28b0a2..00000000 --- a/samples/get-model-evaluation-text-classification.js +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(modelId, evaluationId, project, location = 'us-central1') { - // [START aiplatform_get_model_evaluation_text_classification_sample] - /** - * TODO(developer): Uncomment these variables before running the sample - * (not necessary if passing values as arguments). To obtain evaluationId, - * instantiate the client and run the following the commands. - */ - // const parentName = `projects/${project}/locations/${location}/models/${modelId}`; - // const evalRequest = { - // parent: parentName - // }; - // const [evalResponse] = await modelServiceClient.listModelEvaluations(evalRequest); - // console.log(evalResponse); - - // const modelId = 'YOUR_MODEL_ID'; - // const evaluationId = 'YOUR_EVALUATION_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Model Service Client library - const {ModelServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const modelServiceClient = new ModelServiceClient(clientOptions); - - async function getModelEvaluationTextClassification() { - // Configure the resources - const name = `projects/${project}/locations/${location}/models/${modelId}/evaluations/${evaluationId}`; - const request = { - name, - }; - - // Get model evaluation request - const [response] = await modelServiceClient.getModelEvaluation(request); - - console.log('Get model evaluation text classification response :'); - console.log(`\tName : ${response.name}`); - console.log(`\tMetrics schema uri : ${response.metricsSchemaUri}`); - console.log(`\tMetrics : ${JSON.stringify(response.metrics)}`); - - const modelExplanation = response.modelExplanation; - console.log('\tModel explanation'); - if (modelExplanation === null) { - console.log('\t\t{}'); - } else { - const meanAttributions = modelExplanation.meanAttributions; - if (meanAttributions === null) { - console.log('\t\t\t []'); - } else { - for (const meanAttribution of meanAttributions) { - console.log('\t\tMean attribution'); - console.log( - `\t\t\tBaseline output value : \ - ${meanAttribution.baselineOutputValue}` - ); - console.log( - `\t\t\tInstance output value : \ - ${meanAttribution.instanceOutputValue}` - ); - console.log( - `\t\t\tFeature attributions : \ - ${JSON.stringify(meanAttribution.featureAttributions)}` - ); - console.log(`\t\t\tOutput index : ${meanAttribution.outputIndex}`); - console.log( - `\t\t\tOutput display name : \ - ${meanAttribution.outputDisplayName}` - ); - console.log( - `\t\t\tApproximation error : \ - ${meanAttribution.approximationError}` - ); - } - } - } - } - getModelEvaluationTextClassification(); - // [END aiplatform_get_model_evaluation_text_classification_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/get-model-evaluation-text-entity-extraction.js b/samples/get-model-evaluation-text-entity-extraction.js deleted file mode 100644 index b5182362..00000000 --- a/samples/get-model-evaluation-text-entity-extraction.js +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(modelId, evaluationId, project, location = 'us-central1') { - // [START aiplatform_get_model_evaluation_text_entity_extraction_sample] - /** - * TODO(developer): Uncomment these variables before running the sample - * (not necessary if passing values as arguments). To obtain evaluationId, - * instantiate the client and run the following the commands. - */ - // const parentName = `projects/${project}/locations/${location}/models/${modelId}`; - // const evalRequest = { - // parent: parentName - // }; - // const [evalResponse] = await modelServiceClient.listModelEvaluations(evalRequest); - // console.log(evalResponse); - - // const modelId = 'YOUR_MODEL_ID'; - // const evaluationId = 'YOUR_EVALUATION_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Model Service Client library - const {ModelServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const modelServiceClient = new ModelServiceClient(clientOptions); - - async function getModelEvaluationTextEntityExtraction() { - // Configure the resources - const name = `projects/${project}/locations/${location}/models/${modelId}/evaluations/${evaluationId}`; - const request = { - name, - }; - - // Get model evaluation request - const [response] = await modelServiceClient.getModelEvaluation(request); - - console.log('Get model evaluation text entity extraction response :'); - console.log(`\tName : ${response.name}`); - console.log(`\tMetrics schema uri : ${response.metricsSchemaUri}`); - console.log(`\tMetrics : ${JSON.stringify(response.metrics)}`); - - const modelExplanation = response.modelExplanation; - console.log('\tModel explanation'); - if (modelExplanation === null) { - console.log('\t\t{}'); - } else { - const meanAttributions = modelExplanation.meanAttributions; - if (meanAttributions === null) { - console.log('\t\t\t []'); - } else { - for (const meanAttribution of meanAttributions) { - console.log('\t\tMean attribution'); - console.log( - `\t\t\tBaseline output value : \ - ${meanAttribution.baselineOutputValue}` - ); - console.log( - `\t\t\tInstance output value : \ - ${meanAttribution.instanceOutputValue}` - ); - console.log( - `\t\t\tFeature attributions : \ - ${JSON.stringify(meanAttribution.featureAttributions)}` - ); - console.log(`\t\t\tOutput index : ${meanAttribution.outputIndex}`); - console.log( - `\t\t\tOutput display name : \ - ${meanAttribution.outputDisplayName}` - ); - console.log( - `\t\t\tApproximation error : \ - ${meanAttribution.approximationError}` - ); - } - } - } - } - getModelEvaluationTextEntityExtraction(); - // [END aiplatform_get_model_evaluation_text_entity_extraction_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/get-model-evaluation-text-sentiment-analysis.js b/samples/get-model-evaluation-text-sentiment-analysis.js deleted file mode 100644 index 09565191..00000000 --- a/samples/get-model-evaluation-text-sentiment-analysis.js +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(modelId, evaluationId, project, location = 'us-central1') { - // [START aiplatform_get_model_evaluation_text_sentiment_analysis_sample] - /** - * TODO(developer): Uncomment these variables before running the sample - * (not necessary if passing values as arguments). To obtain evaluationId, - * instantiate the client and run the following the commands. - */ - // const parentName = `projects/${project}/locations/${location}/models/${modelId}`; - // const evalRequest = { - // parent: parentName - // }; - // const [evalResponse] = await modelServiceClient.listModelEvaluations(evalRequest); - // console.log(evalResponse); - - // const modelId = 'YOUR_MODEL_ID'; - // const evaluationId = 'YOUR_EVALUATION_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Model Service Client library - const {ModelServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const modelServiceClient = new ModelServiceClient(clientOptions); - - async function getModelEvaluationTextSentimentAnalysis() { - // Configure the resources - const name = `projects/${project}/locations/${location}/models/${modelId}/evaluations/${evaluationId}`; - const request = { - name, - }; - - // Get model evaluation request - const [response] = await modelServiceClient.getModelEvaluation(request); - - console.log('Get model evaluation text sentiment analysis response :'); - console.log(`\tName : ${response.name}`); - console.log(`\tMetrics schema uri : ${response.metricsSchemaUri}`); - console.log(`\tMetrics : ${JSON.stringify(response.metrics)}`); - - const modelExplanation = response.modelExplanation; - console.log('\tModel explanation'); - if (modelExplanation === null) { - console.log('\t\t{}'); - } else { - const meanAttributions = modelExplanation.meanAttributions; - if (meanAttributions === null) { - console.log('\t\t\t []'); - } else { - for (const meanAttribution of meanAttributions) { - console.log('\t\tMean attribution'); - console.log( - `\t\t\tBaseline output value : \ - ${meanAttribution.baselineOutputValue}` - ); - console.log( - `\t\t\tInstance output value : \ - ${meanAttribution.instanceOutputValue}` - ); - console.log( - `\t\t\tFeature attributions : \ - ${JSON.stringify(meanAttribution.featureAttributions)}` - ); - console.log(`\t\t\tOutput index : ${meanAttribution.outputIndex}`); - console.log( - `\t\t\tOutput display name : \ - ${meanAttribution.outputDisplayName}` - ); - console.log( - `\t\t\tApproximation error : \ - ${meanAttribution.approximationError}` - ); - } - } - } - } - getModelEvaluationTextSentimentAnalysis(); - // [END aiplatform_get_model_evaluation_text_sentiment_analysis_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/get-model-evaluation-video-action-recognition.js b/samples/get-model-evaluation-video-action-recognition.js deleted file mode 100644 index 8b67cc9f..00000000 --- a/samples/get-model-evaluation-video-action-recognition.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2021 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(modelId, evaluationId, project, location = 'us-central1') { - // [START aiplatform_get_model_evaluation_video_action_recognition_sample] - /** - * TODO(developer): Uncomment these variables before running the sample - * (not necessary if passing values as arguments). To obtain evaluationId, - * instantiate the client and run the following the commands. - */ - // const parentName = `projects/${project}/locations/${location}/models/${modelId}`; - // const evalRequest = { - // parent: parentName - // }; - // const [evalResponse] = await modelServiceClient.listModelEvaluations(evalRequest); - // console.log(evalResponse); - - // const modelId = 'YOUR_MODEL_ID'; - // const evaluationId = 'YOUR_EVALUATION_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Model Service Client library - const {ModelServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const modelServiceClient = new ModelServiceClient(clientOptions); - - async function getModelEvaluationVideoActionRecognition() { - // Configure the parent resources - const name = modelServiceClient.modelEvaluationPath( - project, - location, - modelId, - evaluationId - ); - const request = { - name, - }; - - // Create get model evaluation request - const [response] = await modelServiceClient.getModelEvaluation(request); - - console.log('Get model evaluation video action recognition response'); - console.log(`\tName : ${response.name}`); - console.log(`\tMetrics schema uri : ${response.metricsSchemaUri}`); - console.log(`\tMetrics : ${JSON.stringify(response.metrics)}`); - console.log(`\tCreate time : ${JSON.stringify(response.createTime)}`); - console.log(`\tSlice dimensions : ${response.sliceDimensions}`); - } - getModelEvaluationVideoActionRecognition(); - // [END aiplatform_get_model_evaluation_video_action_recognition_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/get-model-evaluation-video-classification.js b/samples/get-model-evaluation-video-classification.js deleted file mode 100644 index 2a98fa36..00000000 --- a/samples/get-model-evaluation-video-classification.js +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(modelId, evaluationId, project, location = 'us-central1') { - // [START aiplatform_get_model_evaluation_video_classification_sample] - /** - * TODO(developer): Uncomment these variables before running the sample - * (not necessary if passing values as arguments). To obtain evaluationId, - * instantiate the client and run the following the commands. - */ - // const parentName = `projects/${project}/locations/${location}/models/${modelId}`; - // const evalRequest = { - // parent: parentName - // }; - // const [evalResponse] = await modelServiceClient.listModelEvaluations(evalRequest); - // console.log(evalResponse); - - // const modelId = 'YOUR_MODEL_ID'; - // const evaluationId = 'YOUR_EVALUATION_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Model Service Client library - const {ModelServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const modelServiceClient = new ModelServiceClient(clientOptions); - - async function getModelEvaluationVideoClassification() { - // Configure the parent resources - const name = `projects/${project}/locations/${location}/models/${modelId}/evaluations/${evaluationId}`; - const request = { - name, - }; - - // Create get model evaluation request - const [response] = await modelServiceClient.getModelEvaluation(request); - - console.log('Get model evaluation video classification response'); - console.log(`\tName : ${response.name}`); - console.log(`\tMetrics schema uri : ${response.metricsSchemaUri}`); - console.log(`\tMetrics : ${JSON.stringify(response.metrics)}`); - console.log(`\tCreate time : ${JSON.stringify(response.createTime)}`); - console.log(`\tSlice dimensions : ${response.sliceDimensions}`); - } - getModelEvaluationVideoClassification(); - // [END aiplatform_get_model_evaluation_video_classification_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/get-model-evaluation-video-object-tracking.js b/samples/get-model-evaluation-video-object-tracking.js deleted file mode 100644 index 76198ce5..00000000 --- a/samples/get-model-evaluation-video-object-tracking.js +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(modelId, evaluationId, project, location = 'us-central1') { - // [START aiplatform_get_model_evaluation_video_object_tracking_sample] - /** - * TODO(developer): Uncomment these variables before running the sample - * (not necessary if passing values as arguments). To obtain evaluationId, - * instantiate the client and run the following the commands. - */ - // const parentName = `projects/${project}/locations/${location}/models/${modelId}`; - // const evalRequest = { - // parent: parentName - // }; - // const [evalResponse] = await modelServiceClient.listModelEvaluations(evalRequest); - // console.log(evalResponse); - - // const modelId = 'YOUR_MODEL_ID'; - // const evaluationId = 'YOUR_EVALUATION_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Model Service Client library - const {ModelServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const modelServiceClient = new ModelServiceClient(clientOptions); - - async function getModelEvaluationVideoObjectTracking() { - // Configure the parent resources - const name = `projects/${project}/locations/${location}/models/${modelId}/evaluations/${evaluationId}`; - const request = { - name, - }; - - // Create get model evaluation request - const [response] = await modelServiceClient.getModelEvaluation(request); - - console.log('Get model evaluation video object tracking response'); - console.log(`\tName : ${response.name}`); - console.log(`\tMetrics schema uri : ${response.metricsSchemaUri}`); - console.log(`\tMetrics : ${JSON.stringify(response.metrics)}`); - console.log(`\tCreate time : ${JSON.stringify(response.createTime)}`); - console.log(`\tSlice dimensions : ${response.sliceDimensions}`); - } - getModelEvaluationVideoObjectTracking(); - // [END aiplatform_get_model_evaluation_video_object_tracking_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/get-model-evaluation.js b/samples/get-model-evaluation.js deleted file mode 100644 index c8a4a8f4..00000000 --- a/samples/get-model-evaluation.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(modelId, evaluationId, project, location = 'us-central1') { - // [START aiplatform_get_model_evaluation_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - (Not necessary if passing values as arguments) - */ - - // const modelId = 'YOUR_MODEL_ID'; - // const evaluationId = 'YOUR_EVALUATION_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Model Service Client library - const {ModelServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const modelServiceClient = new ModelServiceClient(clientOptions); - - async function getModelEvaluation() { - // Configure the parent resources - const name = `projects/${project}/locations/${location}/models/${modelId}/evaluations/${evaluationId}`; - const request = { - name, - }; - - // Create get model evaluation request - const [response] = await modelServiceClient.getModelEvaluation(request); - - console.log('Get model evaluation response'); - console.log(`\tName : ${response.name}`); - console.log(`\tMetrics schema uri : ${response.metricsSchemaUri}`); - console.log(`\tCreate time : ${JSON.stringify(response.createTime)}`); - console.log(`\tSlice dimensions : ${response.sliceDimensions}`); - } - getModelEvaluation(); - // [END aiplatform_get_model_evaluation_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/get-model.js b/samples/get-model.js deleted file mode 100644 index 5723c278..00000000 --- a/samples/get-model.js +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(modelId, project, location = 'us-central1') { - // [START aiplatform_get_model_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const modelId = 'YOUR_MODEL_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Model Service Client library - const {ModelServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const modelServiceClient = new ModelServiceClient(clientOptions); - - async function getModel() { - // Configure the parent resource - const name = `projects/${project}/locations/${location}/models/${modelId}`; - const request = { - name, - }; - // Get and print out a list of all the endpoints for this resource - const [response] = await modelServiceClient.getModel(request); - - console.log('Get model response'); - console.log(`\tName : ${response.name}`); - console.log(`\tDisplayName : ${response.displayName}`); - console.log(`\tDescription : ${response.description}`); - console.log(`\tMetadata schema uri : ${response.metadataSchemaUri}`); - console.log(`\tMetadata : ${JSON.stringify(response.metadata)}`); - console.log(`\tTraining pipeline : ${response.trainingPipeline}`); - console.log(`\tArtifact uri : ${response.artifactUri}`); - console.log( - `\tSupported deployment resource types : \ - ${response.supportedDeploymentResourceTypes}` - ); - console.log( - `\tSupported input storage formats : \ - ${response.supportedInputStorageFormats}` - ); - console.log( - `\tSupported output storage formats : \ - ${response.supportedOutputStoragFormats}` - ); - console.log(`\tCreate time : ${JSON.stringify(response.createTime)}`); - console.log(`\tUpdate time : ${JSON.stringify(response.updateTime)}`); - console.log(`\tLabels : ${JSON.stringify(response.labels)}`); - - const predictSchemata = response.predictSchemata; - console.log('\tPredict schemata'); - console.log(`\tInstance schema uri : ${predictSchemata.instanceSchemaUri}`); - console.log( - `\tParameters schema uri : ${predictSchemata.prametersSchemaUri}` - ); - console.log( - `\tPrediction schema uri : ${predictSchemata.predictionSchemaUri}` - ); - - const [supportedExportFormats] = response.supportedExportFormats; - console.log('\tSupported export formats'); - console.log(`\t${supportedExportFormats}`); - - const containerSpec = response.containerSpec; - console.log('\tContainer Spec'); - if (!containerSpec) { - console.log(`\t\t${JSON.stringify(containerSpec)}`); - console.log('\t\tImage uri : {}'); - console.log('\t\tCommand : {}'); - console.log('\t\tArgs : {}'); - console.log('\t\tPredict route : {}'); - console.log('\t\tHealth route : {}'); - console.log('\t\tEnv'); - console.log('\t\t\t{}'); - console.log('\t\tPort'); - console.log('\t\t{}'); - } else { - console.log(`\t\t${JSON.stringify(containerSpec)}`); - console.log(`\t\tImage uri : ${containerSpec.imageUri}`); - console.log(`\t\tCommand : ${containerSpec.command}`); - console.log(`\t\tArgs : ${containerSpec.args}`); - console.log(`\t\tPredict route : ${containerSpec.predictRoute}`); - console.log(`\t\tHealth route : ${containerSpec.healthRoute}`); - const env = containerSpec.env; - console.log('\t\tEnv'); - console.log(`\t\t\t${JSON.stringify(env)}`); - const ports = containerSpec.ports; - console.log('\t\tPort'); - console.log(`\t\t\t${JSON.stringify(ports)}`); - } - - const [deployedModels] = response.deployedModels; - console.log('\tDeployed models'); - console.log('\t\t', deployedModels); - } - getModel(); - // [END aiplatform_get_model_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/get-training-pipeline.js b/samples/get-training-pipeline.js deleted file mode 100644 index eca150c5..00000000 --- a/samples/get-training-pipeline.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2021 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(trainingPipelineId, project, location = 'us-central1') { - // [START aiplatform_get_training_pipeline_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const trainingPipelineId = 'YOUR_MODEL_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Model Service Client library - const {PipelineServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const pipelineServiceClient = new PipelineServiceClient(clientOptions); - - async function getTrainingPipeline() { - // Configure the parent resource - const name = pipelineServiceClient.trainingPipelinePath( - project, - location, - trainingPipelineId - ); - const request = { - name, - }; - // Get and print out a list of all the endpoints for this resource - const [response] = await pipelineServiceClient.getTrainingPipeline(request); - - console.log('Get training pipeline response'); - console.log(`\tTraining pipeline name: ${response.displayName}`); - console.log(`\tTraining pipeline state: ${response.state}`); - } - getTrainingPipeline(); - // [END aiplatform_get_training_pipeline_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/import-data-image-classification.js b/samples/import-data-image-classification.js deleted file mode 100644 index a6571850..00000000 --- a/samples/import-data-image-classification.js +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetId, - gcsSourceUri, - project, - location = 'us-central1' -) { - // [START aiplatform_import_data_image_classification_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetId = "YOUR_DATASET_ID"; - // const gcsSourceUri = "YOUR_GCS_SOURCE_URI"; - // eg. "gs:////[file.csv/file.jsonl]" - // const project = "YOUR_PROJECT_ID"; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Dataset Service Client library - const {DatasetServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - const datasetServiceClient = new DatasetServiceClient(clientOptions); - - async function importDataImageClassification() { - const name = datasetServiceClient.datasetPath(project, location, datasetId); - // Here we use only one import config with one source - const importConfigs = [ - { - gcsSource: {uris: [gcsSourceUri]}, - importSchemaUri: - 'gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml', - }, - ]; - const request = { - name, - importConfigs, - }; - - // Create Import Data Request - const [response] = await datasetServiceClient.importData(request); - console.log(`Long running operation: ${response.name}`); - - // Wait for operation to complete - const [importDataResponse] = await response.promise(); - - console.log( - `Import data image classification response : \ - ${JSON.stringify(importDataResponse)}` - ); - } - importDataImageClassification(); - // [END aiplatform_import_data_image_classification_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/import-data-image-object-detection.js b/samples/import-data-image-object-detection.js deleted file mode 100644 index fd974560..00000000 --- a/samples/import-data-image-object-detection.js +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetId, - gcsSourceUri, - project, - location = 'us-central1' -) { - // [START aiplatform_import_data_image_object_detection_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetId = "YOUR_DATASET_ID"; - // const gcsSourceUri = "YOUR_GCS_SOURCE_URI"; - // eg. "gs:////[file.csv/file.jsonl]" - // const project = "YOUR_PROJECT_ID"; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Dataset Service Client library - const {DatasetServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - const datasetServiceClient = new DatasetServiceClient(clientOptions); - - async function importDataImageObjectDetection() { - const name = datasetServiceClient.datasetPath(project, location, datasetId); - // Here we use only one import config with one source - const importConfigs = [ - { - gcsSource: {uris: [gcsSourceUri]}, - importSchemaUri: - 'gs://google-cloud-aiplatform/schema/dataset/ioformat/image_bounding_box_io_format_1.0.0.yaml', - }, - ]; - const request = { - name, - importConfigs, - }; - - // Create Import Data Request - const [response] = await datasetServiceClient.importData(request); - console.log(`Long running operation : ${response.name}`); - - // Wait for operation to complete - await response.promise(); - - console.log( - `Import data image object detection response : \ - ${JSON.stringify(response.result)}` - ); - } - importDataImageObjectDetection(); - // [END aiplatform_import_data_image_object_detection_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/import-data-text-classification-single-label.js b/samples/import-data-text-classification-single-label.js deleted file mode 100644 index 71140183..00000000 --- a/samples/import-data-text-classification-single-label.js +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetId, - gcsSourceUri, - project, - location = 'us-central1' -) { - // [START aiplatform_import_data_text_classification_single_label_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetId = "YOUR_DATASET_ID"; - // const gcsSourceUri = "YOUR_GCS_SOURCE_URI"; - // eg. "gs:////[file.csv/file.jsonl]" - // const project = "YOUR_PROJECT_ID"; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Dataset Service Client library - const {DatasetServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - const datasetServiceClient = new DatasetServiceClient(clientOptions); - - async function importDataTextClassificationSingleLabel() { - const name = datasetServiceClient.datasetPath(project, location, datasetId); - // Here we use only one import config with one source - const importConfigs = [ - { - gcsSource: {uris: [gcsSourceUri]}, - importSchemaUri: - 'gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_single_label_io_format_1.0.0.yaml', - }, - ]; - const request = { - name, - importConfigs, - }; - - // Import data request - const [response] = await datasetServiceClient.importData(request); - console.log(`Long running operation : ${response.name}`); - - // Wait for operation to complete - const [importDataResponse] = await response.promise(); - - console.log( - `Import data text classification single label response : \ - ${JSON.stringify(importDataResponse.result)}` - ); - } - importDataTextClassificationSingleLabel(); - // [END aiplatform_import_data_text_classification_single_label_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/import-data-text-entity-extraction.js b/samples/import-data-text-entity-extraction.js deleted file mode 100644 index 743b3646..00000000 --- a/samples/import-data-text-entity-extraction.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetId, - gcsSourceUri, - project, - location = 'us-central1' -) { - // [START aiplatform_import_data_text_entity_extraction_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - */ - - // const datasetId = "YOUR_DATASET_ID"; - // const gcsSourceUri = "YOUR_GCS_SOURCE_URI"; - // eg. "gs:////[file.csv/file.jsonl]" - // const project = "YOUR_PROJECT_ID"; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Dataset Service Client library - const {DatasetServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - const datasetServiceClient = new DatasetServiceClient(clientOptions); - - async function importDataTextEntityExtraction() { - const name = datasetServiceClient.datasetPath(project, location, datasetId); - // Here we use only one import config with one source - const importConfigs = [ - { - gcsSource: {uris: [gcsSourceUri]}, - importSchemaUri: - 'gs://google-cloud-aiplatform/schema/dataset/ioformat/text_extraction_io_format_1.0.0.yaml', - }, - ]; - const request = { - name, - importConfigs, - }; - - // Import data request - const [response] = await datasetServiceClient.importData(request); - console.log(`Long running operation : ${response.name}`); - - // Wait for operation to complete - const [importDataResponse] = await response.promise(); - - console.log( - `Import data text entity extraction response : \ - ${JSON.stringify(importDataResponse.result)}` - ); - } - importDataTextEntityExtraction(); - // [END aiplatform_import_data_text_entity_extraction_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/import-data-text-sentiment-analysis.js b/samples/import-data-text-sentiment-analysis.js deleted file mode 100644 index c455fdb2..00000000 --- a/samples/import-data-text-sentiment-analysis.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetId, - gcsSourceUri, - project, - location = 'us-central1' -) { - // [START aiplatform_import_data_text_sentiment_analysis_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - */ - - // const datasetId = "YOUR_DATASET_ID"; - // const gcsSourceUri = "YOUR_GCS_SOURCE_URI"; - // eg. "gs:////[file.csv/file.jsonl]" - // const project = "YOUR_PROJECT_ID"; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Dataset Service Client library - const {DatasetServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - const datasetServiceClient = new DatasetServiceClient(clientOptions); - - async function importDataTextSentimentAnalysis() { - const name = datasetServiceClient.datasetPath(project, location, datasetId); - // Here we use only one import config with one source - const importConfigs = [ - { - gcsSource: {uris: [gcsSourceUri]}, - importSchemaUri: - 'gs://google-cloud-aiplatform/schema/dataset/ioformat/text_sentiment_io_format_1.0.0.yaml', - }, - ]; - const request = { - name, - importConfigs, - }; - - // Import data request - const [response] = await datasetServiceClient.importData(request); - console.log(`Long running operation : ${response.name}`); - - // Wait for operation to complete - const [importDataResponse] = await response.promise(); - - console.log( - `Import data text sentiment analysis response : \ - ${JSON.stringify(importDataResponse.result, null, 2)}` - ); - } - importDataTextSentimentAnalysis(); - // [END aiplatform_import_data_text_sentiment_analysis_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/import-data-video-action-recognition.js b/samples/import-data-video-action-recognition.js deleted file mode 100644 index 6c44cdc2..00000000 --- a/samples/import-data-video-action-recognition.js +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetId, - gcsSourceUri, - project, - location = 'us-central1' -) { - // [START aiplatform_import_data_video_action_recognition_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetId = 'YOUR_DATASET_ID'; - // const gcsSourceUri = 'YOUR_GCS_SOURCE_URI'; - // eg. 'gs:////[file.csv/file.jsonl]' - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Dataset Service Client library - const {DatasetServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - const datasetServiceClient = new DatasetServiceClient(clientOptions); - - async function importDataVideoActionRecognition() { - const name = datasetServiceClient.datasetPath(project, location, datasetId); - // Here we use only one import config with one source - const importConfigs = [ - { - gcsSource: {uris: [gcsSourceUri]}, - importSchemaUri: - 'gs://google-cloud-aiplatform/schema/dataset/ioformat/video_action_recognition_io_format_1.0.0.yaml', - }, - ]; - const request = { - name, - importConfigs, - }; - - // Create Import Data Request - const [response] = await datasetServiceClient.importData(request); - console.log(`Long running operation : ${response.name}`); - - // Wait for operation to complete - await response.promise(); - - console.log( - `Import data video action recognition response : \ - ${JSON.stringify(response.result)}` - ); - } - importDataVideoActionRecognition(); - // [END aiplatform_import_data_video_action_recognition_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/import-data-video-classification.js b/samples/import-data-video-classification.js deleted file mode 100644 index 7439bb8c..00000000 --- a/samples/import-data-video-classification.js +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetId, - gcsSourceUri, - project, - location = 'us-central1' -) { - // [START aiplatform_import_data_video_classification_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const datasetId = 'YOUR_DATASET_ID'; - // const gcsSourceUri = 'YOUR_GCS_SOURCE_URI'; - // eg. 'gs:////[file.csv/file.jsonl]' - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Dataset Service Client library - const {DatasetServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - const datasetServiceClient = new DatasetServiceClient(clientOptions); - - async function importDataVideoClassification() { - const name = datasetServiceClient.datasetPath(project, location, datasetId); - // Here we use only one import config with one source - const importConfigs = [ - { - gcsSource: {uris: [gcsSourceUri]}, - importSchemaUri: - 'gs://google-cloud-aiplatform/schema/dataset/ioformat/video_classification_io_format_1.0.0.yaml', - }, - ]; - const request = { - name, - importConfigs, - }; - - // Create Import Data Request - const [response] = await datasetServiceClient.importData(request); - console.log(`Long running operation : ${response.name}`); - - // Wait for operation to complete - await response.promise(); - - console.log( - `Import data video classification response : \ - ${JSON.stringify(response.result)}` - ); - } - importDataVideoClassification(); - // [END aiplatform_import_data_video_classification_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/import-data-video-object-tracking.js b/samples/import-data-video-object-tracking.js deleted file mode 100644 index b447fa29..00000000 --- a/samples/import-data-video-object-tracking.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetId, - gcsSourceUri, - project, - location = 'us-central1' -) { - // [START aiplatform_import_data_video_object_tracking_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - */ - - // const datasetId = 'YOUR_DATASET_ID'; - // const gcsSourceUri = 'YOUR_GCS_SOURCE_URI'; - // eg. 'gs:////[file.csv/file.jsonl]' - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Dataset Service Client library - const {DatasetServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - const datasetServiceClient = new DatasetServiceClient(clientOptions); - - async function importDataVideoObjectTracking() { - const name = datasetServiceClient.datasetPath(project, location, datasetId); - // Here we use only one import config with one source - const importConfigs = [ - { - gcsSource: {uris: [gcsSourceUri]}, - importSchemaUri: - 'gs://google-cloud-aiplatform/schema/dataset/ioformat/video_object_tracking_io_format_1.0.0.yaml', - }, - ]; - const request = { - name, - importConfigs, - }; - - // Create Import Data Request - const [response] = await datasetServiceClient.importData(request); - console.log(`Long running operation: ${JSON.stringify(response.name)}`); - - // Wait for operation to complete - const [importDataResponse] = await response.promise(); - - console.log( - `Import data video object tracking response : \ - ${JSON.stringify(importDataResponse)}` - ); - } - importDataVideoObjectTracking(); - // [END aiplatform_import_data_video_object_tracking_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/import-data.js b/samples/import-data.js deleted file mode 100644 index 4b9f46b0..00000000 --- a/samples/import-data.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - datasetId, - gcsSourceUri, - importSchemaUri, - project, - location = 'us-central1' -) { - // [START aiplatform_import_data_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - */ - - // const datasetId = "YOUR_DATASET_ID"; - // const gcsSourceUri = "YOUR_GCS_SOURCE_URI"; - // eg. "gs:////[file.csv/file.jsonl]" - // const importSchemaUri = "YOUR_IMPORT_SCHEMA_URI"; - // const project = "YOUR_PROJECT_ID"; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Dataset Service Client library - const {DatasetServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - const datasetServiceClient = new DatasetServiceClient(clientOptions); - - async function importData() { - const name = datasetServiceClient.datasetPath(project, location, datasetId); - // Here we use only one import config with one source - const importConfigs = [ - { - gcsSource: {uris: [gcsSourceUri]}, - importSchemaUri: importSchemaUri, - }, - ]; - const request = { - name, - importConfigs, - }; - - // Create Import Data Request - const [response] = await datasetServiceClient.importData(request); - console.log(`Long running operation : ${response.name}`); - - // Wait for operation to complete - await response.promise(); - - console.log(`Import data response : ${JSON.stringify(response.result)}`); - } - importData(); - // [END aiplatform_import_data_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/import-feature-values-sample.js b/samples/import-feature-values-sample.js deleted file mode 100644 index 01a174bf..00000000 --- a/samples/import-feature-values-sample.js +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Imports Feature values into the Featurestore from a source storage. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - entityTypeId, - avroGcsUri, - entityIdField, - featureTimeField, - workerCount = 2, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_import_feature_values_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; - // const avroGcsUri = 'AVRO_FILE_IN_THE_GCS_URI'; - // const entityIdField = 'ENTITY_ID_FIELD_IN_AVRO'; - // const featureTimeField = 'TIMESTAMP_FIELD_IN_AVRO'; - // const workerCount = ; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function importFeatureValues() { - // Configure the entityType resource - const entityType = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId}`; - - const avroSource = { - gcsSource: { - uris: [avroGcsUri], - }, - }; - - const featureSpecs = [{id: 'age'}, {id: 'gender'}, {id: 'liked_genres'}]; - - const request = { - entityType: entityType, - avroSource: avroSource, - entityIdField: entityIdField, - featureSpecs: featureSpecs, - featureTimeField: featureTimeField, - workerCount: Number(workerCount), - }; - - // Import Feature Values Request - const [operation] = await featurestoreServiceClient.importFeatureValues( - request, - {timeout: Number(timeout)} - ); - const [response] = await operation.promise(); - - console.log('Import feature values response'); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - importFeatureValues(); - // [END aiplatform_import_feature_values_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/list-endpoints.js b/samples/list-endpoints.js deleted file mode 100644 index 01e42591..00000000 --- a/samples/list-endpoints.js +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Copyright 2020, Google, LLC. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(projectId, location = 'us-central1') { - // [START aiplatform_list_endpoints_sample] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - // const projectId = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - const {EndpointServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - const client = new EndpointServiceClient(clientOptions); - - async function listEndpoints() { - // Configure the parent resource - const parent = `projects/${projectId}/locations/${location}`; - const request = { - parent, - }; - - // Get and print out a list of all the endpoints for this resource - const [result] = await client.listEndpoints(request); - for (const endpoint of result) { - console.log(`\nEndpoint name: ${endpoint.name}`); - console.log(`Display name: ${endpoint.displayName}`); - if (endpoint.deployedModels[0]) { - console.log( - `First deployed model: ${endpoint.deployedModels[0].model}` - ); - } - } - } - listEndpoints(); - // [END aiplatform_list_endpoints_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/list-entity-types-async-sample.js b/samples/list-entity-types-async-sample.js deleted file mode 100644 index c6b1c740..00000000 --- a/samples/list-entity-types-async-sample.js +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Lists EntityTypes Asynchronously in a given Featurestore. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 5000 -) { - // [START aiplatform_list_entity_types_async_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function listEntityTypesAsync() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}/featurestores/${featurestoreId}`; - - const request = { - parent: parent, - }; - - // List EntityTypes Async request - const iterable = await featurestoreServiceClient.listEntityTypesAsync( - request, - {timeout: Number(timeout)} - ); - - console.log('List entity types async response'); - console.log('Raw response:'); - for await (const response of iterable) { - console.log(JSON.stringify(response, null, 2)); - } - } - listEntityTypesAsync(); - // [END aiplatform_list_entity_types_async_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/list-entity-types-sample.js b/samples/list-entity-types-sample.js deleted file mode 100644 index 716842a0..00000000 --- a/samples/list-entity-types-sample.js +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Lists EntityTypes in a given Featurestore. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 5000 -) { - // [START aiplatform_list_entity_types_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function listEntityTypes() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}/featurestores/${featurestoreId}`; - - const request = { - parent: parent, - }; - - // List EntityTypes request - const [response] = await featurestoreServiceClient.listEntityTypes( - request, - {timeout: Number(timeout)} - ); - - console.log('List entity types response'); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - listEntityTypes(); - // [END aiplatform_list_entity_types_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/list-entity-types-stream-sample.js b/samples/list-entity-types-stream-sample.js deleted file mode 100644 index 5197d79f..00000000 --- a/samples/list-entity-types-stream-sample.js +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Lists EntityTypes using streaming in a given Featurestore. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 5000 -) { - // [START aiplatform_list_entity_types_stream_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function listEntityTypesStream() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}/featurestores/${featurestoreId}`; - - const request = { - parent: parent, - }; - - // List EntityTypes stream request - const streamObject = await featurestoreServiceClient.listEntityTypesStream( - request, - {timeout: Number(timeout)} - ); - - console.log('List entity types stream response'); - console.log('Raw response:'); - streamObject.on('data', response => { - console.log(JSON.stringify(response, null, 2)); - }); - - streamObject.on('end', () => { - console.log('No more data to read'); - }); - - streamObject.on('close', () => { - console.log('Stream object listEntityTypesStream is closed'); - }); - } - listEntityTypesStream(); - // [END aiplatform_list_entity_types_stream_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/list-features-async-sample.js b/samples/list-features-async-sample.js deleted file mode 100644 index 5df6446f..00000000 --- a/samples/list-features-async-sample.js +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Lists Features Asynchronously in a given EntityType. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - entityTypeId, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_list_features_async_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function listFeaturesAsync() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId}`; - - const request = { - parent: parent, - }; - - // List Features async request - const iterable = await featurestoreServiceClient.listFeaturesAsync( - request, - { - timeout: Number(timeout), - } - ); - - console.log('List features async response'); - console.log('Raw response:'); - for await (const response of iterable) { - console.log(JSON.stringify(response, null, 2)); - } - } - listFeaturesAsync(); - // [END aiplatform_list_features_async_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/list-features-sample.js b/samples/list-features-sample.js deleted file mode 100644 index da75bfdf..00000000 --- a/samples/list-features-sample.js +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Lists Features in a given EntityType. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - entityTypeId, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_list_features_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function listFeatures() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId}`; - - const request = { - parent: parent, - }; - - // List Features request - const [response] = await featurestoreServiceClient.listFeatures(request, { - timeout: Number(timeout), - }); - - console.log('List features response'); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - listFeatures(); - // [END aiplatform_list_features_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/list-features-stream-sample.js b/samples/list-features-stream-sample.js deleted file mode 100644 index c85e3f54..00000000 --- a/samples/list-features-stream-sample.js +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Lists Features using streaming in a given EntityType. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - entityTypeId, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_list_features_stream_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function listFeaturesStream() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId}`; - - const request = { - parent: parent, - }; - - // List Features stream request - const streamObject = await featurestoreServiceClient.listFeaturesStream( - request, - { - timeout: Number(timeout), - } - ); - - console.log('List features stream response'); - console.log('Raw response:'); - streamObject.on('data', response => { - console.log(JSON.stringify(response, null, 2)); - }); - - streamObject.on('end', () => { - console.log('No more data to read'); - }); - - streamObject.on('close', () => { - console.log('Stream object listFeaturesStream is closed'); - }); - } - listFeaturesStream(); - // [END aiplatform_list_features_stream_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/list-featurestores-async-sample.js b/samples/list-featurestores-async-sample.js deleted file mode 100644 index 16bbc8f7..00000000 --- a/samples/list-featurestores-async-sample.js +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Lists Featurestores asynchronously in a given project and location. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 5000 -) { - // [START aiplatform_list_featurestores_async_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function listFeaturestoresAsync() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - - const request = { - parent: parent, - }; - - // List featurestores async request - const iterable = await featurestoreServiceClient.listFeaturestoresAsync( - request, - {timeout: Number(timeout)} - ); - - console.log('List featurestores async response'); - console.log('Raw response:'); - for await (const response of iterable) { - console.log(JSON.stringify(response, null, 2)); - } - } - listFeaturestoresAsync(); - // [END aiplatform_list_featurestores_async_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/list-featurestores-sample.js b/samples/list-featurestores-sample.js deleted file mode 100644 index 1bacda43..00000000 --- a/samples/list-featurestores-sample.js +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Lists Featurestores in a given project and location. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 5000 -) { - // [START aiplatform_list_featurestores_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function listFeaturestores() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - - const request = { - parent: parent, - }; - - // List featurestores request - const [response] = await featurestoreServiceClient.listFeaturestores( - request, - {timeout: Number(timeout)} - ); - - console.log('List featurestores response'); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - listFeaturestores(); - // [END aiplatform_list_featurestores_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/list-featurestores-stream-sample.js b/samples/list-featurestores-stream-sample.js deleted file mode 100644 index f8515464..00000000 --- a/samples/list-featurestores-stream-sample.js +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Lists Featurestores using stream in a given project and location. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 5000 -) { - // [START aiplatform_list_featurestores_stream_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function listFeaturestoresStream() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - - const request = { - parent: parent, - }; - - // List featurestores stream request - const streamObject = - await featurestoreServiceClient.listFeaturestoresStream(request, { - timeout: Number(timeout), - }); - - console.log('List featurestores stream response'); - console.log('Raw response:'); - - streamObject.on('data', response => { - console.log(JSON.stringify(response, null, 2)); - }); - - streamObject.on('end', () => { - console.log('No more data to read'); - }); - - streamObject.on('close', () => { - console.log('Stream object listFeaturestoresStream is closed'); - }); - } - listFeaturestoresStream(); - // [END aiplatform_list_featurestores_stream_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/list-model-evaluation-slices.js b/samples/list-model-evaluation-slices.js deleted file mode 100644 index e59bf191..00000000 --- a/samples/list-model-evaluation-slices.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(modelId, evaluationId, project, location = 'us-central1') { - // [START aiplatform_list_model_evaluation_slices_sample] - /** - * TODO(developer): Uncomment these variables before running the sample - * (not necessary if passing values as arguments). To obtain evaluationId, - * instantiate the client and run the following the commands. - */ - // const parentName = `projects/${project}/locations/${location}/models/${modelId}`; - // const evalRequest = { - // parent: parentName - // }; - // const [evalResponse] = await modelServiceClient.listModelEvaluations(evalRequest); - // console.log(evalResponse); - - // const modelId = 'YOUR_MODEL_ID'; - // const evaluationId = 'YOUR_EVALUATION_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Model Service Client library - const {ModelServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const modelServiceClient = new ModelServiceClient(clientOptions); - - async function listModelEvaluationSlices() { - // Configure the parent resources - const parent = `projects/${project}/locations/${location}/models/${modelId}/evaluations/${evaluationId}`; - const request = { - parent, - }; - - // Get and print out a list of all the evaluation slices for this resource - const [response] = await modelServiceClient.listModelEvaluationSlices( - request - ); - console.log('List model evaluation response', response); - console.log(response); - } - listModelEvaluationSlices(); - // [END aiplatform_list_model_evaluation_slices_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/package.json b/samples/package.json deleted file mode 100644 index 0ec292b2..00000000 --- a/samples/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "nodejs-aiplatform-samples", - "private": true, - "license": "Apache-2.0", - "author": "Google LLC", - "engines": { - "node": ">=12.0.0" - }, - "files": [ - "*.js" - ], - "scripts": { - "test": "mocha --timeout 1200000 test/*.js" - }, - "dependencies": { - "@google-cloud/aiplatform": "^2.3.0", - "@google-cloud/storage": "^5.5.0", - "@google-cloud/bigquery": "^6.0.0" - }, - "devDependencies": { - "chai": "^4.2.0", - "mocha": "^8.0.0", - "uuid": "^9.0.0" - } -} diff --git a/samples/predict-custom-trained-model.js b/samples/predict-custom-trained-model.js deleted file mode 100644 index 24f8ccbc..00000000 --- a/samples/predict-custom-trained-model.js +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(filename, endpointId, project, location = 'us-central1') { - // [START aiplatform_predict_custom_trained_model_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const filename = "YOUR_PREDICTION_FILE_NAME"; - // const endpointId = "YOUR_ENDPOINT_ID"; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - const util = require('util'); - const {readFile} = require('fs'); - const readFileAsync = util.promisify(readFile); - - // Imports the Google Cloud Prediction Service Client library - const {PredictionServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const predictionServiceClient = new PredictionServiceClient(clientOptions); - - async function predictCustomTrainedModel() { - // Configure the parent resource - const endpoint = `projects/${project}/locations/${location}/endpoints/${endpointId}`; - const parameters = { - structValue: { - fields: {}, - }, - }; - const instanceDict = await readFileAsync(filename, 'utf8'); - const instanceValue = JSON.parse(instanceDict); - const instance = { - structValue: { - fields: { - Age: {stringValue: instanceValue['Age']}, - Balance: {stringValue: instanceValue['Balance']}, - Campaign: {stringValue: instanceValue['Campaign']}, - Contact: {stringValue: instanceValue['Contact']}, - Day: {stringValue: instanceValue['Day']}, - Default: {stringValue: instanceValue['Default']}, - Deposit: {stringValue: instanceValue['Deposit']}, - Duration: {stringValue: instanceValue['Duration']}, - Housing: {stringValue: instanceValue['Housing']}, - Job: {stringValue: instanceValue['Job']}, - Loan: {stringValue: instanceValue['Loan']}, - MaritalStatus: {stringValue: instanceValue['MaritalStatus']}, - Month: {stringValue: instanceValue['Month']}, - PDays: {stringValue: instanceValue['PDays']}, - POutcome: {stringValue: instanceValue['POutcome']}, - Previous: {stringValue: instanceValue['Previous']}, - }, - }, - }; - - const instances = [instance]; - const request = { - endpoint, - instances, - parameters, - }; - - // Predict request - const [response] = await predictionServiceClient.predict(request); - - console.log('Predict custom trained model response'); - console.log(`\tDeployed model id : ${response.deployedModelId}`); - const predictions = response.predictions; - console.log('\tPredictions :'); - for (const prediction of predictions) { - console.log(`\t\tPrediction : ${JSON.stringify(prediction)}`); - } - } - predictCustomTrainedModel(); - // [END aiplatform_predict_custom_trained_model_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/predict-image-classification.js b/samples/predict-image-classification.js deleted file mode 100644 index 6be66857..00000000 --- a/samples/predict-image-classification.js +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -function main(filename, endpointId, project, location = 'us-central1') { - // [START aiplatform_predict_image_classification_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const filename = "YOUR_PREDICTION_FILE_NAME"; - // const endpointId = "YOUR_ENDPOINT_ID"; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - const aiplatform = require('@google-cloud/aiplatform'); - const {instance, params, prediction} = - aiplatform.protos.google.cloud.aiplatform.v1.schema.predict; - - // Imports the Google Cloud Prediction Service Client library - const {PredictionServiceClient} = aiplatform.v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const predictionServiceClient = new PredictionServiceClient(clientOptions); - - async function predictImageClassification() { - // Configure the endpoint resource - const endpoint = `projects/${project}/locations/${location}/endpoints/${endpointId}`; - - const parametersObj = new params.ImageClassificationPredictionParams({ - confidenceThreshold: 0.5, - maxPredictions: 5, - }); - const parameters = parametersObj.toValue(); - - const fs = require('fs'); - const image = fs.readFileSync(filename, 'base64'); - const instanceObj = new instance.ImageClassificationPredictionInstance({ - content: image, - }); - const instanceValue = instanceObj.toValue(); - - const instances = [instanceValue]; - const request = { - endpoint, - instances, - parameters, - }; - - // Predict request - const [response] = await predictionServiceClient.predict(request); - - console.log('Predict image classification response'); - console.log(`\tDeployed model id : ${response.deployedModelId}`); - const predictions = response.predictions; - console.log('\tPredictions :'); - for (const predictionValue of predictions) { - const predictionResultObj = - prediction.ClassificationPredictionResult.fromValue(predictionValue); - for (const [i, label] of predictionResultObj.displayNames.entries()) { - console.log(`\tDisplay name: ${label}`); - console.log(`\tConfidences: ${predictionResultObj.confidences[i]}`); - console.log(`\tIDs: ${predictionResultObj.ids[i]}\n\n`); - } - } - } - predictImageClassification(); - // [END aiplatform_predict_image_classification_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/predict-image-object-detection.js b/samples/predict-image-object-detection.js deleted file mode 100644 index ed6fdd5d..00000000 --- a/samples/predict-image-object-detection.js +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(filename, endpointId, project, location = 'us-central1') { - // [START aiplatform_predict_image_object_detection_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const filename = "YOUR_PREDICTION_FILE_NAME"; - // const endpointId = "YOUR_ENDPOINT_ID"; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - const aiplatform = require('@google-cloud/aiplatform'); - const {instance, params, prediction} = - aiplatform.protos.google.cloud.aiplatform.v1.schema.predict; - - // Imports the Google Cloud Prediction Service Client library - const {PredictionServiceClient} = aiplatform.v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const predictionServiceClient = new PredictionServiceClient(clientOptions); - - async function predictImageObjectDetection() { - // Configure the endpoint resource - const endpoint = `projects/${project}/locations/${location}/endpoints/${endpointId}`; - - const parametersObj = new params.ImageObjectDetectionPredictionParams({ - confidenceThreshold: 0.5, - maxPredictions: 5, - }); - const parameters = parametersObj.toValue(); - - const fs = require('fs'); - const image = fs.readFileSync(filename, 'base64'); - const instanceObj = new instance.ImageObjectDetectionPredictionInstance({ - content: image, - }); - - const instanceVal = instanceObj.toValue(); - const instances = [instanceVal]; - const request = { - endpoint, - instances, - parameters, - }; - - // Predict request - const [response] = await predictionServiceClient.predict(request); - - console.log('Predict image object detection response'); - console.log(`\tDeployed model id : ${response.deployedModelId}`); - const predictions = response.predictions; - console.log('Predictions :'); - for (const predictionResultVal of predictions) { - const predictionResultObj = - prediction.ImageObjectDetectionPredictionResult.fromValue( - predictionResultVal - ); - for (const [i, label] of predictionResultObj.displayNames.entries()) { - console.log(`\tDisplay name: ${label}`); - console.log(`\tConfidences: ${predictionResultObj.confidences[i]}`); - console.log(`\tIDs: ${predictionResultObj.ids[i]}`); - console.log(`\tBounding boxes: ${predictionResultObj.bboxes[i]}\n\n`); - } - } - } - predictImageObjectDetection(); - // [END aiplatform_predict_image_object_detection_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/predict-tabular-classification.js b/samples/predict-tabular-classification.js deleted file mode 100644 index c5fd9efb..00000000 --- a/samples/predict-tabular-classification.js +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(endpointId, project, location = 'us-central1') { - // [START aiplatform_predict_tabular_classification_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const endpointId = 'YOUR_ENDPOINT_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - const aiplatform = require('@google-cloud/aiplatform'); - const {prediction} = - aiplatform.protos.google.cloud.aiplatform.v1.schema.predict; - - // Imports the Google Cloud Prediction service client - const {PredictionServiceClient} = aiplatform.v1; - - // Import the helper module for converting arbitrary protobuf.Value objects. - const {helpers} = aiplatform; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const predictionServiceClient = new PredictionServiceClient(clientOptions); - - async function predictTablesClassification() { - // Configure the endpoint resource - const endpoint = `projects/${project}/locations/${location}/endpoints/${endpointId}`; - const parameters = helpers.toValue({}); - - const instance = helpers.toValue({ - petal_length: '1.4', - petal_width: '1.3', - sepal_length: '5.1', - sepal_width: '2.8', - }); - - const instances = [instance]; - const request = { - endpoint, - instances, - parameters, - }; - - // Predict request - const [response] = await predictionServiceClient.predict(request); - - console.log('Predict tabular classification response'); - console.log(`\tDeployed model id : ${response.deployedModelId}\n`); - const predictions = response.predictions; - console.log('Predictions :'); - for (const predictionResultVal of predictions) { - const predictionResultObj = - prediction.TabularClassificationPredictionResult.fromValue( - predictionResultVal - ); - for (const [i, class_] of predictionResultObj.classes.entries()) { - console.log(`\tClass: ${class_}`); - console.log(`\tScore: ${predictionResultObj.scores[i]}\n\n`); - } - } - } - predictTablesClassification(); - // [END aiplatform_predict_tabular_classification_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/predict-tabular-regression.js b/samples/predict-tabular-regression.js deleted file mode 100644 index 5ef754f5..00000000 --- a/samples/predict-tabular-regression.js +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(endpointId, project, location = 'us-central1') { - // [START aiplatform_predict_tabular_regression_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const endpointId = 'YOUR_ENDPOINT_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - const aiplatform = require('@google-cloud/aiplatform'); - const {prediction} = - aiplatform.protos.google.cloud.aiplatform.v1.schema.predict; - - // Imports the Google Cloud Prediction service client - const {PredictionServiceClient} = aiplatform.v1; - - // Import the helper module for converting arbitrary protobuf.Value objects. - const {helpers} = aiplatform; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const predictionServiceClient = new PredictionServiceClient(clientOptions); - - async function predictTablesRegression() { - // Configure the endpoint resource - const endpoint = `projects/${project}/locations/${location}/endpoints/${endpointId}`; - const parameters = helpers.toValue({}); - - // TODO (erschmid): Make this less painful - const instance = helpers.toValue({ - BOOLEAN_2unique_NULLABLE: false, - DATETIME_1unique_NULLABLE: '2019-01-01 00:00:00', - DATE_1unique_NULLABLE: '2019-01-01', - FLOAT_5000unique_NULLABLE: 1611, - FLOAT_5000unique_REPEATED: [2320, 1192], - INTEGER_5000unique_NULLABLE: '8', - NUMERIC_5000unique_NULLABLE: 16, - STRING_5000unique_NULLABLE: 'str-2', - STRUCT_NULLABLE: { - BOOLEAN_2unique_NULLABLE: false, - DATE_1unique_NULLABLE: '2019-01-01', - DATETIME_1unique_NULLABLE: '2019-01-01 00:00:00', - FLOAT_5000unique_NULLABLE: 1308, - FLOAT_5000unique_REPEATED: [2323, 1178], - FLOAT_5000unique_REQUIRED: 3089, - INTEGER_5000unique_NULLABLE: '1777', - NUMERIC_5000unique_NULLABLE: 3323, - TIME_1unique_NULLABLE: '23:59:59.999999', - STRING_5000unique_NULLABLE: 'str-49', - TIMESTAMP_1unique_NULLABLE: '1546387199999999', - }, - TIMESTAMP_1unique_NULLABLE: '1546387199999999', - TIME_1unique_NULLABLE: '23:59:59.999999', - }); - - const instances = [instance]; - const request = { - endpoint, - instances, - parameters, - }; - - // Predict request - const [response] = await predictionServiceClient.predict(request); - - console.log('Predict tabular regression response'); - console.log(`\tDeployed model id : ${response.deployedModelId}`); - const predictions = response.predictions; - console.log('\tPredictions :'); - for (const predictionResultVal of predictions) { - const predictionResultObj = - prediction.TabularRegressionPredictionResult.fromValue( - predictionResultVal - ); - console.log(`\tUpper bound: ${predictionResultObj.upper_bound}`); - console.log(`\tLower bound: ${predictionResultObj.lower_bound}`); - console.log(`\tLower bound: ${predictionResultObj.value}`); - } - } - predictTablesRegression(); - // [END aiplatform_predict_tabular_regression_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/predict-text-classification.js b/samples/predict-text-classification.js deleted file mode 100644 index 22433ee0..00000000 --- a/samples/predict-text-classification.js +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(text, endpointId, project, location) { - // [START aiplatform_predict_text_classification_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const text = 'YOUR_PREDICTION_TEXT'; - // const endpointId = 'YOUR_ENDPOINT_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - const aiplatform = require('@google-cloud/aiplatform'); - const {instance, prediction} = - aiplatform.protos.google.cloud.aiplatform.v1.schema.predict; - - // Imports the Google Cloud Model Service Client library - const {PredictionServiceClient} = aiplatform.v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const predictionServiceClient = new PredictionServiceClient(clientOptions); - - async function predictTextClassification() { - // Configure the resources - const endpoint = `projects/${project}/locations/${location}/endpoints/${endpointId}`; - - const predictionInstance = - new instance.TextClassificationPredictionInstance({ - content: text, - }); - const instanceValue = predictionInstance.toValue(); - - const instances = [instanceValue]; - const request = { - endpoint, - instances, - }; - - const [response] = await predictionServiceClient.predict(request); - console.log('Predict text classification response'); - console.log(`\tDeployed model id : ${response.deployedModelId}\n\n`); - - console.log('Prediction results:'); - - for (const predictionResultValue of response.predictions) { - const predictionResult = - prediction.ClassificationPredictionResult.fromValue( - predictionResultValue - ); - - for (const [i, label] of predictionResult.displayNames.entries()) { - console.log(`\tDisplay name: ${label}`); - console.log(`\tConfidences: ${predictionResult.confidences[i]}`); - console.log(`\tIDs: ${predictionResult.ids[i]}\n\n`); - } - } - } - predictTextClassification(); - // [END aiplatform_predict_text_classification_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/predict-text-entity-extraction.js b/samples/predict-text-entity-extraction.js deleted file mode 100644 index 4a6f318a..00000000 --- a/samples/predict-text-entity-extraction.js +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(text, endpointId, project, location = 'us-central1') { - // [START aiplatform_predict_text_entity_extraction_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const text = "YOUR_PREDICTION_TEXT"; - // const endpointId = "YOUR_ENDPOINT_ID"; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - const aiplatform = require('@google-cloud/aiplatform'); - const {instance, prediction} = - aiplatform.protos.google.cloud.aiplatform.v1.schema.predict; - - // Imports the Google Cloud Model Service Client library - const {PredictionServiceClient} = aiplatform.v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const predictionServiceClient = new PredictionServiceClient(clientOptions); - - async function predictTextEntityExtraction() { - // Configure the endpoint resource - const endpoint = `projects/${project}/locations/${location}/endpoints/${endpointId}`; - - const instanceObj = new instance.TextExtractionPredictionInstance({ - content: text, - }); - const instanceVal = instanceObj.toValue(); - const instances = [instanceVal]; - - const request = { - endpoint, - instances, - }; - - // Predict request - const [response] = await predictionServiceClient.predict(request); - - console.log('Predict text entity extraction response :'); - console.log(`\tDeployed model id : ${response.deployedModelId}`); - - console.log('\nPredictions :'); - for (const predictionResultValue of response.predictions) { - const predictionResult = - prediction.TextExtractionPredictionResult.fromValue( - predictionResultValue - ); - - for (const [i, label] of predictionResult.displayNames.entries()) { - const textStartOffset = parseInt( - predictionResult.textSegmentStartOffsets[i] - ); - const textEndOffset = parseInt( - predictionResult.textSegmentEndOffsets[i] - ); - const entity = text.substring(textStartOffset, textEndOffset); - console.log(`\tEntity: ${entity}`); - console.log(`\tEntity type: ${label}`); - console.log(`\tConfidences: ${predictionResult.confidences[i]}`); - console.log(`\tIDs: ${predictionResult.ids[i]}\n\n`); - } - } - } - predictTextEntityExtraction(); - // [END aiplatform_predict_text_entity_extraction_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/predict-text-sentiment-analysis.js b/samples/predict-text-sentiment-analysis.js deleted file mode 100644 index 9bbbe3ce..00000000 --- a/samples/predict-text-sentiment-analysis.js +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main(text, endpointId, project, location = 'us-central1') { - // [START aiplatform_predict_text_sentiment_analysis_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const text = "YOUR_PREDICTION_TEXT"; - // const endpointId = "YOUR_ENDPOINT_ID"; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - const aiplatform = require('@google-cloud/aiplatform'); - const {instance, prediction} = - aiplatform.protos.google.cloud.aiplatform.v1.schema.predict; - - // Imports the Google Cloud Model Service Client library - const {PredictionServiceClient} = aiplatform.v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const predictionServiceClient = new PredictionServiceClient(clientOptions); - - async function predictTextSentimentAnalysis() { - // Configure the endpoint resource - const endpoint = `projects/${project}/locations/${location}/endpoints/${endpointId}`; - - const instanceObj = new instance.TextSentimentPredictionInstance({ - content: text, - }); - const instanceVal = instanceObj.toValue(); - - const instances = [instanceVal]; - const request = { - endpoint, - instances, - }; - - // Predict request - const [response] = await predictionServiceClient.predict(request); - - console.log('Predict text sentiment analysis response:'); - console.log(`\tDeployed model id : ${response.deployedModelId}`); - - console.log('\nPredictions :'); - for (const predictionResultValue of response.predictions) { - const predictionResult = - prediction.TextSentimentPredictionResult.fromValue( - predictionResultValue - ); - console.log(`\tSentiment measure: ${predictionResult.sentiment}`); - } - } - predictTextSentimentAnalysis(); - // [END aiplatform_predict_text_sentiment_analysis_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/quickstart.js b/samples/quickstart.js deleted file mode 100644 index 4f59d857..00000000 --- a/samples/quickstart.js +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2019 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -'use strict'; - -/** - * TODO: add an actual quickstart example. - */ -async function main() { - // [START aiplatform_quickstart_sample] - const {DatasetServiceClient} = require('@google-cloud/aiplatform'); - const client = new DatasetServiceClient(); - - // Do something with DatasetServiceClient. - console.info(client); - - // [END aiplatform_quickstart_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/read-feature-values-sample.js b/samples/read-feature-values-sample.js deleted file mode 100644 index df4f5a37..00000000 --- a/samples/read-feature-values-sample.js +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Reads Feature values of a specific entity of an EntityType. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - entityTypeId, - entityId, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_read_feature_values_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; - // const entityId = 'ENTITY_ID_TO_SERVE'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreOnlineServingServiceClient} = - require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreOnlineServingServiceClient = - new FeaturestoreOnlineServingServiceClient(clientOptions); - - async function readFeatureValues() { - // Configure the entityType resource - const entityType = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId}`; - - const featureSelector = { - idMatcher: { - ids: ['age', 'gender', 'liked_genres'], - }, - }; - - const request = { - entityType: entityType, - entityId: entityId, - featureSelector: featureSelector, - }; - - // Read Feature Values Request - const [response] = - await featurestoreOnlineServingServiceClient.readFeatureValues(request, { - timeout: Number(timeout), - }); - - console.log('Read feature values response'); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - readFeatureValues(); - // [END aiplatform_read_feature_values_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/resources/caprese_salad.jpg b/samples/resources/caprese_salad.jpg deleted file mode 100644 index 7957ca94d97ac8eee58c101ba310e5fcf400bfd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 908707 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
FW$XJ38Ea7s8s&UAUxH6ojqPA)e^ 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�IZ2}(=Ud(WW?T0=}+zc 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�|P!fp>@R*m~T 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

1E?P6-5)Td)IC)0K)Yn9nf*VJh#KkP{ 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°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

OJ{qb%Il${ zdFh+C98wp^yowFCfy2WI-YSE)74zBT6udp$>RRoR*4|KladUw9Dnhcw?T3>) zO67Iy{=(Ie|Iv?1Q|Rb9T#115%0OyVUTG)w{r`{c|7dn zK@faZzy%XQxLgE)K`=45kiIZ-oFX*A%j;h&8;zm*hMQ4NFKuafPLkjD`sX>`rHq2i zzQmR?lh#iGjpVhxE2=c8D-Lt5v?0`81@ikX8*xSWOhvWoQU|wh?(7K^QRj03`^z8n zk*aWEbbWm04Qi(t?#CoOp259PFJ}3Q@p&t`D}aOdgw0G}gg#jM=yW)kdD&k24Ri!{r%LT&7fw3L79SP~}~ndYC^K<_nUR0G(@ z?kx&M6545~=&w?-_P}H=u4JxDiyLU)ApUJ8QuhQ`1+}K}D2>Kxf#;+r_g8t>Zc7zN zr9wxr({367lR1==c(Qf|0RwRXK=k5Eorr(Sx#w5;Pcfq43+p9LC%q6gX$!Ni+K!GXv4UPjkt1wJ!kkLOJ;`0ZZBbQe3gA(NoJXqd_23R0^Oc4h*m zUe!@p6tX3iIfpjJ8)&9OZkq}CzGW|ZUHmx$W1bZ_pj(25McTA(o^n;w-;Qr7`POwf z=^HVhvyLL=q2iI@aX=cIh)Q_qYRU*1{Kmms^zTnPH!xRt8B1DAr>F__ zCh?v--|{oh7*-GZMsU)6bgTUlium}uR<|pE#Y1;aK>-F~fBpI|P43XNa#=vfJR4Vm~ ziSSYTS6W-$`IRg|{6P)!Q45811mXv#BYbCTfw_9NYoyk~DI|wAdQW5~UTv8w_K^VWS{2|$3^(OyN0KI#`R`AjHh9>zl!GOrqKD+P> z0H`4=tVF#7+Q^Ke(R+t{(C>%lk#+mnY>BHToJx$=EyvU3{>#jhQtfnN5 z0>6WRK_=@xA72}vsyU~A?5G8j6hOWZz0en|qYJf=x4>6dV-RT)$dnbOe2rd~LWeOj z)@LaE%8vrgQ9lQ(z~^_XU{q9oS2@N%(AkNbz=zx+ZZ;QvLMr)@bYQkm?foAD>C=x# zw@(%WFMUm>9Eb6k zV)zh6A6VM*cY@e6SoJs;HsJgLO&*gfm}qaqQ=W6}2)m0fbsmwl9dZVzv+bAk>)bJP zfu;qtv^Gktnb2GKSk^5$o~&7RWn>gI^ae6PvI?a#NQ`jw3E2Hy%v8m^pQNWgV*o^H z2kVGh)l*#JB2;=qYHta9DP3eSxeRja)=uA8HKAJ zht-Mj7Umq`s|z(e^;apPOL@4c{hH3zucdkf^*W{gJe+!|BeuS|#vrHlhyJtea2vm| z7k!QF>JOe?E6^B7F5!k*n}xY4A+`@x*z37UT>2OC!H83DA})1FnlF2Y=UVlX!#=#E z@{mncV?nfV5ifvN!Lm!G!_&y0CEhS`VC^@;H$lzF zBbT%#Vhw6MfEKchm+l8$o&zd&hS@oD`*n%dNVY{brvs=!JnXQFkH&aX5jA^u!HxH% zHLkH^pfm$+$lG+&=g0b|QTxMqtWhHEe^l2az^U>(j{8xRyc%ndmjgr+gaPZ_keug2 zK+&wdeVX7rtnq8z8f?d4dc*`DTg;tY^oMA`KlD3qRJ<+}3|Er@O7L^^qTLW=k$meS zQ-wW(t5*C}zq5YwETQ+qxr1#Jx99%Vn!P=)bF*B@@AsIch1fqtsd1WZg$Cb#`E^yH za(2fOXmyqKzn0zzC_h&;9@D9?JZmKY(^=cuiQeb~l+CwX1IX6>0O|)JyA%kbvZtqjz_i67vWbFZ+y{`L+Xx)%{pO`%Rmphj7#Vk=nrJ-*G{P?ez z)6wxq(mfz900tE7yzcx=^xwLDRLpME0~UB0CN>ns`GHsf2(J_fvrH&pS8rFed0)PJbC%SXKR0a379I53T45KRF!o?u|T33v}%TKI7!KN(@$OtKA+haPP^ zv6cbh0voNFW&lQDw_%)#moMgP^r9lY-_z3|ZJ>;CQ-EbPQLukYOKf}dB9t{NXHa%O zD~LqvATMtn=xs}>t1%4+F0rt;0h^wq^Y`CbKQQaopLy11M{_t;wl7*$Y&h=F@E_Gj zXy@^Cn)UwWy_(9WB^H|-|Kwjz(;VOo|8z{vwl5WbekHA2h(Tt=Nb_lge`L|UbuWYy zI%syQ#+IYU`G}*lQ`6(I?dbbmer%r?0p>zd+L!ui$J8ogqr0+uucJvW+Eb<+sH`_n zX+9FoJKdy}vdkJ9)GzIj?^jB$<)~xAdV&qIy z;wXOoEQp0JZS7D6o;5IotJ^d@gGCzZFDIo<9Q|<#(O;%@r&nLlN`5gwe=W%eAiMv{ zgD8+CYL(>La969+tRhXERhE`OPWFyNcyStMKSeHwVNcWWotd>Gzt9+OIIwyMzrlu2M|6~Pet$(gY= zHTHKR`Ky=OZZ@g=e7Hxm%9AKWoZF?-{={w+Tc4ya18AneZp+pHYO2bhTQZ5>f^Gw= zTZRK@r$lpbRr}a|#G3je4dQf4jj8#-<=34%<*Ib5;<^!6*sHfwM=|pVNc3U-!wfdV zjk*gkV*CU{`zTxF=HtL1{={d&zU*p(79+f=g7WV#3s(G&Wy;qh#ENUS-80@+O}92W zDL8Z6^4?wxWsL{u+Is!70c1ijbbI8N43J`h?_d>`VXflt%f{caNNe9&UnIU^c( zksDez-&Z-uYHtNsG%vm)>gaa!#|T45sg8gFvir%fzjbY?HlWMP-AJ3avTG!4T?prG zAbl7y`mOPli-$=n0n#(R_m5cAAj5Wni^Zk@$lTK~Y{kOR|esf5)#J$KUdj00xwFuRC`Gf~|*YtFp!$>nCNfgV%! z%4`eV6U+f{iamQ8SVx4*b42(wGDWO3!to0&=+HAt10esd)rcyKx#Y&2%ycDI!;}7> zWbtcME^tVt4qpdx!5EjO#XV?VH5oA(lywBKb^{lgBiQ!9KuiIx2bbui^eptdtEng8 z&!QCgKa#FHkj?M?>Ze1u(pGJ4QMGH(JUN`r>_j%4a&p8PWeHUHIEFFw4sAVNH25G~IOKvPzA29i4sz-)B ztXE?0foN~c^&vwb(iw?aXryLbY?&CvWRdEtG14SfU~INYrczQY*!Nn}pg(Zb?^bc{ zwPvSvGoK=P{Y4)*KYaPFtyPcc?R*O0>VN4BdU-C3dz?5YZwGN?Xi<+W3; zBeUCJn!H#_0gj7-=;=@(#V2AJ)i+t8%E8FX_`SROzRCxE(MNP|=()y^(%`D$xeA56 z%^+Q&-b=LYIWoa+I9(+-SMBoIU;NuYZMIKtOG6gGjH7z~u) zeRZh!E{YEWnFoCe$|Wge1DRZ*igY)PbFVYzB@*0uL;s6p+0&66l%4rQgB*gD@!W^Z?bWGhwv9w-PxqRKDSWebeo*JYi zlu{YZU1RD+tF|?f@<+zO@7f>B^Yv;A#2Utle_DwXPmYcgKeO!SCUFUGq2-YNw(xEK zcDm+~HgMN4B@5ISsk)*k(3l0v7JLR>V_3A$ZV|qa65=Hqcyl30{mOtny@V>#FCF7P zT84cgdmuH^zp0{Oegm=cd1x{1FCBA$<86se$y9V6VOZ6h3)NT!PuaCI{a9S$h@G;h z+5M6?L_x2Grb3+kTr;C=9Mp@zB`KG)E*U}_#|Ybybp4LeEG@rAE=~Q0?thdQDHDUO z$IBR+g-7J_U#l46RxAbpoT!o1hzkh9kmY3qmAQq(uBy*~QE18Wxsux1 z@GOeJ-tK!bX^kwg_F0bl^nk?MwHXq|vp*Xf8@_b7Vgq;Tl9;a=3#@U3L~eJge&Pua zt#ar~fOS2_ucqMEqaTfali65EDFTMa(@w?aA>k+T(6FNzo;SgI%fAfGpjEgo=dkAMe9Yyerom;14FFAuVGt2Qf6!9r z%(6L+dibT%qkObZ#)0|`5OmC;t>dDHH=@e@WPlN*DN8>jazjkI^@Yjz2tCu9gbV!6 z89H`?^gRBYk`Sd1zhV-zwLFu{vr1F1RWm8d?v#Iar(k@^N1fR>jc5yt62Q%&7;hoe zOiW#*nss436tF|W=|vP>=JE<#>@Z0D)pk#!jD7!Z&A{&!oE+itdjv6;FN%go>zzILP5&fX{Uye}-Y{Wsr?Arm& zR_-pBfgfQ507@{Ux*h7`)iOXH2xhi9&n~~rI(x$Vo{P1x^C>u25Us$NN_xT(qzxHD z<*S=lZz~~yS7qi|j#R2B4ZR2BPU1%S{<1&P4v$-?@oySpb)0}PkmX-W4LEV+V2wUm zC%?xIKl^QV4dv~}x^vH#N25c1}+gIIm%;-q=^XPolY_3E6EdmJv zT$OF7SLZr}aU$&+tk16J8RAvN5@OdvC@((ZU;g3D51s&RvwqC(dQnHxHLps({2V%e zemVAi>{0W!9 z3!2LFa~5S-Thb1;ajHGPi}X}^3hg9&W=Jr(#;$R^=H2*FV-BjLDB_M&WN z0&glRfchThRwTb!%A27nB%1C6Xv?!hvsf(01^Ag0hzYx-ne7rE*{G<9zjT$0##J>_ zJWf~CEHfKZq2eO0CU6@Akaz88k4M@(70(<+&0voD_Xd=0eK~hVAuz>SQf?%58tmUT z0(~R}b>3H0dR$!qOL=XRy~MGnodph1Li(Nn6|nn^+J;XxMFc2L=ZRiu*Hqnv9Z658 zV#h}&Gh)~>k(EeUopQ!pr-&OVZ=W&c?Onvb_ih&&=s7Y3NENErfp~?w`LKiOL8CT} z0SG_s0lp}CkWH54VnL*8r>31sZS$V$N2n>L!)^9CXFn|UlNV`xV)OnTCcgM{avmC5 z*VV*VQRF7^sU(R8HT6vIl7L43;<%ETne9zDXc56Sbg$Qf{)%4eZ7{edH<}xA>hDsU zU2x>?G~XA%`RG~gf}w2hwXZ5T_vp87^rIA^BbcnImwmC+h?>_1;2>eQUoOTfn9QlB zfI1|h@ic}*pj$hyu@{;GVQjioB2rfDt7BmHt%oVHDp;}H&gp0 zi`HdIRn@^NWRD?ukUhmQ|8d?|H2pic&U5>~t`C>b$DAZ+ar2amA6h}-QA@)GX_+hmlnf$kR5#XUKm_X3^ z&VgQBzcu4)OQ^iH;x)-@IFa(h@K&B8diF21B7D7o0X8#8eQ;CoR#;tZKjY$Gvpz+ z)QJBjrb1v0;PDySCTD)7_H!EOW3Nt4I#7#gAM$C|n;!owu$+1zmzI@{6FqLCgyFj! zfh9)-^66`mOFvKrLGWuBdr>omf8X2@*|N{|g8qS9!1a)CTx*jwgUC4SBqj^kKJ4V} ziAy&fKVqL?ANfRIbyH(KUMkZyGDp>+d~M5Qh;0&*@;k1#e6LK!k+{cfO(Rhf|1+Di zL-_pb{9)!}bitd-ZYZJEowF-fwFhG7Vi|~sdggmjpgEsdido489vNS8_F8wyXF0kv zANduRJ`i;RfDQvV%(uqtEzp=XDx5htehFK6Y5M8>Pr5bk@J&Q%i+^{-v7|Qc$I3_3R>c`t}h11X=mf zeg_Y}Q=$m6bTQ?0E=|mg2B|ibkGm552qwO4t^5_vy@VsMNsqts+{t;z=nMKgM!hPl z=*64WWOr^qHUPli1K>aMzKHIu|Cwv2#|Pqn)|+BHUIXlmE-S#+xHQuyy@n*UA-jhyn+C- z*x@wA$c`u_XL^OZL`8-{`Fg%w2(JRUL-r#jW*rkS3 z&WzaXVSp?Cvc0`EkM?k>NLTkutW~Xn>>7)5Cg$j+>0xHx7UD~jPUJ`1EGzdIV5}f7 zXLc@)U=Z@#>Ur#$!RPMP*X7|k%Q*^+%C>gj4m@>rE2SS?{&k*p-Y%0)ZT`$$EG0Im zo+KQIO^lgsW-yEl7u5Z?)ja}b(91J=6eBHTM+lXIlb1ns-Mp4%*xYg994A; z&{bO({iXZasUo-wD8UIou}MN$p!Cb2M1PFg!9L`=^600AaK*GpgQ~mOm-(HBdR7TK zy2-lME&2Gi&$jx>h*F%<4>B|W2VjUF1FXf%^!)sq9|wUkTE_?V^|cTCW9}p}{eCKZ zUFT8m`w&bvJ@6z)j#A^YzyZ?-V1jL=-pVYsqHYZ@aaS(2w2y1EcM_S$#2UlS$38hb zwiGv7c?)ZfIc=mNFf*Ym{UjR#&?M(mgLa1qlVhb3p7(oO&v0lB4*x25>*(WI=L2suy=?#wlS>tezPLa4i5}iOQfdWqPzlwS^ zW`=>1km`$H0WrZv)=kC22;1uIyRXLyLY(}1=+Uinz2AdWx_Z{Cs}p2VH>zGSOUD0J zWVGOBvb)i0TO*{K1b)?7H$yn0wFD{bvDiia>dH(N=154~Y6PyiJ?+&3V93xn+C^D$ z9nBf&P-=mH<})(Rn?RMG zKs%yC0q}*K9{6nU2ZL&yWIMxqtKxus*yL*;Z;-7 ztq%|B6Lem24w(l+nXDvBCzwL-ZnSNbr-Daj5T?HE9_H@r%Q>%( zC5&^l3_mYl`$oLet}Kk1k?s?@aG;^m*<7CMS7E&2Q+p720Pgem(7E~)e)wRA-m}xE zH1W1>l0&CQJLFb|nwVK*3z`3LqcgHgC;txnOn!g}WV!*Mh&rfB3;t+3vFjF-8#F%5 z(OWqZCQ)~n*up4ef7hwX2o5SN|Ohn$+(N53~vl}(8Qi!Mys5vE`Fs)whI9p6mN zyyVa^=lxSv6xv>U@SX9X_z|}5%=@0z7VYz4e)Z#7eD)2AD>#E75#)NaLeM+*bXimQ zxYU?8!E}xc{nNG29ZI++6%}OF^-7v$DPs9Uzl+or3I7s~FtZis+X~u>vB^^*B?Q<` z;;!8$8q~2i`c3-bi~^v|MIJ07Dy>Joa5E|gYA$874_B_R3ZF3laH+h{+}dY-W$@C@ z1y91IqE1iyIRFcom{Q5#eE4*Ra6kbeheipv_a^ec6P>nFM|z6z6NXT0C&jn@pKrX4 zeRptB+;{hKtIQ>ksH%2W%710T`dQZ=6a{(EZWo2xE;I*X^RFtgU@}ft_C=%;ObgHeYM=h&T1k%> z(5r$OG>5&Su7p1D;GOmf)@Q8VyI`br*eXq0wTm;5G6i<^x0h~)$F8g~R@D8IvEI;2b-NN069s?#& zyTNog(iDh1E)=om*xQyX)-ts;~S&vhnU! z28bgWarHK<(oKmi}Yz_X)VahJ)|d6|^oa&#OB;kXTxKEwuapiWTPT-F=d?$w=JCYi&kzIq)lN1IeWAG-qv znSGr0k54*VVc3(-ukzU4(+`4X#a)1DcwI~A78aOA z&(RH3A+j%^+1G15uXtLQ`b$3NJF$(;OT zkeIL>6Z~D*afZTwE`R`H)LD{fKpXTIHF#|J`t=P;n1VFfHp_}mf2ek{B5u5aGUy1X zE{2R~ET359>`imlj34LlI_G1Ygu*$F=KUimfj+;L7n{vx9_Sbqh=2f}%S~8KQM+N1 z2o149g>fMl(08QU*#nA7=WXnlYhzdCepIGEd8TGRP|x*WXFuvjb%>=;lG>P>o9Q~LQ?UcceX+6S*LOB6a-I{1|O;7?RoKk;OL z#S{g1X~H+b0pR?T^#ocI&66`ESgYEM1eDVXuC%2;TOyV%!6p|Q>dpk#2>I|ts&V-H z-hb74?#45cc2lt0Mr=^J_ifGTdKbI$e+KuExPB{#1`jipT{vL3_zJrEXQ?s5wI)Vc z&4tO*+R4+&R%xKA?YN<4IT~}LxA@gPz8iS`QVn@X~) zMtfov;D|G{T$)a6mW?3X2{s%1xb)h1>s_ouMnG6L%Y6q4D3e*ZZe#NG`I312;F(WG zz(8K+w}+-8`~fAvp(ihH3~~AxZOiIdU6T=1ilW5YJ9!cv7rTF@i=q()eyLhbHK}S7 zfeOWtNk=w|GN})t>4CL7NH&S>cVVij@(iLc{Gz@Qlu>Mq29F46zcRZ^O56$9q1vLY zU7xs=U$(n93f^}vEa`@h>c+f!StJCC3Noxs?PMn9^6{pTgHA;dZED}rSGmu@hfh*0 zI49;mV;#^;Or6z0_EjgxC#(IKLg5C3Ve<>k^jisaJ*Set;~9#2{JO&Ysb;=TxQN60_rm7}XcGu#qbnNk^r8-n&r2hGLsPqdq@fYQ$OI7g@Z??$qrvFOry|u$^ z{Vhm(w!Ozv^2Pj;l#=lyJ_S7VD%3hC|N~sz!ES^-QB$w=xYe%{jTWx zMmYU1NG+sYikQ0Be)5ZrGgoa9az2lCZ)9Zr?DQs^#{=&e!AH5GBhSA3rOF=iSft&h zyb{EwN%&Q;v9Wp$FJh#^v40&=3V8HtD`?MV6gVK^tz zOn+bbI~#7BA^%fCht{3D66Q|W(yiKw`122*RI2m3Cvtc&hLA3pB`tYgIv5Ud4+4{5 z-bcQ*#|LvO_AA85?Lt*Mr{>gDWIVa-R2I>uP(AY>83P!nv+W!q*qnZrHIWfvr6L8| z7uFNI`hj$VboMTOgL=C12lX-cpM6W178ge7_4tWOE#`wgA!dNnz8QL@Xm?@n)}Dwy zN?MET0LRggqx$d)KST$!5A*RJ4%_W=&VfUxz3{f7wE6u)ExNNTtt>}d%J@qumV3iG z!D^x@KoQejlA-axKDU4bJIChHWduagpWzUo|9aP|f&Zn;`GR;y5BHUKBTout4ky>* zhxBkDTJg|KxCV`T720?EI`p3+hRJ2Kcxs;U&{dX$i9vP^w5F7$9*dRvEU25>Y*z%n z9IOJQ$}CJVYRC8^xeaiV zRYFsPuZota#gRp5#3SpI_oO;{7=TpQVTLO_s&m5G?~gKqX4uQ<>A7G&{|D45I6$riGy2k#z;O$qb} za5*g^xg2J>D(jnDQYJ3mJ=f;1lmq9Fqo>8I%~`E_(NMw#E{aY>E@+V4EVuz zJ}?<w0;q+zSKF|nUB>}Wa~fJ^cmK&HVe{aaVbZsUiJK)?K;Wx zG~2!PzR*h9V$ov7CH)oCA}6QamLBx)?fke7s%aSqM^Fq-BiWQ%W7_DCB6B}`zMy2* z$$U&ssd`&$YOd4G6<_eOL3X;1G3xWhnTjW;IDgqIU7A56!b+w`)OC-J{C_seo@=%i zvi@~%5*sJ9Re`pJ#*JzTlq0%aYv>L-4m86BS3u2$dZ(U#8afHcSs7{GLY>!0Ge~HF zU>2zUe)X{mjO^{&CO+FFVEt|ef~q=T<$cl#FKRr4@3_Bsi}0BzUr$3qBqGU~`4>y1 zslYvY-^1Z>ae*zt3B0q5!0dzgltup`;htt-hr{ms-BKwu$KvjXSAG_U^0&yxemT02 zW?W>^DHG65G6!d60GbL2#+u9!mIZS&u;d*dad2%^Km*AutrVM)8`oeo){tMvshFbB zdwij|=|>Oq8?Hvnc(}=O3hnoLE(cbgf_`M7hXAvYd*KFdx7O&rAHKw|-3sW6D7aS} z{5aeo9lP-zcRRZ)o%xNa!&hv$PydbHfmKoc!)UH`xxvSgsX|B4iHQviGJYA8-%ElB z+j1daZa@L@Mth0^`mxc+Q;?D*s z`Hlc?Q9qUS~?gam8 z)4;ZW*D;+nMeRdh`| zC!cKdcJl6id?YQbZIPLW;qp(1BHrDgT?_*Mn|5X3r@x9 zVz@555gHQ_suF2DugtSgi@VjCx@uqTBtWRqx0>W`j#cV^dhX_*`MAXWvo|)}TKH2= zQiY8M)ydo-3pEih!+(|cw|01Y%lQ$4ag)ow`U$udAhZ9OOz&Gj}xh#RC zqc$fON!GyBi@!MD8*$ha4JutwQEqMu9O8U_?U`Q2KaoDw%+!5##$m<_#Ey1>VCA(h zo0|LSb;y5#Fgw*&1|@$BI$<-&Oi&7QFJ&N-e{&eD~3L=VdYe5K5;_q19~# zP1Apv1Q9Az5>=fm^e=?8q>^P|rEYY4cP-Pr5^!`EetMy+J&hw+=cyduryY7wh>|Z)V8XC+hDwT7s`&w*svBRAf?wT;9_p(_8=R(bA$t=$4b8~Jx=brFL zY&!?Le^}RMfY3iCXwMoH*|Kz^?5dzODJU+c}86jP@S0SH-o-F zEPRjifV4)1ES(th(OZkj-{;D6yyIrjQ}o9sdzjE|VT!&Br_}bPx2NaFDKWwgvH8vn zQ;Q#XTi>Md`<-R&^5=!N%W1iH8Uy9UyK(l8QQu0UUh|kP;ZTXgs^jg$Q(;~agLPa$ zdD-#k%lx=MmjWL<9IMvGSc)^JZ@BQ(_6wezT{SjU*3bOh|20_KbM$!AAI^LW8>t2% z1MDjJcz5MxkBM~g3{otIKqC77LWaZaBC7}Vo{oEETvOF(sBqFa4fwpudKU|SVypMy z2;}L&?w)<|_WUaGl|jK)(Mt>528osvKgyfQl)N>UN+7|*7ma=)-dpezb@tiSM!d>A z5X6^Fn#CkG1B$QqZHi2P4BvQBGTroWM>CU7R}MZPa7bc0KC2& z{@D*^QMJ=D!pIQSSEZWUHMzwvQQ=%z$B-4vUxip&xxf;`@KTg7E8 zvwRjgfX4TeOl#~+ON)gLL8(B#2>HsD!lvd{VGCoPRUt0UxV`tX%KdkcbT$ch2N;ny8M(si!Pfq)d&v-oT`_HK*t~!^! zO~ep@2tmLsMl0E;$WZ-zqHdKTY=ZOZ(qe~o1o_j}yL2Rkgz0=wbxn{yx za>Rg_D8Nl1Ydp1tL;2jUgX(@~in4yj3O?ea9rNF8C zpel)}S=l3Pn|Pqeu^A>$agFuadjbDrSe0N|$W%{7 z9XS<#*Tt_)H+SyQXL2ue^N?tsTFQfch@2x}n|9>$Jyf>yX;h$r_PS*csxv~JIg=xQ zhy6ZFw?BA&X=4z&`gW{%>OPuU-;z_DWzvZ&?{j3{Z~Wfrod6{DAk(acI@n} z(XV>9WMqwES;FmyX6fgY5RjI3+eveg^V(PIm829=rY_QteaF#&2I4e=8BpSBr_WB} zpT1i&gEiz{&Pd^=+@H9eYTQfY zCd>qEeDF}t0t~f1pyg1we2(Q9zeb?W);=kI6Pz2Y22@~cbE_ljrod8$6P95c^%h;m z6~-r$=VwlC$P;|lR+m_Y9-mZtqV!6 zwytRJSG>%v-8>ZX(zi}^!M>a7xi?n zU6d*5W+l6$WRs6D_M7;})_buR<~_t|pk*TwjV>QN@X7H{NwqQ}!s(tU?p->GTNipb z2-~yY)%%{yU;!*H1o#QjC5`Kk!t^h8(eZzt+$HZPl9#osG<{_82JS{N8Alsbe?;p# zl*{1tE1l$AtXs&A&pF`jmv{S-?laQOR?;W*BV!vuM0C*D;~FbIq0-Oj+wlceO&;R` zS;ho5vusBOAPf;^&`WY6GE?OpOb_mUnu~tldLp;+IS3%1uJq{hBun$d&}5~3|!)S+I^1(Ct+i22zw!)#~MOGv{qI0rBTZQ%Lt_@k<{SLaQk3YFyJ4en@>ar%}us{O=1y=3g#0 zRnEZ>ib?|Vji+PUn$jZ9nE2^79jK_%nMD}wwD&1O1jkNR?2hWA156NKWmmOJ|;vp z1I02NF@9&O=v0Gfx0LhYC@KT2KBH*jUMH|ELda29EJP7<1-9oo{*b?J2I>Gro;=V-9)5s^eq21xvEMv(p2u7$7FR zNqO=1FI@=_-RG|yiP__8*8Dro!U2BVc3v5PV@(4hX92X`T@)ck(YR%s_6z1+@BF?{ z=St-ng7bVl@q}i+M9w5el*|M`(3)}E(DRRmHjmg_4xF^{1P~vpzi?INjY*61+xIG$ z_(1n1iAHN$+AjdlJ0u>l`AWxW-VhDh>~0CXK0If%j|%ZZ3+%vgi&;$5T?zg|a!yB| zDeJyhAM)pD$+aPi=Ql5-ZY=1dGtydm1$qIiAQb%0%?ZEPQLLX#)o(c}Y(T@X8*@SE zA?wrIL_}_z)Ax;df6G(RE?S>$LZ z_SgT|=GFktj6Fo(a7VYzpyAp3vl>?u)0QvSe`XNtUrNyD2#7X{3ZKZEZ{W(!_Y-(L z+WVI-P50HSrmTprt;fO)&eqwm6KcRn82u%MjYD8zn)U7OTr3pBkO5dsr%`Z}A=S5M zWsUE>?B=bvdjS|3!KgC+JCy*-(w{kEST(!}EalO?h^UL!37Vf+$F;Vk9!`c;>@ZB`O0td+0?qC(*b`C5a9|Hc5pv22-#VJSIrq$Gkb z*4=*CpD}ChzOad*#hD@A1NpW6vZ689+yIeOig=$GOei^EHVZfipvyFY&y{MzZB6yx z8JVIEU9r9ouf#rCrou)OECvIqu180}aiB%iRLe^=f`l*7><$@D?Hp^-znn6u!UxiHRC8PKku8Cg-xjf(8~^(cxMMb=RL-D87;al zr!5aQ<5J-Q!?4G^i$`jkquQFF=gaFTttPGsIM^4R3c*7rj;Kx5pN{J94)cuFeA1Pv zGuhha-a0tX>TuIwEbz-0aaNJKef%8W&^t5Wy6y8RGg7+tYU$i`%hGUBMC-FgT_mf& z%I>}f{4d>jlisf!6zbQuE}@j7G*3vrR@C&^v^&xY70h=f*+^4Dz|F&hj$g@h{oU#9>cCW@rGRpxI6!9Oh!- z_nOmjZ-`loSNv9t#D63^`KQjF`F*c>TAKPXZ?vWA_|m>qogJ=JD%t+o zn=KO@Bi*N)22`Aml@#*?hd;CIugZ4H3W6<} zT!Q_-#nUVwu!nG|$)5WR3vgjWn5$?0Sdhl(r&FY*I~MtjPNca-YJvFK2CqH9xkXz} zKCCu;QEs|rxuIgDe8=VN3%Azk)_fCfkXV7`04#9QT&ktWFkiMHS1&<(2f9xgQkS!J z9Bwj_2m;XWvLVfiMnGb3lf{#k`JZL>jWA<3h$T=FIMj>b*`mBeQkqm@7533)~<^!Ox-UHJyN_85Ias_ zh1}9D&kyMmv$V;4m!BJCI5;;!RmlCc7S7v@;jaH)><4pj0rKT)6vF#IV6^=oTw!!& z{q-96RHs#ze-Ei;;GhN`0L<;llvsKoV+}jUXMM$p=vk0;6FhF!5by1z9~|^xf|1!( zH2LI}D{KAaO+KFkv&h+4TQX(K>pFe6;&5GH^N>&g=$**Si!tx|#jR3g9@= zaDjS=y%4n>qnlFPm*T&|{#Y>2Zo}02(UE?ZqlY2je2FLTHvMebUY^Jqp`r6PO$jHT zto@Eoa*W2L>I@&2xfm`UXeysG#t3nyCo+Yty$_K^#(E1`kLqQoj)*iuf5hPS6gS5< zMoav7bAmvUkhb*mI~DHN2>mzBusmr@j}6t{@$fj7SO%}5xz(3{by}K*W-SA)J3>PM zzWoos{;=sbN6{al=#-if`Csnco((HD!J2N06RTd)MgopfI$d1L(*629dCi_&u6UKl z<-d(d-8VE#UeP`u8Hd*2odTEf1OiGsbuo~%Z`ovqKr&n>ejL&q#l5VJ+lpUr z(4BnlUhql=SL+ej$s#L~aPjV1Sy1fFNVl}G^J$jf`UZAtkPR3OhZBNoVoWO_M&PSY zoN8$a;6v&eEzrJ>Y|@y9n@sGSXW7HPkL1>A*nF^RjPKnT0XG!Biy35kIai&)64Jxv z6Og`CVJ!TjGVN4;+tWT7t1+tso5JazfCu(iGI@|J6XTDI;X#l9I9U5HR@-a0^%KonF^LW!yg&n4LWh2b`Z1Of8g5M|N|T@DwIq(}1eG!z{r` z1mO)N#5d)+0!bt07`NupDAUdKaTnYeHp@o_Wo){f#@00c+;en4AWyf&S zT18yB?`%Y+sD|`14f#bp4nP1~T7vKS-=G_jnCr`~K1gP`C0rpYJ|1X_#GWGJlnwYO%Pri2cK_i4`%z0O` z!ben_PH;&%?JSB!F0_)%uSNgU>^Ycb#8RbbC>r`&hez@I;G2rx*r{&1GlL*D@0C7! zEBl^$vl59NbGyw zg*Q4rAN4xyihdsrxe6^DIxD!$0P0vHTD5Yca9Qt&>n!@;v=Dyou;e&w_-p+iY1_J5 zR9avfCl^#aF!dP&*4lpWx#$^P4R9jezNJJbKP@-!H1OeN*T=(2I9f z?_TRfl$%3@58KX2bQh>zZLvvE_<2)Jv39+WE$53$T=Yq|-r`EV4cNgTVlLc2 zFY56`ZY@r4YV@0^UzcQI&OsSS1YN$fF_A5}7bj&YLKr7IA*Zb!oeDO4D>tF8@ubu$ z7n83w!W*Yw#`D6jhkax;;E1g^k6iiH#{d@m67kZ4%+G@EfOKZ3u;Uh#rX>RSiajVY ziU^aMiqqFOCb7aVm92#$SO(m#^WJwbu5GQmm>0K}!&D$9p>G(qPeK!|@sErnV-*P* z=-xRGQ-noS@czq6|8o+^%geQUwu0KvF1DVX%vn}BD#sb32vi>>!P~1VUNm4u$%hK) zsU_{P{QYI0l*q0JqtTcGx{hOsw#TlteV0bLEd-}WlM;;7WU1+J+zevC?;^yzSt42B z+(o*Lm^70Ii5@g0V$_;o_i`_k{4q!5t3&90?rPRzSiq7?msKo6c>|{=N@mqra#p!>lf#hNqd-?-BbQ_` z5EwU<6U|-eQ?wA;Frg^E>S*dA?te7$VQ1TVi2U2V|C|4iO6xA<^IGPe%)Rc@mzNX` z*~l%B*{2A9A%T~^k-8d&dGM2VWkFj~nYy3i#Mry>q{M3IS`cy^Wxd#}@nXEX-X>;S z*Op3;t!;8xKM+4l8%tX!j3v<9RKCxpjP{PDRGL+FN}Xf-pTeDnhWPEB{CZVB zG1cHqqEUWFCmI?pz$m6ycY%e4XJ={rqa7dL!xo@WY(PN7vXDtFCcOe48%U^D z8PF)S1})9D@g=1idSH7e23Ss?nOtoc2p4c1?rJlx)4lTeu7`?W&8L-cC22036CH4X ziMQS7b;H$T@B3r6Yc7qz7z1)hSLEjN3e9JyoorsScgMK8MwV0~pgcD=V0ow?0jGVF zE4C&}P9DX@&p&sB$*~X~T0ZoUCyon_I(U?9-0|&SDb_WtDbFf9u+S2$l^$dXY*9~^ z<{!kuk6iK$w-t8AQQ~)hjyj6~1?^nV<%H_jlDB_V{+_>}rl0vcWQ9NY!X-KmOo0ju zOif+`(hZnOb0m*D9t=;}=RnNn>O1kYJO6}GrWzeCOz<7fJ{O6KONZqmu?M#+n-V+| ze{aMDo^!AAt5G)FC~JT@kU9_s!UE5tgkp1c3WtXfmwNRp_!mdKw$uLn*y&RpQWS8Nx*+oMFD>p=ybQ-cz5Ri4q(vw}mz zEiOg@Dq>*P13$ziS@ttuo^xL1RI8gi@fP&_gLyH=A(xcf;87$yvn$WpLl#v5wF&J`ytNkdT9;$ z0>jPF0k>XXEzN-5lPV{DN+Z}2&AnowJm23DCRse`ucF&As5xA`WUG5; zPj}(Y!w$<-zKah_jvycmL~?%f6!1_tfphy3Xcm|}uxZ7U(v0B0beGQG;JTyK3=+xkn*1QJ6+;*`dFrHWQ%AdQzCP3Eji(K|Bs~Wj%s52y6{9% zQ4o|S^-1r&HwEbe(o2AdbTEY8AvO@DNmr^!uaVw_i1aQ5h!7z376>(zK=Quf_x;CO ztXY#}?wzymK6~$Tb=0;oXcpFD+SlpTiXg0D?E~~Y7#mWqIu+Qp8J77cZE(@35GQr{ zSKf&{$$->4f zy49q@Hu|w-U$O*J?Sr@4n9QHd_6aG^T${H4aj_dLZ?DB&zDvF_cSrUyWk&?ILLUT= zjHUx7Y?HW+f}iv)$jcABB1iJ^9aK5+Rx!6nsKHTde@bp-&0Z;CIlhO1C5sIgv{WGl zOuN}6Ta>ws^Of;VotQIU4M!6Y__G(=_B%8G)5Vqv4Q#pfRJ$xp8)9N>w=W`8O}m1BMz~GXzIP5$7~B@% z2||Lo8z8f@1xHfP_cMB6vwnR|_L2v=1=X9Xbav0|-PmupO^I^+wokEEhF<{*{Ht?en`Qp%@&yL%KKamctK0 zsnV$;V=ZI~O24hSLdjYtVl}H4?0jbViy-$NvN9npBEgMlbz1n`TNM^2{){EIZ<|qp zyY7W+bttieQY1ghw%#!WJk>OxM-@NpBR>#kGjVE}mTH;adWpC;d&#pOI03@!Rz>pf z;T2+_f@UJ_?(g0wNJnxze=}zYy#Yq5Fc#O;WMI6WL-@J5i3*iy>+5 z{CNE_P37|uez~=@ms)uMakx!x<}K}c(9{LvoU+jqkmt~0Lv_WeBM5`yTID5 z&75Rh#ju)9pJ5J>vuLOy1{`xx*>muNMwAVB)~4zzk@_{U8n+V%Cp0!@%$NUP<@k{;}!_<2g-wkYq$(=_hoL zZo&#z6nB4Z^oc>c(X+Uf*2Jk&RKUXx-(!ni3>*%OV{+8%cqAKFHMkcLnT6jaLOog= zvs_&={`~ZruhrVOFMY!>y$~|~sxWhn=Vqq{oRj0rippPz#l0v6*}dWleeebpb$Pk% z7f{4JIBqhF+btT0*+kMP0_~o_hXy(IL6Q-<*qv#Maobn%CcMo){8?eDGxwHpctGw+!%p6z-K7{nVN#u|1Z1qRbDxFQ5hTZIGkxOyv#Quk zGsMsdq$A69JKS`p*sK9i8_3U+Aca6?7WHPNP}2mC<@p5HG=yuCv$nbU-Ok}0s8iI^ zuQ$AroBb9OHgBTFO#Ev+jdSd$GD=t1@`yYD9^JjHvm`gA36L-8xF~^X6C>H|b4uJ# z#I;=ut!98U?#=L6Hpz*F!EsfuKs4yO=5DS6$rekaahJpSLn3z=S4x^@*dPf!1-zKM zBF7A=Eq#+CPgdUjIY?QGk=+4!NubK2xs{gZlmF_J?-E1U(w_Mf zrQ;r^UBG}d5M1=8VA6+c!JLFbL*7{zAl6T=$(&( z@E@6AY*7=?{2^86?0w7kN$@s;BVOh8a~%3X=JHbvxl94|XCoOiXCk!fE`V(g=-Tn} zG_=_LnP0dGai$l=;!a+SYuB~eLS2vWi#?8If1=iR0IrfiyxH00Cid$RO)OJ$^Mrk{ zXX$893@ob9OYSS$oZfvnhp~M^o7Q_6sk6)^*&ez+)zp0+H_0_^8G-J6cciKr5(&s8czvmTZ{=E zz`Iq%em9Dh{2gLSe#sictbEZsd(T!at$tT2?6N(ubUWfzooL0UQ#T-&m}FC8 zB0D{*F&ab4Y)io;F5R$YD92g)#czA6hNFd1Pl%wMquGIM$vr0nmdA}pkBr16*qyt- zb$_zjy^0;VIXcuKOI`d27Vid=?(T7@tjQ7kjlzuoDyF4y^2( z8OpfPo|D!FaJaxw3rphX4!*OLW$oW$R37YH6Cyul{Fw6ebSf)H+N0}ST}XBvt)Fdi z!5zpUdFr8Nx~lpkf;NQ`STOQxuM_s7wPzAYQB*FZq=xe{Tmy~-=hx%;zA^8 z>qf$tt+^BePq?s|tKFqVu0_Ck2DP!d@QJu{+ znC!orU!q;!G*8I&bErJaDfq}?{I9uG(@u=;?Z938pDCDza8_|M9-0L^@EGB8jM^$X za}@;GRl()h{7L9yO$#E=*zIS9Zi!S=21nXzzN;iXQ-9|PDeX>&RAr0ZGzNt~&EBIo z%^lhe1lZ+vm>a?=;+8+hTh$w3NsXtb6Zt5-QhK5j$}+U7J%>B?Cn8^FM@Pp{e4!}`$u=X8Lq)qhyXYL zVe4zS>8DKKFMI9mV`NR6cl_FqS(-s3HcF-yjtv6wF14LVSjbhgUpm;bn=u$t{ZQPy z9R1EOZDx`jgHg*-e%fN$E|zhgV`Z&rW*qSfCJ$x__#%Ue2h#?ywie~K6XT3T9{oq= zjOOMho4YRDy%?9hkpMu#;55tGbu+hil^lNJA;2Vqlh)VkPR^RD6E)#aL&hf|%h)Mj zTAjI{uv?TRtFWrbSEVw*Ad<7lytNIrwZ!vCZc3ZxKHP?XyoJ_z!c&h=y60K)TurDW zY`#UkApZo!bNmX7FNVppV&#WI+!rNe1kMGNB1@0%vUF#<6sc@{gjRDlPC@={&7~Et z(K;Gz0txpHFowPUM8$t6?0AddMVIODY0O1{s7Ejm24 z5FA_s4QVy$E1C_H-`nrmo)g|D&EA|lH&N1XeemQ*n;G>JWx}UJt|61c6220d4t+ek z*u5ngtz@HQrR}VU*}BVdA}_3y_459bozjwQ&C11H-X57T+Os&rB1nBU#ZfWW?7`V9LdGDi)y zU~0@JffT;t6v*zv&_DzR(Q3BG?Gc`x&B^nGncG_>G8?sdyghGAa_>g2r7a{*uSYHG zZ1(HZWCVIkBpQb0E*G1#?E)zxDA>`ej~xt-ojj{MDLeDcqg8!)R@Y_3Qa>C0)tl3o z8~~X*!|9`6S??|SDsT*q_6lidp4ybujc*aXydAyav{7Z6DpOMgwe)tirLi^BUPWO= z`>G%h$6zlJ-ejsTP7xz_hoP$@EINt~sd4OI005@aJ6@(<5Nj8q2JSzzk@P4qogjva z{W)S85%osef+(bzCI1XW(e18A@j*xC0#EU!7R8fh2(dFYlw;%VkqQE9H=$k@r+I7& z(kT@FC@FboH9@MA9Xrvwg^W7}iU$yvL)~Ctuz>X{#(((8jYM8pYE3TIw?7SD@&04* zK_JSt>9a$${HO$e52bDxZ_dBRW-PN+*3(I>PKN;#(-i>VMfwAyJ&t!YPO+O7kr4{E z(1yqvH#9}_YRX&GCXbs>9^RZajG%#9Sa+y0rST8VN7{r2**CdL4S6Sh%V-Z;M+4H= zlbvv?3%xU>#X)@T*YbG9Q@ts%^qGGf8$82exif9m{}?f!H{SV&Ez;|!pVjoTt(~w* zivCO$YNLv@)Fn`~^U&Z3q~ES~e^c#Khs5MD+JK#fw?1R2z8+O@Ja@Pc(fgSaWITRC3?Q{D-##4DpH5?&_ea0BPS-ZsuW`)Q zyTL^MHx9LKE};;m(As#Cbck7vkm1qQ^zA79Br2)=hn=WoB^#`PI9M@}D9+@0(fFanX0 z#=RB|jD14Tjf~C%r!@j94HT6Q`Y3y^*2{dyFIST0Y|=a``Prs%n>c)h+2XP9NJFA} zUu#l=HsYx2#d*OV4E(iSzRGmlO`F_PS{vGIMke2{BB|tvp#NQ7WQ^xEnTPSKR!oPs(e<5bih>y|tVWhHw$*NuH}7%_Iy60P z#Gl)b`RHIR0W+Pc*u-(B>e>Hfg^FK149p~UdvvNO`2WgpM(hIGs9j^aP6RCxLl7N8J z=X0TcqzDyHypZn}P#)n}{MKS`Ak>aAV_QQ=oaMDb@8kZx-=8UMkJNoUM#2H94e%cL zV5jKiV~8c3v%1D+K?*xNUOr;6^nJ|%HrJn3gFaV zU9z~hTi|Pd(Q{pIt%1t_`VA&YQ1yOSu3~nmBNjY(8N{PFDqtOE3F|{1sWNmsBQ;lZXy(XRz6ck__j2tHhp#K7<}IsLM7hS3YjNIH}~KIi$r? zC{zf*@vx-@MIWUBdGNM$k;h+j@4$9G$H%RPg*?6^(l=!#K}`w=GV;fO+YTMo$)-r) zm`13>S*|?kZ!T%=PX4Eh;ZTY36P-CM)*_b6GVhLD> znNm6dY*XpitA(>Z@mj{Pm@Vt1yEosAEbloZYYO&h2Y|SbeXbg*d9>45*7tQuV zp>qe;mB^5RD<8Z%&S43N!j^Jm!|n!f_pi?i=2VyIwHD3E7E3pE<;TvK>sQk($3&D7 zaO_CHP>xA>xxruSd&x28LFBK^_-Cs|7saVz*T&YYN4L<HPY5j(JS5M0sV>DZ*1*)T%|rR4Umwyh6+2*`U?% zA1|)qq;W0Bc!-ufx6TKGeh$3l$d07WbAtFkZcgpF&eBKg4qBU zTR7*@DXm-eKDM&6NRr#~{chs0i4&(&4YzOb*pu@<$~7r?%&=fYqDRggbR3HW4j~1f zgp3nF(NSPu&#yw5s&*K>>qyCLKe|Zz)CaxUS~XhY_07POehwAH&_doNZr;hU%Pz5i z(Cu>YEQhsNyu}Vd`$$Y@Zj;ZG<7O={0Sfd?6}jKk+d5s4-xw7TQa(R#b^k$vSJB}P zg#5Qug)GzF;EROZsg;#2i*C(Q1VBcK{XD{&bQxE#i6}H!f?;@~n5TXf*Z^5H*+3N| z)-hTxT!37=zVYtbsh=PxO+9P+FJR7^QFiYOHvXfjl8)RC7;2fe?3PUqvkGA+k$;l6 zeX>EfK`w#cak852dWo3djehb3-F%_==4<&tvPQt7JJL|%D590*TCnTPA|N!2k%~uF zPHgltGzKZArGFN2%EalTyH?SUx^CqSJc~MsZiTOTduV@ReIraPYZrqTtuI`{ z^`0sjxc)x8e3FaN{NoUfwS38!!VUt>f*89zEHf-#P&_vbJnY{8x!$(GTYT+a%|Xh0 z2Xqi|GWYZ%!|wJ_nMHOEQ$>>}%;xggRb(YGdV%*WBEs3TI-}!9%P09`qQ4eox4M`X zmpK>==2gg`_$C}A#+lMg<0>}tqoqM%s)WPYM6nezk3LV?ZrjSQc2Aq`1koC_^i;j- zU|a{b&|$?=3$$Kf;js5m-$*76CtPCe;}H67pS!95rj9)I7p@i+Avis&s^HtAPbH(R zDn%@Kqhs`u@(!;vn95l1Zao3^s|i21#?w+W84&NhIOE=CoT=4F#}yNfSxAeEM+hkN zU1P@i<#@bU)4!#^tDQc8Zp^&=G%Rtu3RWk86(fo*unw@z67gsB3_t_j2zzh@ zWdO^hH*qffGXlAj#D802Qtk=i6ka^ITJ&yBZ&wz04_qenTvwz`1_Px|GA^{xM4j|1 z{|j+V*w@mXSr8!jOYAdle=LGxCpWT1_r{rX$@i<1NrIxmb-Q#<4za60Xh&y z(T;lA`M3Q@uKP)=PWvqh!uYucM;7-Y**BPro!32Gn~`bacUx&=y&eG&{suwEb|gPl z+{w8W*m`uOS$rFr5$w3wZA8aW*RA>-&Em5f8KI>%X2eJ|sTy44-%iwPbjq$`OJpS$ zAzb6t4973oR&A>~nt)uFy~B6kv5 zjHqI3qeXyO>TxUkVxkcEe4)3??MBbHWqMiR#~IQh1sO*|=R);WK~O|D_nFLMyZSF( zpCz=MbrXGd?!Tp#N3p7e?f%4W00=zf*xi62bF<_! z-H%$m_jj8hS`t>I8{rD2@SF9p5OtJ1*Z7&#`s~e{>ulD#Ofp!B_}<@V!# z?&XMCBS@w@ARwXKsDUijNEL{Mip<+@AB4%kwl^2{sXr`oPz0+jTjW)qB?ajBD@&CQ zl+V+?606FzdZrj2SaAK?#~E{Tj=*JYV|xZi;Z|m9uDe>_1FEW;Og4cj6E6Pz%Y2C? z7Vd&RsDTR4>Q;bu$kQWr+Dm5Y6Fs|3CH~n)>mAr-j28GA_UTS@CD5OXv&-|oEMy%F z-Zbi8T;ey&w?izLW^gCZl!c8SVZL%e(w7-)b5s<-mK`~*+lXq+pATK<;Y7in)4JD9gcJ=6HMfO&&WF#tYN;b)SaYTkM^#PNt|^Z}~|H6*lEw-xNKuXOK~ZY3+j z>FNWErJCs-qXwgyvANC5tu;(hHt)PFkc3@gq*~+i&Q_*o-ul)^@Yj^$h+MSZhv!IW zRrQOSmS84#xqhy;Y5S!o^^>!M+GJh*&h`b>O!wTMm%T1{n6iGM{Lx;}5Cqurh~RDS znPNuiGR0us-tPuIZN1^yO(u=A$8~@IFid!OEuR;r&FZeUC7WHCe@E9r+=WG$&CTCA z1l5Qk6C?#p0@l~;7L*Gk$L0Spa9czW8d1js*1c83R2 z#OOJG{PaEYKui3)>en5zEevX7Wp6Bp2iis;HEj{D-zqhJ4#J}j0HO&Yeem?|iPn>r z&k7QW+3d|P$}uTEzb>Vwg2F^-Kw_y6veFS^Slpk}u^Er5dus9rvgIMd=oDb6FnUb0#4xr5hB)zC z?2AHKv`kxF7jR$7u^wk)`@Qzp?jJ|Tnj2`T*Le{uLwy-N%#m6UC8ua5`u(K`YF_m7sv?h2Se z8B-9><~Vq;!Fh$-XPqCVP zJH7N*s91FT)Na@gM3PP=%=Y#A*y~cnD*raS{_iJO+cXYopT1vAOq|!1UH4T|%SR35 zmC!&`#A3mXmD-4_LARa4IT3$Aw)Iu4ZwghC{pqzRkr7$| zwo3&`_(*8caZmkWsQrIr85qw8ML$9B1Z@^{Axb;`ppcyJQRd-O=!XcMj}9@t_mU%o z+VXNCy|x+C1C1T}B=Y1=c~j!5sqq2{wy|-Bs}<#ZyDT^S>9GHzq~oxsXZh=`IE@Yk zT5GF&W?Ju4I*oe+jpIFnGP+L#A()B($Tl|pMpNFcM}K?;FIg-4iTR4)_^of1FSnq2 z5SjDMwvqw)WC_HkXb0{_G5CIlFf4}!B_NI5BR7vSwK}h-vI~7z5YE5Yfdrd)?r^Ue zS7#}ylRQA-iH{on6q8Sw?H^i2O&26b@prT>m^Ph4&cUDSriH`R0$6i7TBf8`zy_03 z^{{(??dIG&gvK44b6lMsPN$9o2>x?^Oj`VmPQ*6A#~ny~PtF%}mEIk$PsVdomzR4VHYj4(m34H1J>_34+4$Q_+` z1)Y<=XQKX2!YThFOEE8da1mAo!R5y10}t2&@yhN7v#1zU^`2*q`n!m9`2NC4FEocH z&AWD!FjdD^__k}kpXt}Ac7&?nnd{q{HyvOIPSUCV9-qEQ=Y@R zE@0QqSCU$ZaX^~Y4-|O+vj>TuScwyPC46bTtWg^5xoi}D`~Z0=wWJi*Kh3az`sujB zC39ItmeLlzy;OY2<-$13AmL5I8TCke4vhCT+|u0=Qnd?J+4aJWH}0x{H!gh^mCGC~ zvo*roCRyjjpCG(vj&S4acff<2y z8a|L9_W+I@h>xc*PqNOuj#I!(CSMvKe9G!`FTNu-TOL~#SG{^0pYf6c1Fv?2pvjc# zoy*InVQ)27V8laHmU+-aJuz)S-%Yw@0@0)v?|HKK>!sr2HS~F;)kbn_o8^`41j4x% z2IPjLhH(5t5vLk0%9k-LWQlvUdqlN|Tn0^mOhFA*?RDQ^V2ALiaQ5|cs(zi$^Wa~r z2|3MsiG4E2o2OUj{U57Px0%qdlH2dxUuw{y-@bif>yyECtX34z%Yb^haNrxk1~S44!&hc)EnXAxJ2!{d-!5QxlP4zbd_H*|*}m`);w-z3-s&KapFZAr9JF z*H}eEwzY(g<9PV&Ks4-Dr>^UN2g)B#Whl3aK##CQC~C{-)}>tIgyYd8*RU2F*_QT* zT3bVH`4EZM9Wgg35ipkos=rk-DO2rgK-c$t`^%PD)`qTjVLPFab)n$B?$CdHa!UQiz#3yWs^qI4UJ)CeTguZjb#lgO zOK!^vGpk3ei-|1^Q=@ht$y^%^{7}`K&ApkBfn#lZhEL^1d_tf-K)elD_zx=k;m;Qt=|77DlD^6T;$gedu&_uU7PqhP_KvZj2<{8;s zpOe5{Oq2+zX~DhFB~44n;Y+b&CTQ&i%FeZ=7K(D2fBxwRlt-@1QvHFIGIwqh18wht*@MFUDhf!X8IW%I{F1vwWkDkZmu4yV>cNZJMh~IYgv}bEQu#3w3%Ttf6&-yjtL5o2@ z%Unw@a!#S85|95tuS_Q6jLcySD4x($`v6G-PsWsG`sc2Z4~zXaA7_Bv+lbFe*BKY!sbyx3CZ& zo@nSCnMJ@86ZeB+q~}9Nk;XsT-r^=sZsIs|nV%*N-6;t76%y!W)=?NB1pq@^Cg29< zhFd^FTP_e7r*`dQC(7SLJKea|{WzlCc!xok<+{KRr+*4LQiJ&35lq+gHBWP8w7ySa z%HeFHNl%) zIS?>7w9H~32mY@IKnyAf2)SdtPv1M7j_!Zq_c@3*35h#G&K;tb zowM4vElbxo&DDBADsRh@U*iy0CU`3*7KQwcn@CeMylNB@T#^d6h19V7B!pUQhf=s3 zGW_mRyQ$sO-t~r}N@|kXt2>9X>Y5KET!GLfb*+MQ75S}m@cjc&N^q#J9%@QO86Ba< zJ~Y;m@X#!|g3qZ6aAQ_)9GxCeuC${Pe_Af*_}MpQ3hW-owy{w?bH6)Po#q}E!ZG_Y zLG$iYU883<=AV!8+d9oynx(m;4h4Q zjEreWz-^-E3X>i;C9prL{$=aKM4oUmcXJ~*4Y!!4XOV9ZZUk6E`lF}ZTE;*SKnFH_ z2%BZGhJGNhr6r_2kg!FAWRlXjxjigJ4VS`v*zY9YfQ%%?-MLdbK+sMz37%C58*dns zYilGTmVOcxWkBDts?`hH{q_|53Hi(M_9}kenE@Lyk3#h0C7E+EyAug7-}*6$upv%o zd_K!2oZ)L`5~z3!e@u$7h)APHfTtX$C@`J|n$Agusd4S_UrJPtlx@nkcDxhLu*ueS zTtd)n>QXSwI^C+*ghJd(AoVw!CH3PLow9Qysf!hhRZXjQ6&x5t@A{}F&YPj;NfhKmGy&nsx$BFV3#f)>pYT;4;=6xnlDx|I@N(2 z-BK?K5p!j?LhGuy{70sFs8sfXe+@gUTV8iGD>e{tj`8}i)6_L~lQ*kq>yHhZr#-Eb z7CnppUBTAS@KfM@H2>%8=0I5BH7vN;iP^M7Q^`gx2*2$+os~VC611=fH~}Ja#{|bb zU6PWYadM=%L&dnxQUgbgj7K6`W4k6S|1M9pi6HFldVh3v-3&o_w-|;tkIh4IMnBNmgEG7WdRBs#qm{mD4GrLw1s-M^Ui z=$m2M*60f@4U$z|D#CFBnBt5kKokKN@sAz*{Huz!aZ&e3{BI|UrNEN)ATB#8F3d7x zbUyQcJ(-rRYU{9VU;-(ARik_pmHTgP&Hm4SG}-^1mbSZ|F8p;^F}jHD=U|qk+$&)k zwi}@?t!1c_dpTk7`CgML+(h8zs{rS-fRDoh4igi;;K0587Q))T(l0eORVt5JudmrPhnJ|KH%P6%%?=NaK&T<}XzFZdpZM<2fkI+F^tZ)4@gwI_;){_Y z>&hpOIp#&!46O;60D>7f{%E-^EQh{ZUcIx{%4?BKN1?xu{#be{C+|u(rvUhsN)-GtnC`>?%y;VQ&q4 z!Lk?~HYq*V&ac~Mw9+YXjWkuJbD%KlOX2W%tYjKNzTyGD-yJ|KPKqk4l3mq}grT6h z-G-)l^-vP!rQC3L@>;bC=tCLhYA09q+3&bJxoX`3=U*mt4;!vt$A=6b!B;&q zMc3^nHP`*#cAxg{18YUixUZjwl?!|QlBFhH&r$j5O9iIlg_#ql5%ns{8C1mlY=-F5JL^_5}54 z$vw1K`?RPC@vC*Y&2(dK8_c9kC(m{kuDqpbNIe2rzJZokUQqq}lz>NhDVxx~kQ+q> z)|)8L2PZam?+Ni8aA{q(!MR&;Vs2~?t~Zls#r!S3#l8f$M%#CX%6OY?fyr0d%^1IN*k+J{Qq=$4cEju)iPX5 z`m?4jD^Tuln{s&7NEa#7Gfi2K4R0-M0}e7PD`1c2srA;j^q2JT$Pw2^S|g8U(AQXR zkv(ZJ+qX?;qCBX!c`y-I)qq$UldQ=8k1RxHZ}8Lxv-dv%-T}aegTiIl>4+JTEdSQE zHnyO?BM$85EPYCwLoPK+2TC&>`pMs1C*!`p$m(aGNM#bQ*IcQWlALA_IyFOytgN9C zi!i~nfiKG7`$ja(0@^e;krtsg68c6eG7)2c*+hR8>QO%+Lj?Oq7^*a56RQ;?c1)2e z=IfF7%{!nW4Zs(gCYah3P;P{==hXEvUuzeT7mM`R+^B09<38y9gbGA{Aj8GKHf;`I zquiG0@qNkI;))sqnEXR5qfgL0aQQIlg&KtBL*D*}aGL}5f#RZ^Vz?ys;j1L=wI@M$ z2O+Ia;i61>McFSF8^hu*sr~c{1+@ahtGq6NxbbZa{g-hwpQ#7+1`9&1f6iWkN_o=s z9ezAkzz*(?fg@qn;W3jIFu=G0OZUl;ss$>3#F{lt&;^8!!DZ|bMzwQqd@`*`Rb zTF~=yTsAx6V`{mc420PRa6tSy8iL<(FW)_JoPevy?1JlKBIA~{25 zj~EK<%Qt^&*iX6fKsE1Qmx2FdHTP>mLwFhMayCCF>2!QIj*doMD(QT~ZMqa!-2%R9 zE;}6u@KQTEoxfp23{-oh^2v-G0ER5= z0rvfpNlt4ZDG$FM+IhfRR6Re_Q4(;1E){uH7d9Y?x-T3&iwkS2c;U*rQMT9P!qj>e z8XSuBH9NM~KOnUoua-m=eK7TRD4Yk@Eln5@%o4qP(0%Knj?R<#Ij>P)xnmWezr@CN ze;thatW+{mYw;)+)S7Vrq!{Cs-B7vs)8v~xizP-T{uQ?%;G*#zYHa{s?BJi%lE!tG z9yUaPR!dY?RPFd@Mxw4oV_1@HAKyte@WKzLeN>qbW_*7tSRH&i^B-9flErADNnpUk z#tG0g|GC%9`RtqYtB!APuvkLiZh?J#Wb285pNFs9_)DGf*LTkN8Cg%aBUFwEmL5@y zYt%U-WsLRoAeboK(Y}YZ9EVZz?ZRi(A2-0WLYaRv1uw8YT79v9K%p z68r5Vr;?4txL<8Clm#chJbxOH@tWwGU$J%iob11He&PCUo(*b|QS$f2y?Hq-|ln(nh|1Ncu_b&-?Lz z?~p5#B9wgW=r^18L}>e0Gm)OaTAa??cx6@psaKjRj;&zr+$TYY35e>LJMezD77wVo zNi3HsvC&oYk(|QOqanAt9QW?eQMbrr6M+WIf%}L*82Cz3atfl2z%N0x`lQd~G8^}8 zmpj>~SKIFwzQjf%9+L-T&G3{bn;0rGg(iMj>s4onDN}0Zc6xEoh;;=+pb;!w(+UDY zEhmrNUKW@r*NvY7o6a;^_DECcsT`-tU(S2JH<0fV#}Y{h?S@1#)eT$0;&V`)+J7kG zy~xFXp7gODOlH%JT`rQoWg4REI*XThB8j&llYI6@+$p&^zxv0TN|1`&sCFpukXqTk zc$mgjFXVAW9b_dz#QXMNTbA|P%^gg_@}Od@s9G;O8PyarjH1P{+V%g)UNKPGA3P3R zKtLs5KS(oAA7@O->tb)ep$HQ^7=E`1gdZPR+8~4vthdPn>P}o+ii{Hq+60MQ!E79{^v&{1m=|KGnr)B z|C=Q2O4i)BVC$1a3Ulr5Y56VEb0s*QI$vTsl5V;jv6hhycy!aw>cx5Gws>F8U^~qs z?Dn~`6OVw>l}MRrNRTL@4{7`A)Ad1;K};w;(3Ow7=Dam;zb7QAtCtQ1Rs*n#5|7>C zp%Q4Y7hjcrHmg1=e(M@VS^oz2!H&2ZVLqN8xej~tdso1oCh}^VY)nkd{2F@jBkAJz z1D}?rqr)GpD-FIDaUoCxXf*X(?}mXJZi$9v)xXvO*;mfWtRLy!nN?3FAQ$0E(&O7Gv(Zz$nU8x>&Y-D7*#81 zw-~Xn2G4Q&qDxzosOq#xwrL$mJ4(e@y7vZTSW%(*TX5H!2*4WD?IfSla)TLBKnd4& zc|PEhM5pQIVlDTR`o?mgt6;xT{;H*yT}-^5$4~?Z-tmrsssVJPk<^x}z0#f@csLTg z4r2N7D93w5I6f|7>KgR9RFYlVcDb=XcQp_?41_HYz4ZwwYhpmgBZ^RjIg&5zRfI*C z!5Ms6NJNtrt^fTATmAF_u^4pIOAI`kIZMBm=SD`mg+>hQ8>({HbT6*Yf#5C#n^~@u zSVxm!RyHdhAuY>}Q-g5eLtKW-AgK6Kma<@6MpL};5EmMnnW*Jz$LI)kb#kp2X1hrV zAYg`2QA{T)acWc7uBz330fEW@kGRy_OKhwP;^+Y%gTVW$ka6QnkrfP`yBwYF3Cq`Y z@}2Ddkq3$GOv+)Aw(oi=mwF;2J~rGw>eBZg)2C;Q0eU<1yCgfrV(xg*a)g=z5+cUk zFwOh^*$;PL-W-|949j!c)O#93;_~O(eC<9jm&S~e>f3Gf=J9`n1=%MIALLe8OK7%<6MBW8xEqZ;7so zy*q?n_ZwLGbX>N27A|v+eKO!5K1gb;!#5(TeSepSP9`@EUu-PFdWOWv+#V)mE#*bE z-pn(uqYl?tVY3HSxlmzRXI~?aOHT%bt{qk)OUWD_vvM#>4DI6`c;c$YjOz;q9u&}D z*7%00R*&FY5U4E&+lcq3y4#KG_;f<3)DSTA{$g1z=GgO0Mu3cxZ>ep$_SFZwIJlXxrtVPA&wY-H|%XVcf*uZpT3dyuisS+zLURFVUr;YUOv1|X4 zQS9&C3jVF4F1FMDSR^+e%HFkJV^rT=l_-7VyjI)z-MJ;og-M2q=t#Xsi7tSZ;LDaA zy-f;C(MZd8D1hk5z&j3C;T3=*Sxl4u+K7*H1@<50tDCiqX_FdmADg4d8YP33H*!fN zmRqbAMur))ab5^HWX)8}r`&&}0@vSmw6_8qcWJMfg(bnn*u68e za;5+l#!qX$GEw3zzCb@H7Hgs7bv$J3SF6jwk9%Z#(a&0QjVHv!=sEdF*tymtrchCO z`V|EmqUk2k>&jiQ)J2sjQdyjAxdK1W;l*7&rA>Zx%pQ-4X*0)}r zpEf2}%RZzj_zvSS*CUEW=%96j7c#0)E$@Wsl%|ZIe%U@-XQ(&b;-)9hlkL|l)*DEO zrML7C*W+Yo2oV5jNs(g1(_U17*|xm9X0>(Vxo&4~6u)4mXGG>Gy!x8bM9F(?-zP0= z?bB3KEf_V{KPa#F<)klJlZxT{%0cCsd}qi=HRCQ@~JSr^Pg4E*BvRK2zQC9dj_0sF0ywa}~=)Bvjyu zABh=ij(4S&Jm)-vB195+wW>GZ&fQ#z7;z`z@KWPIoz#|K<&5Zu=mwxNF-I z*?wmzWS40EPK%({>7jzN2?QO0foi0mCGGd3Oeehj&#EZ?aEozYpBhf!{&0VG=zcD- zxs%l|^GsA|DR|w=)sS|YMWr5~<}gziKmKOcm-l`@uZRRHK&0TM|GwHM)oTkP)3I!m zx#S1ev0JFXtV#5y<>@zKCMsashRWS`nJ-SX>!Q|sQ2Up0-#QJ6_Fw_8r+1JtH5msx zIjcgRC3jpLxGKnU+?V^ZIN@6t@Tk#l4Pp-O$S?w(oF@PftB0NLpf}|}&fu+54)}5U zo~fOjQB$l@V_PPUCwjf>)cxoQH|X8!;*UGulExZRUY44emV7+TH&Jfi!OTuoSf2nE znIrKZ@v2tE6RjAC8b?3Dvadr8DFdf-Q@iiqe_18842`NEkasgp+iKLO56q2?ehTP0O_I~j=D@xA>K}= zuA>oq8vavMhU0+;qhdhSd8TM4V3^kpS)-~ahmoYpGh4I^95Y#YcR;_Hq8FZn6PR zCvVT8is*!g#-^F6LGGftu<3b1L>~KDis{|1A(3BwGmaJ9X*vzKPIm$B6R2}Fu;6;7 zbXPbiJbgTD0*+_3%HJWzHz>Bce%ZT^1eyx>SWOnpL@XR%040!;gab12jPmLGuA|SVFhc(f$7DP3`kqXQ(`#U=imocKVRY8BO z;+ohQiP2e55Ydw!68~~J=$P7?YOg@C@doVt>r7r>s^U`|aW&Z+X?Btlwuwt?2kS=~ zt!N2)4|yLyP?;Gt@q?O+v_QNnK!`s?G%?p-#;qZC%TeiicA#gAw{>-`GdW?uT+y|3 z3qx@I;JtLRMvEm%X*@kiAK^GeX80cSR^O z>tvVF8FBXJvO`=PF7vD-<8V0cxVwIzet+?wkI&~lUa#kQUeDvS`5dy1z(ufJBFJ|S zw>iiz#p4?XgkJlx$lidWEHj1PQgpS6Je@ZsMbcl)MQjB&B7+JrD~If2`zlkJZDc^& zvks74iwk#1ejcU8d-GO3ca_pzQpGpFhnGBaev#}2p>G;;+82|PNG~)03g>V~*BMSq zZ&hAKDg>*OSAK zDNo*qbCX4rlQ}qd;hG(amhI^+)b?wM`87bEHI5t z`}-vNWtQ!YmECjgwGQs73%@nejiIBWui#54Cj(d+w8oepcIfEczjUwhwDk*r(o zmEebOcs2yPqcChX3oU^5uEAmGA_>p1W00>t64AW8D{(t-f+6L_EUtfCx6LV8V9*Y* z7L3NHS?azP;ufGr^rsf01CnS3n2i$-Dcinl_0M$#*Nl@|jP2xIn9eN{@|1K^YahZif2DG_t4Z zKR<@#2rhqEdRa~CL!B!Oo|G8c90}5|vd=V+qa^pTFiLewrv2RC5aUst9}4ox1Kg1f zo!DE1k>t~Jfd5KglSuLr<~#46dBHS&|Hq9LQ$R_$w?Nw$@DNuM2$Aen;)dl(zmV;~ z#vT6leVq`geNB8rv)?pj@T45vX%(0Kdh^}^RCa~bFudPFA!dar4sdwEw_m07-RsyR z-Z3|}n-nddYHUU8J1pq@>BQ|J`y4KiP+Bzv-pF>7&mkzy3CE<(0qecaI+v=AO!F%F z0YBEY?EQPjN^D(6hr7vje(OnPn|Wx5*gufqgu$BMm!4LWW~7UZFPCZhz4EBM<*6fs zo_|dtmJmvs#P}^DT3!a!U;T9^06SHlm(ylll(T832+RI=>=+*W%;_7;7}ovi_c7XF zhlRro1r43KENr)Jy4P?W=K!?tTR#q1*eF4yu*LWGhHNBEPbbglI%CD=k(}{h^0JKw zxARN&)+;B06=iWj{9A2+9JX#{T z1%T!9mK0PRR&ky8?#uvw1? z>9$3T>)%7Bp(|TYuPjnt3m+`wF0yS1R&|*AV2X5TonciFG);jpQa!FBzv%a6dhQB#ykDtYq1_zo6bHiSlLk7Kyf`}E=Vy|Jdqu@84XJ$7BS^MEP{B_SSxqlLF zetqqS`qg@1n#<wp+omL8l;d#4nLIRQLYiROt*!`^BO_m-2CLo(>D z6c%bKOa4&06eM)8(vd8O)G%Ac zylhc%`yHBMA?iPm{GRa>K-jl-#QW~bXk?|tTwpGW zl%7~e!dYeTf|EeT`W~AduntZRDqa~4FsSUaT)dz--?g3(MO_|GK)hVW^JAZ6OiqVq z(fhDJBg`cbP%E@hj~gpD&@?3P*4_eFYTh^!fCz!<92kwyMvO2gea}U_}}?SB}B{R|e36_Gdi?fx<809dgTg4Ssn|pa^5ELm%&N$k{cu zp$^+l;Sy^R!+JLsp{lZudMH1{Ed*+|f60ThSbFH}g~g9f$~~87Gm(3_N5o~MkoAnw zSi$)3*4LX=76<_C>fxDO!rR{yzh+l{Ah!9%UU?Ajlf?v%b7^|}ysp~ljsijKd#*Xr4p7P*OhT1kaKrISkRGd47Y_23TqjsGH!8O8%!yaV-=L8nh+ zPt|TX>#UrL9q0wz=^e}zuYObh)P1n$!GEJcC;O18TsKzd4qoCM>BKKXq}Bv-@Mouf z15Qz|Y+7uWtC{xOt4Fti zf{&q@2I3;Gy~7lVp$LuIreVscN#Cu$V(V3X$I>|zcY=Rq9`UDxZ<`y;wfpIvJ8!*M zUkzQL?V8xUd~iS7Y)~k$&U1&Rw-*L25WmDf#iN%YpgJC86Bq_Y*ynJ4g)gD5hkWIv zJ2AG(GAh6yL*3$VD$ks>RQw^2D@e6#C_9ek20Gad16#%g^f=n) zdfG{3&*FSKp=jz&YPPy(rRWl(3(C5&ppZMg5YF+-=WDjGAeopaH^mkqA}Xb)JShDx z>g_1*JMq+q{pW_`tApV>M*pz0xFBqIgKuX%jhzN1Sj6OU>7uGDvSEByUa6VDr`IM( z(m}f{fiyzL*R8Q14tb+b^3un_>pe=ru?^h!t*w3p55Re^Ftxa*YNx*+!KTYsi?5a{ zGmNfKo(>p&o8n35lE8B)+Rx{rJ*hKMhj@~>EvphDJ9p0FU!z$G3bi}wL{>p-u=qS7 zyq?PnC_Xthjl@n8dOlWPhREr?3ix7=7FAd_7Vb^=-~crEKKa?&lTqSq?yVCD&vJBr z3wm|+6+i=J+L`4i{vnQqA1i>y@-D!I;WHQt6mSp=^EkeI|CGeQ`N;m=r7K$Of}O|= zKw5zKvEpx>=Dy|q{<~4i{(AC~!XS6-hIz)!wy>g4gN(UFKj%(D!Aqq8H08uRVDg_M zRb?m>Otak3%Uh2>t|~sUgGnm9w~BG`G}o;}f4Ojedk|eSwAuOr#^D?&w|0BKNNOkP zVVr!dvoRxAP=5%5iPOwHsYR zkz6_kq2DZ3>SD{b(~gBp2G)=c=%QDkqq}bKTD)yrN9RAI9~60(3RibmwORH}dQtyN z(lxVt=G;U@alP^5qtL2imgy3VOOQZ#X?nYP5mzKC>LY01dUC~F_KrO!vk$B9O@;Ox zE{k@Xk|ky)ZB9a=HoStQq?MOB4T;`Qa!OrVsB4k}A>r#9B66uL3w)>39CRx`yO(gq zE49$K2eRcA{z74|fd-d$`8`GBQY+wJpElB%uj5qr+l;R{&@Acc3$qx1$lmJyf9t#! z(W#aYi?Li*C($y2&P*au_ye|dXxTeoP`(uoHnP;EgTW}XrWBcGdOooEqb59x(WubrGjXK8<^!`yvYi+o^q1^Q>b5QOFF|pfQKql2tA+af$Bfm)Z!~4y%tM#U8YpNzSz(Mbn4DR~UHjubW7fZch2w3>gR4 zTMXKuD}0|GDHWG5mus=a7-s!RwW!_o?mXC*jKtC*4lVCaHjrZw%d>m6o+r5p*7wYx zG<&p~6ZUNe@>(7;T}|7?JMItt&bMISA2-J(wgyMc9{fJZz1xF3WEBBfw1qaFh6dRw z*By#3VWUQJrwaA_Z`^Pl^0K8*m0w9nise=pIsH~4p6gjDkqLt-Jm5J9GDqg2YGw3q zGA`Elg4i3=^{(}ATi?I&g{A(DX;dy(5-p3$doI>k_rV5mDK(+s8M4Ng=K(TtYKHcX zb|<0m#*>r=47i_>>u6&n_~mkH=LmClIDQ)m%$6TeoT;@C0qc;uWwqqJ(Qa+xW!~>b zmjn9LZ1_J8E~{$ZjMYYSeKj5S_8B+4Tm8c=VZEAi9AC#$=2Bo5ulrSC6HyLlt2j)r zKQz=IeHLES*eW>L3P`5}fR>B_w^|c(k233e??x@zgh6Z7DH_78gs5K3rlf3z(HLSO zpdser#wMWUuz3`OfAHP5O!GkR72Q(qM>QWZ19IJXEwfBlSQRS$`!Agv%O$-PXtEk- zy?erp+q-QaW z&knB$jX+(VE$jj;-loDM0t!EETheEJ5hwXkNYg8ck^51<;&C4Yp8Dd(-Bfd0hkDg% zeur+A5@7UT=!q78>i#*G)xj%elNrpncXEVi=`mhCHjuAci=IKiruo=s!cd6FABH>_|o-YHbFl6=O-k)3FQqsP&aOYGH68oi5>$c6&=M?0dq$s0t z!HG(#F^CKx_!a6{nGQc!sG-U&^l9Le|}cq%AI3QEQe3&qr(Rpwmjx z7EO28D43Mq-=L|~5Ffco`Q8_u?p15qX8{FWW|CmEueK&k*b?l^$t8h~YQFB^@+Mjl z?b(=j_y<}j%XiPz;9XUlH^|o~8HL(gRtcz@ww>>YDd0X`xU9ZyWUb+O%y=o-*-)UY zyg=REd4xMJ%?f!7Zxx}7HP|@5roe+YxJXNEKAggpRdzPMvE&aY4%#u z1bNd~gZfG5$esN)(Lo&gbzK0iRwjyf2CaoF{V&z3C{-84C-V#0N%av z5E4`6HU(!d;9rkpc9A$-KSg-Y_d_^%8EAEc9>#^mC*LGRJsWR-cX60~5`li!+;>EciDo)AkM=IiPLb&py zmCDC)2KERGGOd-ji(-^z`cqn$G^n?dp1sxf?{JMBzxnI(7u$Vp73PblxkqY%(8r-L zx5YsOn5dCn<)5_x_TSdj&ySJCg3Joyxz|%LC%`hqGVP{Nl%%Yv@%uY{ZOSLFPw~*L_5RJ^ zva45XM%OqE(2*T)`xzWe0BCt8QIvK79E!Ahk0*Bc)qraYBAHV6URXLwe8!`OSROLi zOWS$aWtW>NwgUJg0{GHu4(0?U&2M*Sg??6~f{hZ}T6ppvpvib$uJX}i;6-iXwU`(i zBE*O^07XUg4DS*@NUWzmNt{i;{iMZELCjF)FI~PUxcQM)(=m_*y~5sO`udja#Ko5f zMlL_p`7z(Ao2n|H}#d)I$D1TXDs%9G`}&Q zkN~Z9swJ1pk^Q=kYnF+p(c`p~w$uyujI)12oq7Mfyc(A&rQa3`Oj-V=6J7Q2*VUVN z8)d8g=X=ci?cGsyN(ON^g=`VnvawHt{*wmgGd9a|*g!IY#nTzGc#-nr3>fed+chD- z#_!sDl?`3)+wB+;(b3e^vy=O$iCpKJ`puFnVem+iQ(Iw>W}Dm_sMH@6H-7Z5yec4H zWpr5ZoRZpE`Q1Wpe)MBE*_P{gE8p`o&g^t(3aDkFi|QT>J3E%>h6|nU0vyi)D|mW^ z9}HyI<{FvLyC^h)qK=~M=W%Gt+o&6E0V`ffX+1h)-WNaWm=#pZ95*uYhUM@t-PL8K zxcv9qMdk*1vu!p|*udXk)GH}$dBrahVDuj&2G$pl`ma)h0pAr&)>8kB4dt708ZPDh zVnEtfeSRgtzuNIBdL04JGx}q6+$h-r5O}bt5Yp&b2cBPS2QLK}ol8<$vimR)CjD zg6^f8@Gud(!&gbrrukk;bVc6JBNA^@K3Y#2)I3#nN`aLUYs5Vd^g1R>=wC z7vW&8h$Y{pp?1#rSVW^@+Dk^C%U{0Q#d=L-?pve3VBepmkoMS?D(4ygTtw#Kx^F8c1G=v3vuIR7D}7 zSrrI`#=jyUy1%gs5}uyHzAY1rXke`)xA7v^!?0QUI)> z;{bfaUtQ>3wryScjBH^&mQVMd`u-16xEY7LWt`kApmSa@b%q*ewY7Tyf{9OFq&zYZ~P;%k}5RM zGp#km>B!p;{}oEhs1mFfo-!=52ab=Hkqb?F)1KK8zyT+@g${pj`f0tjQB3#RtZBb) z|L}1}CLE%8a$q^(qu{1wJO)+;u$mpS-7pQtnW-%-K>-ML)SLEp%~+Av`*gOYXZ?+Q zQcBWj7Z^1hF=3OS`e$--ox`0on$HJ^{3;fD+|G`%Wp))4-LAA8jf{acz z!ugsad(KjP1EPw>)YNpG6QQDwa@9W(*jQntneZuW@d6eQ-@>_f{0o6 zSh`~+AnW4W_A6%z2%`zCs9Vl63Z(Y{L%e)sJ-n*=voRMhp}tCddwD8tkg}A`nmKau z3G2m2imquTTD%4cC2Yc?%}qQY?-5X$^@;sdXXcJY&jkEQ_La1Eul;f1P1`shdk|oJYv&4yvHTf{|)BDiOaqD!(N?E8np`~6t{Hz{xY-so`UrXCJOHcnPk;GWhPnV;o*BQ29yckRdc?p*E#>CyO#5a!21C>RhRf%Gxaa@KD{}* zX;a#jzijEsA))6FvAuHtzUbNmg?4i_|L?04H?N6mxcxlD*E%TE;_=l+rs8oG@-p+p zE!@OLxCS8DAP{0>X7nw(EFNfi?$;wqJh#NAN*z+TE2$rck{=Fzhl+Q=z!&-zPV6Tu z6<3N2%0uNhK)Ju07YY6Wa7i~&Z#RA*2eESvyi>EMzMLH6jk7c9wod4mnP1y5ve^_B zl{9Km4=I8Rs+|`d>YGRxfgAz;T-QJp%qsZmu;`>iTYcuSJu(sLu)m+E*CW?I$xpb_ z-jL|>v(;s+4gE0Ve9(xWNMTZFs?P1#K)`|)tFi`wj|L-$j%lsARf(Qb^+f{ft~9_P zrD|&p%i(d0u{F(DAEX<1G;MZQF8CM6d1tZmayaP43n%p$(al%C+ru4ylnujd;JhSY zbQ7T#cdbmJRaXgIw63bx2g2FIr(Ig|b)4s=dBt|-Gcx23SDm2-K!mUXqE7eXpeUf| z8!o$;f{U-!K6LnxqLm7|P;Y0x<$Mb5`{SuM)ohr6Y!$i(VE9@N0~D;0xPA z_^V$dd1Cql8Wa8eR9-<{Y!|M2D{GzpW@oSM5uvQ(AS~e+h{Jmr1A~g0OjQZ@B&zU- z$HAyk4weGw-}Y4Uhs1frS@{|?PXj-@7n_+1`IoOj;3|I-#xUh=(gKPeC(-Nyc;EHE zYObs%2{%?J$u(B0&Tc>rVt+Z_F=UE0PbS~vmKl_=DAWIb6`u{5u2J4U>$ zw$@`_H&OJV(#IR&_`p`|{hXVJO1{=v|8wDLzCEu7$|e$J!@@1<42#pugB^t6K(sBJ z$Tb5gT=4AIwy$l{gTyc2(TISY>jT^-XjGVyNdN6 z&1-9<6dZ5LzioTPo2F=*bhqSO;QPXvinG}!4hKis!R^pI&=ApnXU6r@1tq_MrJ_)i zdEaep4qB7OIUD9lgcufWHI)^5hMq6ug3W}18c%lK%A{;J)?k*D1C{UBau2g^Uz&c{ zjLl`qN&ejJ=#=p4XLVyBADeDrTYK3sT5IT(9Hc00kx+_au&}r{uU1y+gq;7famxjk zLoa2W#?hkYJ!JEA>#hz)DoHN7pEZCS$isa1RnMsDwXwSO+zOrM;Uesls>aExL*KfE znff%jj6m;-NBqLIerjp{t?$mU?A1K@FKu8c#r|o9#>=vajG|#lq1T5X=+^$>KF!ml zJqU^^0LBlrcrVay|K3!(nOtf0wCSp6kU8@R>yWm1@6^z0{XMnt9nPFr171;fEk58U zm)}E%EaKA=8mwg&3NRG;Kle+F8`y`e-LqRGAYoAJz|-s9T@4os^FDcrwuD#H@ii&} z0%VmFNLv~j#>aANgkq---1FfIWtusw|8hpZ6Svq|ubTe1Ur3w@j$mBhry4qZfolqT zRrw877-n>wK=n>`v36HYS-Br>8fdTlVwoy5@@N{ng@(aET2wH=(=4f&4{X)s$H0lL%zPKtIcs;1-3{w4o&>pP7X2~;Q?nt=GZ zB6OJt3GhJ$PMK3W{0OumAVv5C6)C8X0Yq6(NNtF@kR3*uty8@Dz5~m`Z~Xwdl(3>c z<;!y7cZrX=2br--f=qWGywn_LC$~f>nG}<&HYJlz;W+B77lu5$9D-rUG5NWmex1jY zRjkZFsgJ*tfl_OifBKc!gqrE-EnHAnvl2`^zh{}n%+d6bX_bz7`wax%5N0WI)xX_* zo+Tkex7KzX3T#NJ&X{oJ3h+^A2JMS;_ws`K)Gr$?)^QPKJ?>u2?F^TfF}GV#xA)FP z@FjZ6fH(Z-Jt}t))8dp}Ct-_s?z(~LZK5^=Bp?!Dd14aZ1-mrj>m5;=;UCGAr#BR- zu`;4#Kgsvvo5Bml)y1SDSUSN!HITn(t%&SPjTny0@bt^hPCT`nb$~^B&_t)||J-T* z)u5`S(U{LV4Y#(_Q7bqEBvR0 zSn}Ih9LIVTChn`o8(96ii0|mQLlLc&NUeyarIL@ViwxDf(0v*<3sJA(@XU^zv|R)2 z7i>*F@=CHvr=HFG-8F*T+hT{=c^8+axE&MLamD!COWgKSoM%_^8k@` zk&q-yJMVjg_4yT=B{Z!Kt7CQ?RIF`N5%mzCT3^ld#eNed&A!*YkC%@}H$3nRkGL>S1_o0#~ROUmNTH z#cXip?f03M?_$ss0L@{kERnD)_!I6b=v`d+Pjz~Nd8udW!eRF=P}T2uF0b{rfs`#8 zD$Z=WTC!7*%>!=dt?@&j*IzHGG}t-^G+)j_iK&uS5Qif}Qs&yzW*|-MA3r5*EU#XbOHHo$)@m>Xxd`Ev{vnHuMt^o~+~3Lk z`V(w?HPZh^9y}o`iewS(Ac3`a0W>7 zG+?o?siLCehVD%n5lYC5r8$P z+_E>Tmn1hQTd3tJUwy$s$Og18B?w!rN1k4vQcuE)@?InD9?=snH_b?>NS1bmMk$L2UYJ>kX!(A|J)UpT zsk{>6mb_P&SeqrEX;$*d#6~l?$V^gEB1Gq?{zdyKWIi?I6!!A&mmH%bIOC2AQt9krbK&fcVyq-PA9QDi)|OKh|Mt_j&oMTM0T#fn%Lm+xCG*y3{*LBI46 zLMjmB5)?ca7%x;GmqJ_((UXfyVq;_Wh{)=+*w}Ta9rVgNoWXYS^{FOIrHbAc8KU=5 z+)R?cbn>zWp3r3u*a%c`R$`=Di5AF(2ye0On7hL0bnBf;az)XnwC+qkx`zhi`X}xLqpx z&*EpA2cP0x2tDNloh+5HlYo9VSrq&a0-0XXfIZf3%o^mctAEyK0H%MX;+EgvXl9+4 z->IdlJ${%;1P)WeZ0+6xJd~zi72_-Poe5_N98w5?9mMR@Co&MKQ-K=pg^y^}g2N7lX>t{fyzqjL( zaghPGt;9SiA}7JCph7F&L1FNZac((yz8dqGk)i2w@-j1&WZ1O~Zfs4yOFmFm z&vo&c@*=m-erQ%_i#bxPv{uO0k@;dQQm#8_%|-BGGq->bO=jecgAR+9;2!{Ao6k*h zXpdtDcGro;nE5pjHMncx!j$A)?O(NbCSctYH44hlx{^ZIneTBtKlOmJ-53i zGAH~`Uiq4?;mk?^$EhZ!K$7p8P&Cr5^5WE*-d10;ym6xsqRKJHc(SUP+uCNf);R#P zmilBjzhMKH%lD>RXKKpKdMY5jTz|Ix>s$d0E~x&&FJoo9i2rlrJMRk;nK+w>VM=G@ z-g;!^;Tb{*^ohH(cS<8XsPWjMNq4Tb$M+W5uXG0<6q-MInC||B5$bq89}^UO2xuz` zP|G#ymbQ~_Jd`rz=rJW3x~JZa*RyVJ(#Z^LXkWrz5ol=mb|-e!u25q*_fS2yj98uJ z{p{)Fp3{Hl;IjT8H}fBASOp0tVQClN?ujm8dPf4jhfd~~gu&hA5hZgW$+~CA>h<0< z8^qkDs2koHV$A-^MoJsoChM;eD!PwGk`byFuP|A6- zCTyzj8T(Fe^@$NY8CM)wx|dR!HV)5Xz8!xe>2UV^Yl=Qysl9OYHgYy#z=ega8N?=Q z&@O6(v@%Yw+}bANx0(u|R;0@VmfB@YE1KV?szl18u+W84$&B6A@XM!9!y`ywf=!Rw zy5Jxiv%jA)Ilfp8s+kH;ulJ8eE&! z%`KcUgn|VN=BP@vzVG22`FlHRNqnpt{igGCMfV29WerBYwt7JKDPQYg>$|0k- z)fYqGPfUL^KN5{+3JR-ml&#%N*I5|*Q~^<8uPHL59MPYWCz)2FRbgerMX6 zhT?F#W$P*_b~kJg`s1ZL)R--cBB%^{Tv3XnLzSwWRWo-aMN= z2>dns&qzR^K;FnVmb>M%Vn+~H!q8{SE~dPmgsTc>7o~BP=XL{qMj|k@PU6Ui5|MaP zqHL{Rmi)r#6j4dp%13OZR}iH;4hwN>tE-Lnb@FiZ{$U+9qA9`7b?)(!Uzb-k>-N%W z^+t0S{|*M)@s}=Jh0B}8+hs)93h*s<7?USm^+;{ZZq$}R;U9tdKLmQ5o1L*mWU;5b ztZQo(xcl_^mx1}Sd%gK`aC_a0rhKTM+v7o=)K*9V{IdJwfb2X2jdMlws=*$fSf37z zZ=RYc$pB0_D!CdJQ*dvaVFoDvx+AKrKYwU@nw(0q-z zn;*pH%Xbu>4%-2Ww?%OKqYSMNQns4r#b5B(j{H*_aNNG2z)-Nm&H*Y$sjs0g!JN&@ zy8$F9hY31n;>c$F=qhiUkp4=Kk1J9Ygga2-&+Vub2ss21X_;gw&-%2WW2%!-bl+oB z9NQ6$1_HscG{zI*Q~7Xzg8Fw=i|6fobFVyG+1~qnBdW870OlofBN4$M&&K;(x6Dq? zOf?Cg;n(tSXO8=lVsjjoDX`3C!Lq_d27eJ1Yz!jK8mjWbzL9S=fJ%1TDmH+za=zot zMR~mV-to%K+;Nhdt=6R1N;DC{f>pBFY86ZKk1w@yuDGM36>v4gc{3@%p>4I@5Vn3J zbFv(+4C20#nP!0|v`%_B6|9gXeU3Z;yz4XqWpx7j{3U-|xE`e4(>Yx*e#M zPY&-Elg)Gf(a*%MU7d!K9Ihs*7gX8)H&E=OA8_4LA!2|eSD#f5Y~5O_o51F-oViNy80cO zG-Ser;@Fb5^i%B`;pTfuN!bf3hGG~tbKu6@OPupCG=95m=)E%@p>!hPJ8j((f@pemWhL;gJg_gJHd2kZgrOE^KUBG_s(*;{7`-- zmd15d!+{ldXOgJ&IhlpGDY5#oJQ|EU&JZ3CXz<8@|Up8Ty&5q}MD z*SmsX&HZ!g8J8Z2^N>_0K{w|;i%f}XI1^h}z8<~QYWv3=ep>S~+HlAC~;&%16thS>E=Uk};fj&c0# zNI?;VW$%_GjE9vDFB0^ohfnpDB4VueXO)C#jzNE*h^|!qKQe@Bd2(H6&swvr=D~i{ z_W`ecZS@~e-IGmrc1`&>S_iX*)y)1pnFhcndHBXG@pPNW422op@OP5_1I?;$C^6te z4`JhYC}zz`2p^7=M4wRnh|PJ+54OGg?+#hA&Q)&B-j4cs&h34LuqG8~RsmqgL(^PfCferEsB7}iZr(4WlwFP4Lq zEYI#@nN7@Bicc@8v*?Tm3DxQqp0?pWbenoi84zZHlLUpLagjR0-NiKuBVanY)?YGF zrqL@YHXyPM_%_cY1+|5OtgdAbHQj&zIhgE|ow3B~GXqcuf9dXMB^_q{?vl+IY5w$L zkdZfpyXa0>fi2+MUDxN2ToAV)&Yn=3J1b=OI(SYB03>q{0KCuSR0{PYudX${?7WBR z&n&jJ6#c+I^LK{Uv8zAsre2K7Pw_Dtwau$b=yq( zSgV4~Q_#DhAJnK{hf~^VqA>RFo1w3C@D8<$dz-n}8#;7gtxbSs64d%=uLoCk{#Wzr zO@4Z;x-N04NM97Wb@IoR@)NIXbgNnj$1A5j*gxNl0(2h^_RYFFTZO=ZvGLp7bNF9r z+DKWUHd7qoz)0#vl}9Cp2(6`4#7!-s*l&T1>{ZjgD=(H_1+=;Ddc$1rPu)q%9ycx`^}@a?epQS1*5s@jFREfF04uMW!53dh7GYV=cng)gJ6a!R(I9=UP`f@uHhY!SoHk%gb@Z90Sz^VA1*2!#5y;n|V5;BlICgjGEzdIJ z-I*_PK#!`)!k?B9Ks-~PbXRSB5c`jr}|D%;$w{8E!P5{d*&THwkv8BbH$h%nnAV>(wl<4cqY%~w~ zx*xnIMu;QIJDTmJA5E0(iFbRZS^d6jvW+?M#(jq|p_FFy|I)dF7H6Hc9_v22O@8%F zX)$a%P$aEHUdX+Jm68v9d-W1(iOE&{^?qt z?;@B&_DGR~($b@a8!{oBSpz?Noi9yoW>}gUndkydgVBL8E>Q8cb+E_L2K6-_qdV4n z_WAVp#qnsdEs&-9YE+Jvd-l&8@Br_wUpe#{9_;h3zp)W(L zcN>LX3xwjiU(Om{uWwX(ra4NVtBJVMi(+U0;kugZyq=qVPDO%Xf#{+2JrrWyp=>-d`UWyX@}KlQh9=QBav&cuN`3Ml?778Rr=1m{ zRAjRK<)>fd#gzcQg9y2b-#=tGn4>N$U7rHxDy4i~0(fWww^x0BDA%MiaBxf0p!$mV zLV@8dYYEiJq1tOwN}&KTV>K*Tx=W-u!eVXozq0`wfF@+B%F8-oc^TOJP&89t1nx#_6vW`^Y)2v0v}XLeO}LQWj04@vnHR@y8)R#n{OJ~5Gzfy#fc?j6R zeowd9x;-@4{L5EzRJifmTQLFxWYaThwpR;Ec~^rU9e4mX?+%!-z!om!He|pc0x!_k z5oR73Gk&>e#Q4=XkJ|Hgh-=055Aeq-^~5w_UvJJ&Yy_@CKN zZ;wAhZ+0sk@*xh@UREeA5O)#<1`ETEnUqiS49)94@QHs|(Glop9$94M{dgYRU1emz zRTc_`VKG^`Ce~j=8yh5lOA0mUEVf1mfh}&fsg&LLtU^Cl*TW26y>*x;aPfZnVXJ=C z!n3vFyw`K+#2jnlfxY4CtCNzss_BJoI4Pieb(NQfp36irSD~0T7&GSnhR*a zIP!lHJ`m5DcVehDiSDpy)mJ%+*pOkH3#c*6iK0j=?OEk>5p<52?a;Uj0?EJJqX zx2sTMXH0dOZo*2{zjA^KO3!Zv6wP+bf9VWb(19N{Mw%NllAfjvL=SEb@Vn*fgNXvx zQMO52KlvAl5e7T6U2l4>cdM-W-yc$oDBkxwTqzL&N9Oot*8%I1%mWdL#;T|zdN&vM zC^v_YZWnDhz8fJ`Em^lxHdQNXQv;nwfl>k`S7hD}xYPvs%v$~Ul+Zh5D52e@LdSj$ ztgta~*e_LdPkDg~RCI?PqFa}NpC?l<%>>*V_lr2Ye4nN46BkdQ63V6hV;%oy=_FA? z);j;zh-CZSj}^{b^ijhBQFG7~n^ucVRp4U1U1F>s(9!;b@~a8%xBQBW=Nkv)nGNnNhh>xxpLB14y56eGbV`iQ!-juw@ZleF5@t z-~aE-8X4WUPq<<@oT%gK9r;CHR+14uI>HK&9qWHQq!TMUd^ikYoHx>x!^xYO0Ik2_ z^bx>I(R+t$f!+l9f9qL4Lt$1=E=f*%hJ#*GK~*`B{060n|7D(xHNXO&C0I*d#3Tbx z1$$FHgO&6Tl@ime?mt{nb9nM&J0Ka(kko>=R}+kn?Ku8dFASHbuNJq+QIh|TQLjR5 z=tU~tFb)R~(kK4`9iHwq0b(OnAXuj-Ry4Q?uo&b>H4QsfAW_A)HQ{ zpS@qQ1-;UK9=eizFo<1FCISMU6AG(lS(^|PSm%Hc@Qs?916{bmUTmC%%l)dniWzY2 z&i&Fzu-b^y8J61&{D-5;nCVwMPM6x$-f`A`>qrBjBfQ&jY1Ml&^Mhggh@MaFO|bnu zMgNLG-K~9E>t8xYhl}ktzLkGMHNTwu95!-rpbVs;6mv+Km`ZSa+K>)+TI_tEkH z%=p;Z)#h2AILLm0dngxGT{O1{cCqsLuQ`it2X9M1@pfXBxYEc#qEJIUO;UZf02;80 z7OkkDDWdyt*CHwElEEU=KXpIe%@K>@(p)dhP+!G-`n;iN+%bk8-5Ssz8w@GvpOJi5 z&(z`8n_ZcdQtUCN+BZ2lmoo4kt?-cLXJ7Kgiquexv@9o&7hgt{!NI-_NW}hlqDWo& z(&ezu_{k%if-EE()HlAv{WWk ze^IaQVLk}fjjhHkl8?o`FBvx;F^`|+0Tq^R4ybDV6VWEQa4foM%FoZD;Y9SV(xzj1 zYdTJ-GJ^^=Y{wCqhT~@o7JX%y_eCsD z!_HL=NXkuM6Zd3b9OcUdInsv`xxPN;s=LD4UeCwQ+XJiz43#;%ETM2i{01x&i-Hr$ zlu4j4Lgj=7HMF-Q)%Pg?ZWj42oR0uKD(Jzoh6r_ABN7CgnkVYxPcQR~RY}bI1P%N0 zF|%H|PtMCS4aM|h2G?Uy0=g_P)-nW`qCyCh->6a8l=>+JHi1h*63|Aw9D+Hu3!@A1 zoiK_%X?_pBoNnD}M?&`)laxS|%98vFF=^Z0nk6g2(<>=vZ^+dnZQ~uei1+^CjmE>& z3WRxnElyuNEWl>ZVU2R}_pRT$_j{L}T*Plyz)^c{>YuGiZF+lE$$LlZeVNC!tK)&* z7QISZF(W%D7LV4cPP{}##S>7C*31r5Gt7gjnPJ$tY=6Ru(0mCaWmO^~BAd=C0hWZO zSdU?s^zHbOi{R#M7wC(a?3~!?0G%qgb#GOcN(z&s&~KsI=KAY;j@`!>q&04IQ%4gb6YNw2eanQPv1z%gNQ#>syWT7<<7z zR`TWY5EGlAxaryB@r~fEwHe#eoV6MD>Q!gI0;o-_nMkc=ag&eakP%R;BS`9IT33yh zQejnt6#$JvYe!mq3zy0a3L*@0w!h$$z+G$`1*^W_E@_3BooHNqo_ihEC_1B|(dG%9 zc2I+)l0A%m3$u^di-?unH7%d}Z2pHFYjwRY3bqCrF8~6u61ZM2IU4nKI_#@RF1u}4 zsENuCMwwiKlb#E z9q7KkRyKC%E!q8-?h6UEyh{=|j&q$Ns`~cjt4=iJ-CfuTL)~5IN9kt+&2Y@Z?sLrt zG3voySHAFlW%jdFsgoV9Zm)(Lh>P0qd&~~blQ)kkO0)*Ut7d~b&7IkHU^{`rKX|Cg zO55%mdnU9jiao@{ygFYmPttt9QlhXUi$~e&rB$WnB4yw#+k%u9T$g(N&fwnkS3^Ax zcO!C@Uaj8N6a;*>hNM|Y3>`#!cNZHTz7OGLtEU-9(tl89*7+-6(+m2vCu4vwVW*GoN$azuo)-Ffj9ePRF0$Ohi2Pew>&;AMqyqjeJL=v@$5P|n#iq9s7n*I_KswuSy_hp0JC(cK+_slk z=|7wNpbP4U)V^LJVq|s$Z)Q*b={%T)v$q;%lvIRzSEx!JWf1_FvkP^LHUedPk!1es zQ2j$N&kaKHmhuJlC00Uz(u`fNBy&KA&(sXgnUC)2;73d2q0KRPpHUBHmNhm{W_$i? z3CDoJQ9QoLx3DwA)N^%mTxT@>i?P!5yj)4dd<$1&W8+4^5leS)itX=N+ulKbDKUS( zTwXch8?3KUrCleXM<=4FC4gfBdVs|Q@ado<1#x&MzOJ z=E5fjOZzvr-9{%I-1ey~{3H}%U}?9@keTI5$gY*X8dIHYXQtyN@qltra80kPoRV2O zSmM+)b?$DG)f?6W4nWQKKa#FHp3U}q>(r&XsI4`s_TKAly(nteUM*UC*B)u9RjYRG zDiJGEGj>{g6eUOrVy8q9goq^X@9FpVcYGetxbJhHb6wZD&a#xQUyhLdQPT(JhD=?u zI6(C5Tk~EKo~hZdL+oQvTZaxib7v-Yv?;duzI6Jywf&0t6&ot^gjP%BlfA$qT~4jB z-AB`bv6?m^1wywU#Do}UjQ6*sNU6-Tj++x^eLELIgBy&KIz03iy9%r$l3iEJtUDkq zXH|CUMVWsa0_}6x(!RqkQ#ALxVPzqi8jamaFEscPB^-NSjx>CDQ2uUZEk~*@`NDZd zhx}ComLIEIRF`Xu9QyKOto_?1i>T^txa!YGQob`d=6p9OauRc-em5d=-+S%*{6Nw& z;~h)QnyoNcN`yL?bhjVQ40N=EH^1aekvweM;#89QPM3sh;?XKj?&)GLDBYS#y~7s0 z{`n=ZGt&NNFw&HuQkTHc2w7Q zWfv9A14R7yO#B~zr-Q9mep1o8^RjO4Df6hPY94X|` zsXdV}u$CG|wwPFPdjaWdcJ0M0Ok++nyfL9N}#YGd)(m>E|%h#z;w8E_qhA=`n9sUeFEf6+_&5xMuhH)F?*?z#q!t2sXVvRmgKmerW9a-w8M+0b0K6Gas)oTpXMxi~(T`Rjr?P{aI3chha_#5-NjGbTVgT9C5U0tuqL!l!tYcgCe~Rx~+zH*)8azCos`qRoD3)GT2Tv6) zD&KR;yl+0`Ek>XK_2B5P!`#HcF@_<+Kvv(ua9Wn}hWq8Iy*_iYCr@|>^HhMJN6ioS zXHqN@nj?bzt7q?vj5w-R4n|IM?y{yuz!*)$q}#WTvuR_C7%!CR%!;?{&kzufg-vvV zF)=B*l!~*-3ksTSZf{uxRXKbB+GXRDRBo>n`TXGGo9r}O>7dF9HsO7qcE^|?eT)!e3=jT=>P@UnSRicGhIp}lb5>s2+wg}%l zIOTr2)tFK001A!RYsk2Ak?!~Fp2N&-Mu)>ARr6%? zBw#83d39CCs?A{-O=+QZ2`&5+r-C28wYh*EP|dd`*gDUUCgL$ zx0@R5%no<$JbFE_>Gy5_X6WV4xv5yiW(D2F9n1!~xJ$%rwW|;rS)4=p84kM^n{cmD zT0#rmEpMB>b=y%wVS+EP3id?E3z>qR5lx+EImWulK+BeZY<|gacIlqmN?T;G-p9vZ z7V}g};}Q;-oD5o7E+%K`HwU%tFQxHH4gv#8yriUx-zDBBDb*L@9A9VuYeW*or z^y&gyq!Mg+8)#d2GmCf>Qj7Vv*Q1Dibk?gB0ad9T<*W^Go5TwQ-4T{IlH6_;fQ6kt z3sLU5ir z&LoYZj9Ss`tC+|1%J14n;n^)`78?u~7WfymlrsFKOP=1RJn4+SeQZqbwObN`W5?&F zDBi18$Ya=@&j09wFG5fF4}iu){{b#z(g*~F{#!s}~(vwhL zUWPdinCg4{55pcY4senm^oCwW(^qg3^f7{r1DV%hhsS4WJl zDf;Ybj$A#_S#+4fs1-Ad_tgo*bcWwZ>uk9W1261G@GN(uOYhjtfmLBfde>R`A7vqX zo=u~c*pMGfzZQO$TE5RrF6rq`6JHj)GZIM>+u3r=aXUDra*Z$GI9 zkjv@Z4Idzjsw#F;%yQQ&pjZQKdYh1y*Rfge(T3(GBmF$)=RT7!U4VT#?l+v4IBJHE z0-Mh=w3x>{O}1={+-U7{MOQRx;M<^EMaI>Z=7c_HM_=n;fq)X*%t2(l633?vuyctf zh@_5M1}A2%jg4)>V2hDzxZ7@+>*=pu8j-Ktm|lD9qO=m4}CW}mq4qtlem9H4UGvYE>AL86|Q?j~oVzykHsTjc1P zJ}^yd*oGj{_r^bpD3h_fh^8RKNs>TAy!sEH*kgI^zHa5o2wvvs=O=Ta{I191d#^re zv!9M@-$-nWQ`HjQI8;+wu7%tcX}q5|S(*T@{Zdgl)9kKi~LK${t2q{6@lJJ^O_e$a(V2{)bKh7Lp~{55up) z_JVM|HYg3{lX=#be1oxdXlO^6!+<$QF85o%rosI#aJ3=Q=jV}sEn0G@{@36}GpEwG z;6JM~#~H!;!EKly(CsCWkHQ6B7ADi;>BXV7;(@{)HLcHIc4qMC4*q1}4$0_coq$cu zj+Vvcirh&KFV8pwAT91)*fo`~m0I$x5rur2Z!CQorpCr#3oL}M#0*~gv!ztT-}V$~ z|3syxMMsRaWte$S;_1)j%*^C35B$ar=^&cjEdZVw6;D(ZdLi7yFi~y_EA0UaKj1#pAz1x9#%r>mj_Je`` z4^v-83`1AbUZz7ofWO~X7CTz-KPMKVs6w#+ATe2pOhWygbi&c*q!WO)0H)7z?_UXI z|0EkKQ@{ednB(8?@z$}~rfPTBaQwOV_QQWJ?}=(8A7d4F-trqnjm!g`nlKcXnL@Y@ z_}($<^(hUsVaD*&Kb^TiiJAu=|skv7{(A6pjzi6GC9^fGi{>HlH+n`Z2iJuKC-qfhd%nQ0ufh8jV|;C zjtqc5z!tFu=)8yyJF=z#FbHhaP>)btR<1C2>_#Czq|Bs0Phfc_F*Nee#q(tX0wopx zr6zYwAd1?PzeifG$?^_Y>%A^r*iyfD?v9QAD-OAn+lFqT$2ux=5O_LeFr}hR#IGx6LIMwIqOIR<0jCFV{d5i&N2%t_CE6B{4S+x0Tj{B<0txqVx)Pan&w6(XZRVYZ_4&1rd+G6N0iviZ z-`tkbO}$IOZ2j4Hm$x813BUJktg@E&Z?u3-0v^hrtt(a<#7~`F)r}reWIgqmI&P?8 zA2cr>wNoKB(7K~8%gJo*;^}A307y7c27NXpy9sYc+B3`hKJhqiGqEIk1iox&l^6^T zVW;X*1_ao@^|}ctLfr@K$4pb!X18_10DioFvj--sX+rRtv+BXk&XPLtG~4HDJm1+O z!pie2(qHoo@-IxGMeYnsedXk_`S8?M%&K#&RZ&QZ(4|Bub2l!L2^-Zy^k9r~*vi+& zgxnN8o7-sz){%o_+)OH$I4lYBAL@2Ropj1yw@zXG#L|_dy;7GV9v3fgDbjN)a-jIb zZpMUsylRlu{kSU!k(-Y`I8ca>m#P!`-g(*Wru9~M_Wi!1_MQ1iGs&%1rZfWvK9 zlU}dYi?e~DrIufdh2417y{1-e?J>Oy0}`D>@!nUl?=x3tR<^A=!6qNp3{<^~Q}CQL zY!&7GfC^{Y%5%M5r`0THOk?(LdB+LjEs?lLZCn;lI$^dhPG3zs=P{of7h(MBp3hfY z%WKg+=$FE1PvUhCuqzgx_s`w=pD>OhzgFS2oMJ}q-p@1EF->20Yftvpk=tEL<*4ud z1|PjTPJp7*={Wcp1f)grTS|~)m$)eD0?<|5rm(B}ibQ>?-wK2Ma@3COy35Z@-B9+X z@#E76SF=7flR=Cju}|S*_Z4)rj&wbAy{WQZ{oUi+$GZ9*0&E}4+y(i_Aafj=#!l4M zCYaTMT`nz14+b#wx$y-{KFjDA@fZ6u|0r$4_sK=6!rSBF7F*LETD6K>9gvf#%ZZ~d ze?=!026eoOns#nVX& z-X9$37T5>H@u8X{8MQjPkxlwybF)_KEQeyR8j+4}E)wUx+3x9ZX=-VjJDwv&80h5o zkAQXE=iy&FT3YP9@y>x~L_yKNn;0k|DDnHMoArS!DQbIt@DylBjJ1v|)TQtItKggU zb=v{5yWsE}m6kktdRJCVm}So~y?A`#fMbH4jYQ7Ocrk-#v0kXR=J(<2-0PYrl3oTJg>O(NCT_M7mjo@?K&Qwu>au1wc1I}D$J@jihxC` z!wwW(hx;GTGy+zX>HDZ8HTv!O*Tg08@)<95%m1#lCfijXuh;KBeO;(p3SX`+Om?|= z!P2O|2eMleVX+8!!>BKlZ+qu&L?fGl25sw;{W-*>Pf9FBUa*Q)zuj#TJk;IRn!W!` zG(TczIp**ZFY5$d`XBS}=Eq{SZ!5AF3UmcU(cYs3hfO2s_m19=UlzVH<%mRXv`+)F7dx3BSu4Jk{%UVd)5bSWn?*F;v-X*f zjSQqJ_d?}p6Pnzrn4H1JgdZYIT)L@5{wd5gsskV_M1rnSgy~b7&$zG73+a`kdv7+c z)|9`M9QMpitN&wgA2x4iGj2?|)?3ueweDOwbvz7n6A!vxjkE%xyHqfk9J{zc0@r*K zDEKB$NAD|2dy&$j{+h;4y8CZTFYfKoaFyy$Kg+qE4bdGu@ApIgXw8LQ4gr;L)WZIN zq4xG}m-*f#z%QaLGOFXA^~3jaD?QS!8?!W_^2CK$Dgdn4B9V%Y-!oiz12Eu zP}fiZcRTPIB6e^}@)*a?(_Qqx8T!XB|AdzX68Lw>Dt1s%%i53(RNjNeJKfJiJ%$tq z3=N~Y5mfK_iJYZF1YlEYr?g$IsWlJq_|S@Y(9*!VxWqTUTUNA{pbFn_r7rpzGmnZhAHl{!w=&Oew zYR(U?3E>!!vj&n>D7Q><(5Z$^S zrPF7{scQzdPmaWl>V*PSQhd?JA7-Y35BCIu=P^L@{NS?QQSS4G&bE+^U^u)eJp%E0 zBth@rbBcV0bV`RL?hnUzib6~x0eJA|VPv*}_rJ|y;_6$cB~vat!TakZ?&bL2G)Da! zU$-ZEXYVV;7glF-nwln^8Bl(<;Wl*xS_3JAI9tY;YjDxwT>tq~}g``!? z|Ej7+$T&IDGkZ63%*B;A<)70Hs;s4v^k^feGLI$qpsIVEnUa7&W|7eQoJDhl5q%yNqlvu z9iAE?xQ{k${nYfE`@Wx?%eg9k8zh=(8+rHWe%>6NgwO!z^M)7PYEg?83H&2puYDoyzL>TKVDF!?-G0yBd6@f>eQ7IV#?RYo zsS1p!e6jVTb;fr1-M^ zW!hRc;fGuv-|vLqi7py9o*(9RSn9xu-HJ3KyO0Aooi2@7tV`zZQ6erPO_C?`-$f z+I=FL6$UM@32^btvT;-Sy*3|o@b5QL`X_=0i$k9w=&vw$9P+a4)Ul`}YU{Bu@!47<%sZ;a|29f%ajk&q?1sg>X8%4EjnZ+iR60b1<6GH%* zq@-OKzz>7*EEng6_?4nTtQvic@A}+`@4TduoN;7Z=-?j9X5Qv5(WE zPn@uxmvQ6Y7?ZfXJ(D972JAtv(O>oLZtZ-cR^H zTdR+|{`gbzjc>*%^3b*yC^$XRkBAGp>@8HM7cz6y1HI`=*y=_(=Xxw|gx>`q7 zOI11<3&$d_4_W}nJj&@S*?%-(6e{L<)D;vGhz#KT9O@kHoWdzrlE-EiRnrmo<6_W} znzxfyVC0T!GyDjSA`|hYLm8&+L0d2^HS~DrZ2|WUQoJ2pU-A)v68MaII*|#LsNi75quAS?oWPb+gfL#-ZBqjg*J`KJR3N zsV4eQIiD;I>`tv-|Kr3cW%u1gQFOoeW=iw)S@--p~*foIz3>_psggQa&fb{?yfgOJ^eQDG4 z&`7!P&aGF8CqrwLd{cjY=>JkCw0`!wdG?2e5uJ77=!LXbRKWp%-2-0g2%%-_L_L``+12VvV-hfg@1-=`g- zM*OpP{&)Gqo*--0$eSpG1{>d6Md3Kb2RB=H6jdYD*gP4GC!aLrY{1(0JUkkYr zI>dTGjrt!Q*s%-D$y=>0Rp@TEQC-_Eo!#x_qg|9^1A^N)QC+O$j<1E?MZTxWmb-(M zhYtX=1VHgZ0Y5dMz=Qs3mMU~TX76VfN~SuTx@W9EgQkKR*QQeu*1O4gF7qyte=DcW zJCH5OA0xF`H17O>`**%$^lIe-?(dImti9_gkbeTmkIb?6_~ayz(m9}3iUO;@SUwsz zm*-gf#DafN%*X*aN~Bq^HGV++@8vgZ-N~@G2W-etFk_E!j>(!mN0uAeG?ABB1y(XQ zz@cU19zW3meja*QeSoLhkST$VAqDHnW!a8TJX$skfh(RKK*#6>I)GfRcma)*L36*r9K_(yNohPj_Yas;;X1cRiwvh@#Gh> zYunx18#x9BXyWSso1!vgXB&U6SMirF{;W9YaCl0~Qf)u+-$)z`==gDhKkk_$zp)7d%> zrt#;SvHheV4J1v-J??996KjrXO&Pu}l=gX0x$(IHF233 zs(a5OxD0m)SW2sN5nGRSr0T3<8l@^lF&y7G)l0ArpQnP;q}6L37fe7X;>qVvJl)?X z8@aQ*1!7{pW8nrB?GJYP%>o2uY~T3E`YT!_Kf33Y=6b5;dEhVo-b}Z4%RI%}dn&0t z(!1GVHcn1gRMf!-XG*pPs;9RRZUq4CdR?ZA*EGAtY`-IgE7;|-j>)tmdz=Bf3_Y$y zE16XEcHD~f2Ye^ zQ-bcaT|Yd3H*}2rm6OT40|B&1#+Z+QNrM}AasJ=6_*(FAP{(Ej z2sT90<>|fCG;(&ip7(!GI zNhTh)*4*3w42}-|Xl$@3Lhds48QUT+Q46sozg2Y(SED(7um{_068}Jby*Kmf<``o7 zUy^{3ZX=zcItp1{^Gd?M->QGue`yvINCMfZ)TS1xm`h1ym;|?@;M<70QKI9(k?g=m zPbU2H@Dja3@@)Wc7ba zw{Sf%v?n=`WpB2-j6PSl@U$YQ9SszumW1k6$JG^f%!JRh-l%NGo!AS?5>6c(bhp1h z)%N~95YnYwlY?cSNhu-9m3Pa)HfkfAn6K z1CUVEk6o4D^E!mD`TSTQc^t#2`6Ass6xkWamWF?4o1(q(M7wGvtJ71Xi6-yfo03}& z=lbWgXC89wU1h>QrntFHaI4|pB9?sgweK2OMQVpkTiZoQ0m7c2v|yi3*=p@7dslxq zax&`J!q97DehY^UNbM8;PobRrGgI+I`e9ii?93y5`FF36|;WnQIsqC?%|Y4;M8VYp$}9yMJ`z zo4u{21B`cRIx*XT0V@h}>Nomu00ka37u1B*xQhyaQ8pA9nf94BfoP=1->!(ToQmQn zbt8L%GL$lx0*?neDHHO4wU zWpiRLAmJFBP$**gcyiSJmD>+3KW}#BmU;XyY9aD%>(pZsU8qygJ^ztb5qg&8w_{Nd z-C>z@u$gdOr0DN15p#mjXgz<5^Q9FLqtOA~=r$jN-*pMYhhokFJwg^QX#dfX7|9g0 z$`e1aq6(XKn*_?Syul|v)6FsN7~b854>!Cfcr)MIyr>!F=kEMr>ZLFmRYcSNQNkGk zTESfYO^W`HuJ1ls7FyHeE%u?I-_6UzQ);7`l|!gXIC)KMY`)t;Zd{_3%^zZ-Gu*|~ z9CoBv^=HM^;HybRQHxhyRg^>U1Z24w5$Um}&JIYPxZVeIV&Y|s+;~!$mu%i#z0~RV zB&bG=h3~_iJmc)a?x=$ILa5SQs(lNQUyvUZhwo5Vev3R(5##GaR@oP^VDfL1+GRJk zsKKnkkl)+pjn;OR#q-Xu^Leuu>RMlQ`3)!~|3?=a87GzOVR~%Z(cV%5WEGnc{ffG> zOqLOP4$`ZPTp_$hB(u6j_j!h_TrS30Cq0i=y^bbh<~#asGE^t_Zdw$-(<3EmDARM&cSs2C`hb|`0GG4+^#uNYiliiiShltXU;FuQBm=P>^iJ{aIAhgd0_ls!wS%XiJt8!*XOlFnt`k2&nW zmihZ&5LF!B=_zr%QAwSFcI26-C?i~HHXc}D-VG6Uqu0%m;4U@HKT!36;kY24KRwCi z#33%6n{dkE{Yntwq~kyMw}s`DL_FPYrZ2ZJ#8J}8jAueozpn2?2JTvgd?X-Nt`VfI z`zsgn_%c+ln>gffnmsf)|LjWYa_T?l+RuCZ9;% zOP5bV&V_y%bTIiu)vjyPk~&KMrLw^k_!L#7dFGT{V)ed;tqIE}surSV5y>|@iml%( z**8>Ats=x9NA7pR!_uc!^p=;GE)zJ4oxS{ImlD1*D8IQndF zsrS_p+Bc27=hCzapVvW0iiEJ(ySrE1^jIoC+S(m8JMr8@?@@2Ey@RKe>`54eeg~2t zIeL~KSTZ)Q!|y{|4sZ?uBSSPY+uJ7rDq@J{2*@y)LI$l!1cJTz{g7Ns0-I};%Iw=k zPT86*fh65uANvEGDz;jHSgd(X1UQ3|o$1Cc4;{usv)zAhcO!2LC@#4nbVf!NMQWk5 zsNisd-;Gi|Zk8T7+fPBW^ZilbG<%Rcz?w=1TH%}jqx-mDQ#Xw7eCS(n?083iT`aid z_{Gb7s&q7VG+oKO@fZmDQx9I}=vzQ1Jowptum@)ob8o(7njGXh>D(QPm`hxFQL!g+ zVfyVd8~H@n-y$dB1O`R{Yk_K*K@$yOn=ot7#x~S%TdfN~3lfS9W7@p{q zu2Ea0;jakmBb^A>trIL?tni2HD%lvMO~AGzFWXovO@&p|&YU0&)eX0z1ZdM

MJS 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/{L(8*^vvR=3s+t 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%0DkQNyTf3(ZD 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

xVrb)RJb5-*2cKdP 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 z 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 yQOL5=&#wat43#Fp8_{gkQ*`DBR5*ORU! zTdzQ>$suQ5#MoMsU+Zr%^D^Mek&umEBa0%_E&`B&BuY8QkF3;ceI3KQX&Uu@Tupp` zNtYAP9bRWxr0`kDD+rcL3Kq-ZuPaieNN*mgz{*2KqCCuBM=`&!{mlD7)w_cCLpN6z z$^V%B+4t<5&aa1-=5sDePAoYX^3*86zG1NBID}0HeB$DHL4m-&p>BqIIbd_=tRtJw zjZJy2;78m0753>2JsF4gY*?CKjLLaKe)EO23K67=eem-1!0L%v zCfI=5^zsp?wB0ES7(nyNWfpnL|CIGKXh}JwKw-8%6jon>14A%8Q_Yy)n;PrSqk~ND z5RV}V&9Tn<{pH2@7wA$#R$09_1KB$vS|MJNv>WsUroL#j?01)OO@Ww#@&d|Nus*om zi}zTpj9V+KlFxY@v3NX6Ex?nK73$v0xl`lc2WWg-cMU?^HM&8T$KCes)H({EU{=f_ zoSj~S=p!N*(lD7m*BDoix`%Wv0JOQD+GLcqbgfF$zyyX)!6$t0{7dyn_M9B?hDTN( zkS3H}vlu!=;^{|WSK-spQ|?p=niuCQl&sgQ_|Cg+5#A6{Q$?WBFc;D1E&_sZwv`A4#_D zQKAmfxE%>3Ou9;C#ynx*smx2oz3Am=viKW`=9(f}Fe@l}4x47spi3Y@;E8tj z77K#Qdx7m&yx1_?f=$)4X-~{H-!x2<*$KpFu~gIO$ah#SS_?90BliA0beS6kk)LD+ z6>&a6!C{#7Lkx?#l8ucgo51;n>mh23r=yzpMz*5ZE$ZLG{*IEkEOR(iq$X3uhdAOT z2`1AHjYD4>4c5%2f4t^nUFY-oeRzo{kG6a(;4jrbWyRnv+sVbTDZR9^o zoY6mhOE}pC1>r+xgk8eeIXT*cF0T1Svo}c%6idZ*UmqQ)Q~@%(cZ}PnWV9xOo(Z(x$}zQjK!4UQkw_3Erc>;YBY= zzP}@4DKbyMa@g^v`5%LKf=#`2Hrdm;lTk6e>bI;6d${3Pt}$;;+5QG{)26sk9~w04 z3RC2Pu zsGKx)Yy0~?yK=}fRb)(XSXls>Sz-;w@@4P7)2}jZr)K2-rAVaY6*~6NgHGzVHtDc% zjA3bS<`7oa$6W&hQ$~W0mvv?Ot}a`+UmOn< zHy;TPqLDxe1XNDqfgT4XR;>HYx$=o!q7_OK=llomFk37q#6LKPlv@s5V{;9RT$1&kxw`C@()QJ1x^6kcP4( zDI~3?scT;S-hM;$>32fpb;@+u2-4iQgim--2FO$P0QU>pp|BeVbC&P=d_Okd6!Xbv zv-g2@A?6YDxZH*tpX7#mC1{t^SNsWXR>s1C6*H%~41Rto+0BM})rB4>;WRYAIB=Wu zM{q8$gm^tPg(Lkz;j)$8CdoA71m^rJ;sVvDXmi$1lXR}eFkG3MfPPKF2mr$VQmuCg zJ0!}EgI5K|co>_~#-C|e7KiGLb*dp~4+$n789%yfDJg>$Zw?Nn-7BfkaqYsCPwc}k z3mjMs93*^g6>#wGB~4HF2Y#Khd2J!iGwgBlX%J#Ij&hu%P-9n7V)oUPwi1T0@lrbw zagA5zgns%m+j)K3S3aK9x(`vz>Fd&btRgDQVPTC$${L5s#m#=!pRQ+&DtzzZ;M|!; z;*JWQ4E?(cz5|Nc_b8b7{2ytFP-UGg1c=5QBLl2#vmC{|4z&8FbhN_q(ZCR?-H4qMdi~$h2==}{qdhy#lly)cY^j4meo4WK3BsS9cyoK zzb_9)om2dR!LxlLZ5KVbMC%L@Lw-G=Jx;RFReIB_XUM`R1pU-4cLX zUkO${-8(iu9a$(?(Nd=NDtL)yv#W`%i!B(Gx!MKEZ}K~;V5MhT>r~ZC$wtiiC3K63 zkgReXyfrWYpfTv8XF^OvX<<8}E* z>El3N33oW$S!?>G?TK)#Pf$ZJ1dcy8E9xlQ`2EJ*c1F@{s%e(6c+N;}bW&Q;8Q~O@?yHD+aKq}Jb2-$sfmwEv;%m2Ygrk}HyQJH+K z5X3mO0B?B0(Ro=b$!i#x$Ga>|NJ?)lwoqJv#RdZ5H-Ad1%N5gGl7m@bIPClSm zR~HBr&$BzQH{d6~rO47bI@=jwYp=Yaem&m7eWSicaXQvB3H?Li8H+=|$_8@buq(9@F(Y;?Z7t}2a_!w*b@X;+cpGur$lXL4 zJIny1$Ct1;1-_L}m^CL1OZ*b7tMf3WJlyE1;=|z|*Lt{SLfWNv$;!k+0VMR$kI?UY zC)Z?1Dxx}PWqBI7aI4HDrymc?ZB63RsgtQ=EMhtvHB1U{(Vx0f1?pTko@KA7)u_|v z$?fWbniwO84l`5MSWhtfZ-BgZr95JWIVOI#_65y`->%fy*yC$63GtL+ij_}pqnlaZ zK_JrMW}f{MsB>`hLw3ZH)?L-#B9m74`7ha8WV1crr<-c<-OF-2{>mnt`YJuG(bl%C zHYmj=AXTAwa3vW7eX>gO&uU7(-AKjnDNDcXFj9z<7Djo?}D14fcbrJ+K{gKQ$gb>zV%Qg*}||}Q})4vA#+l-qa#+okGoT8 zZnKEY*EmIg3rwcqgX4hHyT4l$EtV@}KftN913(|>Aq%=A!Tjsai%NSo+epRN}0f z#On#e!FyJZaj7G@eD=y9S}g#llX+pw!m$bEzr*Wr&bwwnolV|wQV-E+9>wmHN zDp$l*%ZL(!hjrd>; zvWzoO*L>Ac+JRtzJ#eA_9V-pgykgL`(igT`&gbq+^8phB`%7h#75T&DN?jo($A=7O zs+ZcraUit`khP-w`cERFC!}{<$Hy*Ivh|1)hZ!9Y5JR_$X{T4v_E4oV_@lq)}?%JijmUX5E?G0x^xaK8zz7w8{RSc$}zl(_U`M zFq+|EE2lh9#Kf}?Mng>FIYl`W>nJPkgUYRmpK~iY-gk ztgX2>y<`3v+tKgpF#FI@_D7o4rvT!b`6%R%k{#Gj?>u#rP?wVT+cxr{2e{Jk1GtUu{`m;az~wQGB; z{FPzByTkfYK0Dtgs6mKz6%2zIJ0!@xuIP<>X*2ZFO7yHheSEbw38As2ON&CBqK=L1 zr2Ds1fS~k-HuD=R5w&?$KT#L2CCk_BMq=eDZ9;EDveP-dX_SsnI{by1axXWTPQ+`? zQQT@b!Q;V5X-V~IspbFjlaX!Rif(b4WYE$w_^s)Q&jesC4s(cEc_m_1S&wprwaD*4 zHLI(VHH=0K%T|qB^y_*Q)c{u+I@F(NOJ4?|1Y_?d_fw z@|qC{CR~0mF2Lq&p3kz!2aXB-_O!;d=2x$HZ}x@Wco}T>kP-mPMT#UfX2Cap-guTX zH9~pDyjzb|>w7=#mrrJ^5B*B7jQN`N_6#)qu$@+(ek`S%E`acZUc}gr1tX$!!}D-X z0-GM4IIS;P|2zGn*YLTqhYLfmL4QTvx5qjIkBMi6J5r|>?GS8 z5}zkKg;Y{dz}HC`FP-MR)R$bpM@oa;)nc3_jmoUp&0IMy`-4gd7d8V=2fEd{P^s3J z=;~5qA^)5sd^C#PFz&0Gi<_wT)+xULbyAnm5Ho%HkKOTE0<49M;r*M(5RA9xSCI#x*+y|}hPm`+8GB^~x zFshi@;H_YHiZb5Sp*crc^6g|u_170sYRR!??L0A;dwh7}eb@Qx9MB&i-tYCX;QYng z4lt+AZk>$}vy41#^)>G$$3@h}YTjLrJ!wi3xC6?7?;V>Q>doj0ehDq<8JC#~8dFS-BMt^J^MURW;~;e?xCsfD<==;X1KTJSCub||7MH4mou zp(^V`D#H6V1n19-_+_Jj;^XkOsAjt}{qWC^2+?18y-Uc&!iLPIpl*b3ru8w&zv9!; z;H`GqCD&(-pts!??RUs5r;p|iF4cX}td4$xpQ#jmP+9Az5*DpoyzMT0FOxen=WK*JQgJV|AxH@aK5U7ZWqL$S ze4?@VkZV$<8Qj%lxw~~Bmm%!5Odx<|lA!s?j`gpyYpIN=;xDzzId4OTa0i$tf%i;g z^mUZtK}m(i*%7CM|CH7KrK)y`y5gMk>1f<3KO3(b4;#_}%n5<^SgYPB{(4BmH(d-? zC4fnv@w&dU5mFpOm~Q*=D}tcJ!FJ`Ydu2zMAV5lGe;g#;7gw8|S`4}<+W+#^0pExzkb$rKdQq~qQ8pvwjHwnRL zpbHbUC6Rrq<wMJdY?J`DdHF6vpx?OM^Ws( zZizqV)gY}bmazLh%6}o(_yS&re(01Bn_n>9iN(?0K~-89k<0oC$CxEf1_{CUhO|imYaJ0 zT(5Cpn%UzwHq)2jMlcc$G`=W@_p*dqf|v^~mlB_@^Cq8nmiBftRwIzPc&ir6A7d{) zW&UWiUR9Rn18>5R6&)pkS@{upjEm2Lf=$Sy?&;j3wVT27pDWHFeLgvXdLzzdCEhiq zgZzk$OPw4xg-SLHWVud%lVL47P5lV}ttJSMufV{-jS{q_0$}{oPRz5^SkjmtL}Ci2 zx_r_9Tvq)mmMza7!#X9u&U}*EX_x%M^~UB{a+#0-NgQ*C@0D|?EEFwpqH+-J6J|l_*H$kowLh?tC#<7m(3^)(e@ZX!2&>H{G#8zb!0a5s(!wy_ z5LF+c5tszdnEcIae`>ymzFaW4&S){D>yZ=+%?S}cD>CJiKL0a$HgeGG0EYtzl=RhgW++MzG3|FJy`PY-j^Cy`pYmz1_&KVemyQd3(+%mne%dmea_;h#d| z9nBGAM8nhU{7obyF#xtmx}W-%xYSDhd%F0V1PvEs;5l0EtbsLOW*w1?vmGZeGC*#I zF`a5he|&x#E)bT)zq?Q`RwiEB;B05nb&MBfq0>vC{>t;=_j2f;mf0Qv5-q$~HkMum zOm>4~c=no+IZg7Co0m~yS_IPE5irUWGtPg=tMzq8$bBjsl8DSvTjliKlJG}2(V1}# zmSsi&=ROB})SKv6mrMZYSQuqTAvwi0|BY=X-(`NicakD2SL_P57!ghGgNGVwv#$&1 zlu{7DHW|SNSH`F(O}q8y1D?+-Bs3&Xva%{2HXe|rcV))u^~{>h$pZVbU*eNxqbvRw ze8Te#I2E$_)ZH?ith-vx4Ar~OXYXA*g6hNOxj*>*N-LfcRMsaBZRuX{HI~0g-*scW zXsKy!`V3-+8lE;}+34-%{j{j6E9&Dtgn$K0&WGk|>COUwI?=Vml5zko1OWn8y1 z_C7Hq1-IoT(#?4=7{D8SM#41qJtma(~$sx4!onYV-0XjX!j@QBX?Uk zsasoi>p0v%DVTddeigkB+8BKqmNKg#OM+k@<$PRcbEaDkkrQp>YR)40u4DQryw?=- zq`cjvBg)sr7Juk&RYY8mm6#1zR`%$^<;>XH!L%W8B*8daM<&4-2FGpj(?0u7r9(vp z)-v(1wt{CR6l-XXB>e|^jgOA2czx%fP8eIgr?7H(krA4IV=6(znb`5>&`egV-%cLV z5wj=6?Ze$3;0d6LYyPHh1Z1*voA>qG*bL6ZnUxc;wA?wRQg$41|A(d=tVT}e5@5l{F%>3I&K;`Tu8=tD2=tJX9Dx8J) zUJR+;y`Fy;gH@BzP`u#cq&YR%HT1KKpzSQHh{-Q{?jTFlP zfYrXd`6mYKji26erl=8+t5u8&#!iegkzhgI#P4)3Dxuca+edE+*9l~m(8d~I*D%X! zx5WGJT~5TYa6?Ze}BKMSY<)=`Gu>)Orh#Myj+bSMIX;$-=wseir3}xi+m7SfJBRR z^=f^=Mt<3X_xC*S)~SFaZcQgtn^9hKt;Qo0jXlZ_%HO-F-hKN3&+x9^4!(J0R%oVq z0zR>YY zWyaTCYYg^}u3{Xgs{ms_a4fD144@FJK0Z z=nnR!rM;cRwn2MvF2G39YKrZNvPH@aBn*4=eBqSj*g6Wnn&uV+Ve0AfZ3gYZiER8? z>u0vj8m)5y@xCO%sJ%j|6^EYbwHi+Bi@3?J3oovz84T%m2Xm}Vq^W?nL3*wihz2kL zx;s7nT|!vvWrY0E)fk<`-OS_*%>3W{|0^9{Zq3B&cxSZ4{j&bi19?2?5O1Ql%APmo zmm6FU%w{nFDASS!tUDhrXF1pHpbqxLwkH0B%fY?G8-L|+&>Y5%vu5N+o?~>L8#jKR z07$-JATC2c@aNT;2WNEN<64nn2sY?$;gRcvY07h!)C%8A4C(}lB8Gsy6<{Z?tg5S% z{Z7OFKYiBqB5nDA+9TwONl<(G&S0?B`*)~EqjMLt0E=0*egmaQE3W-_P{+GKxzZg{PfN?K2aZ6a%&?xcwy(W4 zrA3SwE$HEKmFpJ4+GNVa`l$fs7Ftse*$ys48{sTV`+iPc!k=|%(}*YhTIZ9HR%p1u6?=Q*&$fa^#+SrW6R z|Mh3sNp7@p9j*0WWj-8p);*sM~H0_z) z_4oQqMNc#xnwoQ(|4KgVl|bsZwlT88y*yC_G?}|lb8y<*L_nTxMnavIbsb=Z@<*SF zHGyF^nQmaU{3x1+NUmkw@@S)(oS#M1LW=IXdXd*-{kZ~0?l0g|3_`2Na(yYDBufYT z5aByw9jQL|>iuOb>#*}eg%XDcn&|d^OO`TBg)CJf{%h@QQ*xs0qdxjC=||w5v}x*V%|;_AcLs$12;jQ?jHH92K1N7~eEG$D(_N?7xfe1Xxi}sz4`LC2 zJ`uUrB*}tjim>x>Co<-7d zs&fO?PBwmXlQY#1Y=}J#7iVyLKm*nCAFJZugC(d&9)S~)X#xy%WJlCmk&LZii0YiL zuGZ&&-KIAtB%{8+Sh_F+FxFC-#uN9EXWPJWklA2NZY+251Z3b=PO?H;DAX#+FJQdd zVfe;sY)n^XYNvkyxrsPqW4H+f#em}4fM)fN5~N~q7JA+MOy$AjVrzkob_Qxue}7oI z$)L{rpYsB95Er(y**+EwXWZ-7yF=%N2Zs>BXHLoSrrpWjVbB$nXu7K-=euH{mK*QnS6m9yMJ;4~0>5F%7&(7!xu#|` zzj1$zC5jv;m&PBjwplBGQ~08C%$V`>{^hG-9RY#t$0-}*&A2=y+P)#c#6>%QlEY_0DPeDCO;0kj_3Ti%Qs0b&Yuey&x$507k43b zCbq?CsM_!L(u55=4Jnl$b5Wg-tHX9Z$o4hweTFdHz! zJX`91@WotR`-kp|a~Na~1y8q;thrr!_idomfy)Aac%J=Dg}iSP)e2^y;0dS!{s?d!G@-5D48I@N$uDd8KzDia% z)zBZRewP`1q62H+{8$>1FK_7t!sa+}s(OE<;Ahi{-oZ(mGEb}byd$cnIyIH4xs~_R z37fMjmB8j7aKz?xQ07lXKlC$WcHTC_P!gSs5)n7^@ZMk>XkZH7cOd1H^Q*)T4~{sR zme*Gva{6=Y%{517(x=>A0;dhfz^?gvH*J{Wr^(bCX(|<08Z2|KZ7cQ`do9?|U{FNm z*Lh68WouF>1QWR}y^J~@@N8&1%q{*bpQ6O3`cI@J@B2*ZbThgK%ZEn;?gsDeDQN*Z zElO5X$i)TIee9&b@{t)T$o-39HtbF3f}&eAl3e6&g(I+P1WbW71!SaQLu#HPbHvW= z_s}F)WgXuZ0s$2zNJ%5~H?d`KPxCb(zAAC%y!e=5 zU0!}&0Id`_Cm>cB+1`hV*ul(eSCgA9o3oh=E|u@vZ#rkt*Fz(S8Y(2QlBkfHzMg`Umd4tm=EQ zx21b--m>xA4&Jze+w$eg4wPZm{MK%CV$DSgjK{1*6S*#yiT%uf=+Zz&_LB}s ziD1u|6XQZx_>#*VMfeSeNAl85`u{RYY268(I6zojVQQtKjyS%z`ng?4+TpAk{kzl= z29?_33C|7tSw1Fubdp;Y+=OH_IJ&GEaYc|6fxcfZ`dHKsg7jM5pZ?*Wx-s++Dn<>QOL)h{5zH|1H?gz6-mMbfN99ZgehJRLI z^#>Z!`UUw)G+`}6n|VBGzH+@cz2{+=;P9o7~l2+qKF)X7Of`3RUdKo?5ccNA`@ zUSGEW+ucQqK8j95{CTa1I4}Ag7j+Cf&{xhEZ1kQ~)@GqyFb7|beHyhGzsy~WUah*i zvwh5$#Y)0eeLZB5pDCgRRlF67PC6)wyoM}8uI@MUJj)b#@0MQStQQfF(*~8>M~KB+ z(PvPHijS`b9B&k`#urVrFGz6Kal8P*`g3&pLZOlKaZm%P>mb7{{b(Fjk0wx(R=0uE zk4ulrELiR+Z~Uk%Y4uz5?ZV?qsyOruFC9u*h$h6>41Em#rz|_yw`|^|DuV51`(?iD z>7HclwGjk9Zk@&_UvI~%Q%xTAJ3yX)dk>y^=JTP31M|vW)+Qbn6@6_RlVXy`{?daw zV=RY#{xYCl*-_c0FEz=di-XO%Yac#r&;o_ehD(pAv5;+EoxQUcovg#X-X)D|p6uss z2sFb1!4~qFT+9;W$@xr0?h9Rb`oT*7i1Z+WMz755blu!$8hzt!8^x==%=nr29PV8l z2lKIxYdj*nQ=35fIAIHwBvkJ{QaY$;wePk1F8+{3@)4e2X+7TK!ycK7RA}NfSzNYe zV(ukx{zj}l;-|c=07U2!odD~yGIFTF;rdh`s1#v|lo<}<;GXs{?#}R>_7~3wGHt)I zq%u9?NHD_Wq{iedoKn4Y8mtCZ_{aMuXbpRPkG=24*NqSS^VJ!vtPl)aXV>#8-`x-1 z1Amv~9Xb7ZO*ZYx`ulwQ?8i!M7kH@_RzfdLDJuZE5dZzsD@M|6|Iti-)mT=H%ZVV`5jgj zlhS!m2kXXWYScQ-Hhm5GQ8&Z^vl`!cDAfBO;zy`Ga5Li#&<#~mcCohOJlc9PJ2=tR z7h8%g67=DcdHt;;0l^i3uw=f?mo3_!U= z;x_|ymSvgtvyF|}ht>`Mt$t6~ z&D6c(#~qF>G4_hkodJIi1o-i-(;w~9n}Pz&C&c=UCs`p%(zd)BPWik)W%bvdHlOg6 zjq2#WG;6dH%Rk^Br$8%5Dgx3=N<$J^(*C3RTPb+))Q$S&gzOFf`x-16PRz5X!t~P} zO@=Y4(E-!|=Rf~MaI92TNTY^pd%tL@;(svCy=IWTp$iA6PJ=ra9}U<#3JO0DJ0~;a z)e`G(SAKl59a*;f4JzZ&XsNEcpFoKX==H3EK#Bd2B_G5*-!QFUM9+7s(thtAssK$? zuaYPJ4o9zN8>7=9|9gGJv%P2)2+x;7%z6w;XH5=irFTzpZcn&#p7EqU?nqyM(*k*F zL~^Kd%v2fxbkW7Z2)`ZUzf^%`^%Po#-+D^crN)qw^eOCY2&(R zl$Pp*jiNM*Zkz-uawA;DSzK9IB$MxP4KYo4SWFykAZ77>l|9VuKY2v{?Vt9zS7}|r z4l>>gH~T@(!S!JTA& zI52NZ@xHp4IC6dGt~Jc|LImSn7tiOh&4pO`A(|NI&~*Qsf<>d6=z70EAWWN*^r)y< z-&tqN3^AQeE%~i>&Ym5T1sS@`VI;JMv(~gYc%OkZ*dE}1YRYWevf{!fgR&25a5#Zv3NS+a39iG!v>EW5LxzmOiwaVCF^^MnaXKvbx|#mV%_Qy=p^Y zF16Gw<>swGjCi*u8x#AzJd-iI`Fu^QPCB`x*NKk3QBUMHT|nV6L4y2%PNJ6b!Ve(7 z&7As8TziV9r#cZ#bQez!(auJy3=cSB-eL#*H?zc{n6JVYkO146q{00`J6LBpTf@L&*>zLv54uPc>(j)tzDv#7(#QqS6^LI0zJ=N4TU zL+k#Wnx=^}M@}E8&z#inLx)?p4=x-XyV@V8h0Q=R_}ioTG7WexsnMsMNeCGV82^F2-Ta)C0dsQ1hd1x!+|Qh3&bQ6)x^+0!CUO&Y&^o|&#y zD($htvmR=u_!~56>AltA{)+3#0@q0K{sm1bR`u!fnc`PUAJc!+Fgr#rJ2&k5k($c# zOECtH`VZyfch~Qz_DsPAE=fgGb^oQ3gF|Hc^S_j!eDtOXU<63s{*j!QqsU%9P;1~C z&pQ>$K3r|04Jb+qr*1rUNu&Y-J|VP!sVunZx#n^bqQBH#E54N^|4&JlPX4CA_K$rA zx!jmevkxKB8Zx9PGbL+C@WWUJT54a+5U1m8Z)MLK>sQoiVV5aHWtt2@okbSK_m!vP zn2U_e?^j#yk?pov;uilf{qIvYAJzGt?#)43tQ>sGy}vm_Q1!BB6NIuzGX!Ijcs$~* znlTqgr9Dlp?Eiw{-X#E|G6G>L``;o-pa)3K(##LycAf`FMYB_aypc9)@eIn!@7D5aF7;+LmX(sA20Op(u9{1Bjkck54()^X5Wq{f{iV8RB{Q*p z5FS+%<+LJ}G8MUVak&Lyaz`ncRk@x_bD(mkpT|Th(H`Q>&^rf3!%n$pCv~1Yrinwf z8bvt93GpYFP2o9RK9szA$7Ip}yrCc4_p4Zl^>=1whGe9PGMi3G;tJXkmOAvI*L^$t zs;CNmJfNP~&f*j=_t}@-mQ%71dF{B}4F{JPGzgJ|;D7luw7?a@ZI=29>L+LtpoDn<2tgQYu6n?H zIB16AG5QVG(V-Bjm);i3tej_PcvL}Q^=kE<#u`Yt>m-9fWTQdxqs;1z*K4DrBf+?1 zlvj`!5%8L3vm@?DxjH?3(91xd|KP#Sm={rGeRn23%MxtP$eR77#LU5Ui}kt4qjW

|g_?MzNM8sM19_D~7c0kC81hbFxxNBs91YW}O_Pz5c#%d`cTBVk$ar2w00dsSVKMUktG1E&xG4rw8& z**L8%?_wj<{okQMvlBD=9tu5mH)~9@Cv3|dwb%-*QDy4Vyd#F=S0D1_&i7f%_LtsB zgYrvAh$^f&U2vB?frTR>qaT~ccN^gzx?YM}E?Tgb|0Nu*tfOg^V)FCzVMBDt*Rv^< z_KF&tD#PX$3D!rzM{Pfl>yoF}*?tk$rJ1r9Fbf0uT1Ddc$~PkTB)nBuKp;9i-aE@R zfV&I3al;>w+_=$mgT9E@rIc*t4i6UjfSro-55A&vFC`L|DWY1((awM+?s zIJ?-UiyYCxC2IZZdogb(EX4!FDW;hvn&_7aCjgS&|74#s+>Gk&_1hc?M-vY@3_*HA zsoN4Y^@FkI(?Du0cZ5B%P+kBcv6+D8IRvzv3F*xrdMkQv@mSW5v2*V1-m0`b>DLru zbe7WGRwpLNja?T!6QK>D<|N=FbZ+u+h@H!V>O3SvNw$uqlz;e3$7w!=%nfYpD?7b} z$48F;QOV2o00!9b%qP9-vJ-OiqUoS|>rnp#)|KTD^$n>kXns-sCiZ@e6haYTxxxQl z_HiFBxapq~F#AOcJd=owXHUN-iM2VykrOp9Q#Mj; zdRgqH9iaO_^`XX?`t>j%gqC$sGLsa}Ll{nqr|_=HwVzw%=MTYW`#00A?b%vw`#4;6 z-S7r$8z3ibaVj>G0W#Kq$4Fcn!LRinbf0%-uj5qX2|JB}!l%kiC_jSfTb;2u_TM9U z30zI*T6dP`36Vr(=79UAB<%=lkQC5(x#;3_XO}PyR5O6=WtOsBtFrEX8RO$- ziAx`tep}GwjG+lp-(@gy309`9x#eNylxFb7-wdn|-Cs?5`B5pBiUasvKcaBX5!(5E zexLp!5eWRn&?;Xq;Pg9hEze4TWrikX2{eg=L#*fPW7FQGj16w!cvj_&sN8jQ6q%}{ z-4#6W<4>kd{_Fe0%0)~-AWYMQ(SKiqOeE*liEM6I$`B^os3%>g27Ow?kM zQ*@g@?{nKaE*{KA4cFEB-;(QqelsBfjvZ1{{`oQ|SSfXLm64imp#ezDKHp*P z0Q0MjwsY)qT?5q%ALZq`*4(e&>Kr1Fw4Ujkxajk+47Uh%$-P|%TCm8co|s3O%~&Gs z_Dg}L9ZDs;Xf$TMb~Qv}7OdT)K_FO*D&7B6BsU(t+h)827yvD|J!cQ&5@P$(Gs9PD zAw#r>n^s3gl*$TR;=A$s76a3LE})`|ymn3Y;#0BRIshD*Rz=T%cEYoxsxLF6*WPE8 zdd&j_w86xi>Pn_-hyOKKw22T1tpmfx_|_$PsfK}>E#Nff(K<03?%T2xl1zCGN8~Krd_MNz?4>V3TL)|Se4SU< zkFO4Y`uq;xbHUB1S@kX)q-Vw`hA?rb#$ML1Z}teN1ai;KF}f06hktIF&qny4_`}v~+^1&W!nYscAL&^c`n^0~#=?m6`;Pkh3r4+7%nU{|Jk#I**GHuy zx+!w2kPu4bZr$8N?sqGako*0*L=-zme&T8#Q>lq^p1I!#O3Pki=L zw>tfsiwdB9vDSP){7qXtj*LAx;Pi}P2b0~`^eLo)+HXHE-g{Jdxt^(viSD`?f0QPP!d;6n&4MAeOsK$@$PSa zL}nIlva*BzG>7)4=eZ1k(BK%exhe#2wB!NlFUZV?NNXkz=#$W(`5^Cv&E1()3onAd!zE9!=3>uhafASD7+W} zKh3;&(Hxbos3x%-^D?C~9AtD>_m9BA|1mlLZm^66b*wJ(TH|cB;EGFI4je-Q+s}_~ z4+gXfj0zaXQv0fq{FkP?TwE+pD$ybeOh+P?=t0e!)_a-Om zk4_Eu2v=mf1SYOopb7$n40+I>P8yAX(k%&)s1^Ts1U(biX8qw0^{%;9#5K5g`<9`N zWXb{Q=MFW9q8Gi1n8in~NxbN*b1YK!>*irqdGOHR{aR5+Tqj<>_wia=MW~xaYlTWN z@}rT-wLPaB*z|O&qR&#DaUpu5yU}#O))msYhDF!zX6?SD<-3N7?%NG_8P>3(EgO^c z*^)(*UO>||t^DQbLPGrVZ9$aBhF^>_E=7h6645R&EB+p{kHN4>(=ZBtXW(lnM;_Yu z1A%S4axUrZoMW8*mom-Sn`2tQ(E}t4Xz@2J&d7eaC%r=y$vMHax8BJ{nc#gWA_SdJCM-CF?6?Vu1=m4j?>p&rrUeA*N9Q}d7CrAaZIZJ*et5H$6 zzYcSRKC-)>q4E2`CcO2`d9nxw#=3eMQD9#Is_n+fAI@ z`0|xQhtw39D?MXKB{4-NUcbG{x*letv=pF}Ltve^CaS)DKfIaXk@(YftoF6g+Vq(d zg`Z1AgFk!{s|0Ww;2QVp&$LC@4ar_=utufTeKhZSeooPzpN>rn;#z4eG;$oD4VI4HQX@(>l8ARa0I|pwjP1(Vpy@;Tb*K=s2C~)Ou*iu;h zxV}O!W`1y>LeRT!6;y(Y^x*Inn_WZY%y<3x<(_=C+LnjdS6^YssXR=EwYQu9N z88AyyligKA)z0EQ6o8M~N%er}exHTvOa^;Z$^BI7 z?vPv0okvxhl_(f;F?}p#3%`8sp%WA4!<^653|rQd9VXC36D;4vVo;M3Qslfgguv6n z(jvN$?~02C{A!ELwBkYu{bt(8hD=&c= z`>fTaJ2_o3Y}k2lV9zcmW?VI+;ZVR^J?-W>b7visT@*H$aVB^Cn-rfJzdLZNmX|1> zCd7N@XbcEM>lgnr%#4Y1Ww;nML!D3E%fZ)^a`kWqlb!8}zb~Fwu6`kK=S)~Oj54&= z_eIV?*N0vQHfU3_A+cZ<^j*$@@GzGj16?*v+aPpih?68xb1Hu+YXVWv(fSaa`Lj`ves5vCP&17*+5 z-YhG<6EfAEdw&LLv;yn3>}Bl|GyFVE9GxGjeuBQ7gx7@u5!ZR@-v0UwJnSs4E^y`` zvTxGL1t)E8RT}uvE~58s3K!F}1PtG~`4Rsd7wyizVo6GB+E7X`8RrW0 zD>lMJAIpunLPNX%bf1d6I(khiT7*9$XJ~$gu)3TF_6eHgs2A3HQX`mg+808;Y)*`q zRm>!?kA0QQb#(A7wA6I?b^j9n18qD7>Y4sPI$uOTpOG8&j)z={oPXCcdwoayc4f^Z zo_=zU|6Hge6sV;IeyvQr7cN;QFpoL=-Cgpo9y?G)21&JZ$Eb512J}Am?m3qa-6+cl z4y1seC2~$q=DZc2AKKOkEY?uE`2^b&nUwaC4Q?MnSHHb$R*M3W1cl~PNUKvY?Y3Ag z9tB_O-_idspr-A~YmI;zNgXghBl;UR_tJQH+dNd^eN#^yd}%!6D;eZ4(2T9UcN3Sa z1pf$sn#qto)w71%gIewUBtz#HGvT^L7Hh9he*cii`IPH9I|m^tp{EYV5!64v!!V@H z)Z&giaXH5E*9y8n54v_Jc!pn#XLkKXqI2en8hkxSsk0DEU08R)gZl%tTzBhDhbF81 zikdE>MwQGLzvAzFoLGS_@~U>Gr3DnZ^M@8KUTax~6m$=%+&Vc2FOOq`&rKr`a8L{c ze#xFy#SEmdF<(>m%otJQ!Ae=3>=g;Orxt_>7QsRLgon8L^X0ylr;_1U*OkDN0lkG- zqYd5sL3i(hR=Z4Di(B^&M|%Ex#|QaRReZn16shHl{EJ}C=q9ISyPn_c_X~>4czv;dFu?q=@gMlehZ30aDmN0j28r-`1;Pwgaw! z!Q@~M7N~w3mWZ-agly;?;E{_~gV(j}uO!|R5qkcV$P+CB)Ko7xY3X(din|25Nk#bx zmO$Ts;`+_(&TWmh)lhNi*UifS6&UY;QIWe~A%S?~`k1j_rnQ%TFt^WJ_Fwmym>{tj zz1urWlQMY+_Fuufq>$y|4stIUE`TN_v&qs@YZZ9C@@Mq?v6R4HOh>}wRX-E>CfMtB)ecvn=?b=6gz;6wyn}0K@9!HSW4`J6vTw6AYW^Ni zYg6+K|4qE&bsR#o=6q&aFKnod8>3-C`f3Z+h--J5-w*O7NkX0Wa)za*HVvM>;5VH( z`}Rp&T+|#pk-FWjoq~ip(L?JY=z9B=eBsWW`4!)(%LBtYQS}X1U0vHg2|m3`t7pN1 zs5NO)T$?v(C?}}+Aa8D+geLE$`kutw4CVPHxR$&B7-2efVsJ)>e~$c{yo+++>Whh! zT_=G7FZx&(h2B}v3^WYbVLqRAtZo$wN_od&1SI9>5N!hhhB6k)8`poxyRRR-sU3;0|dpcvwE# zh=V6DuP?>dp5MX=rcc_EcYkNOm*MC=Q*sv*>@LqkH00@Z5D=qy1jU8f zt3Z!uCt71nc+&=OZlDWw&K%Jc)%yQB{PP|?6g{(-Cz`G=0|MK@O4i3fX2yO zAbSQogRCmB8LZH0*|Y$~B8RXsQ~GrNwkqoR%yIMKI-VJQ0rg5bOa2P`%B}TlWAy$W zPfs_zlXtoFQ+7?3gfEm*PRoFa^SM0*D>#IUEFJouB0_z{n<3j|ih5JDvaBt+k)mUo zSpl~H7Cnv*sBXHhcR{OFl;)VsSf6zHtK3A+!RcKPnvo7mg`Vkiobosnm1+VzD;&2$ zb;-8u$*XY1_=Jjlwz;<)DShUiaQIBX950bd*{zAyv;UKxDO^del#9=?C;mVKdpLI2xoa7aL zF9=09GEc)rS?zn8ST0x33Bk`TVOBt6ZKP`;Y+1{1d?94*dg_v?XVDP8egKrz5h?2S z=~t>GT4yIy?T?<#$sIrNQoXDF1oa0q(x|I`N?fy{9)|vOSt_IY47Ik3$4WWw`T40@ zL5ut{?CpV&J`C`83I6-%H)GBA%?PIzDZ^VY%d5+tSuJwaG!|Nm{kgCFbi;!k#)iv} zMk#0{Q+6TLG^_1HU|QAj9Ce;~`|C{?6&JE(?!2FV*OR2WE@rBqd6(~A zk2X=I%^KG~?SkaDP*G*XiwBeqT~+hWJxlR0D>|0An#rGgwDMfu4~~hgQK5J+5V$}Z zWZ}C9e%Hi!v;P^m2KkS8lafQ=&>pGQOHSeM}Ph7IE z7jG{Vy;~hWJ}c{1=C@hpw+1-{uZ^}(x0G2r)JFSJKzVr~@MGN&;l;dZ$TuquEU1tC zU3U**$q&$I5_Q=cUpu0m$Vm)g61-P84c`i)i7$&}m^4j0Se91=Piz$1r@b;ns!O00 z!$6!AK{;z--Q@D@a?1sej(2`Rj6`94LA3r^{N{%X+FB*_K#t}ijSZQIDK8ZIPB+9YS47SBhT~msdpcl*r@;nV8-n}ju44w zW#tlfbe95x9QDiONy{>CYUP226)v5#r3+H~oBX9zQv=u{Kb+TCgMm zj4cNVcDzdOgQ9njXOdY=xlG>ywZ`c{Ad4ap1=r(WyLjaI7SD}K?nm9+2zc`P{$$>K zuaRFb-oc0G`e*O7U$8+9*2ZQGN*&TWqRw^)vOng57K? zbEcbz7vvLDUv`AdzvgP4I-(klBXc^n{R6Yc(!{)Lz5EvArHs?cQL6OSCx5=FDR(E{ zY2@VMot~rDm%I{8{caE+vu@u$dkSIFSz>oB`^!lc6{Q`rGO@A7q50xpXy209 zVtEc6ILdZ~x~LVBOr*n#XqV|NmR3uMW7M0GoYJK!qNn6dPnl6-faLyqw zAQpi5og-_qTW4=^e~Hsw7+l?^Hgpm>PY{}mza4+1eevFOn8_iX-$~7frVJ$bslC5l zkp6s9Q*AEKO6s|no&10j(96OVgDk6jU- zYAzyrW{2G4ISwjjKD_xSmg%;zfO+1hWovhm+Ww}kuNsK>2h*9d@wG4#C|vbOducsO zM0N0I)%a0Tz-48!tU{Z0w60I008JTpzq#yQt6u0sPA+BOU=V-we*b~Hk!=whN5Ruw z63U5fI{isRwIO<{z!WPRUhL%UjHU%1VX2z47a34#?{!E1kICHd$J*K0XcIJW%(&U} ziNB7#QTL3CSLBEFk{zFJFWQRe?h|7eN@cPK^L z?9Il48O)#*c!KggM;e(N#5*1G8HR9k&Rw?^X8=gkkyD*?UEnoFlHIDpdaX%8|y$p)% z0yO6*!+`$+#gWH~_4>3>YLf$txBTV`7lSWf*0K5LTmGg6Pl*BxMz8$e5RH$G`OY)_ z34`)ij@GO4q=OWi=kBnavynrF@%M9PT5mE28tpf&|d zE!427HQ(}J<>mDuZi0~yWs7m0QjXGXeIKvsn4|A|K5T4c#a?lXGFIA^6QOvN-adnBVcZiP(?T}v4yy7h@_#6V8H0c ziv5~%`+db%fdwLZSPwa`ldhtesh(@QQh}qag53olZ#QTXJv!|e51$iw4E{kbkF?*w zcp*jQw^p!VD$p{O`Z@ky`>#2g))L9I2q}*7RKH_90VU8Nq;E&Zv1;a!=QQ2{FAlkRy-4d@7_`bnW#J@Y>2yNBHHw*AyiH14Eu%T zV97w0TR{lxgpK@5BG-{%omIN6U)JOB;4k=VAHL1EL>AR>btV5cu%sqadkO$-(!J#C zzVEqg#dU!3?{YorJDz-!grm;X%SollZ>uN)oF$4cCy%J2y?fL%Spy4j!c%4buG|-v zy> z>l_}EZ`s34=KJXgAWkfm;hL20tE@Pej2eJIarJ?EVXG(%NJHx(CN?>fdWULp-Kw2QwHdQdB}3g8P^9g1Ukx;vTR!h8IrV;ZSn4U%$ zZS6Y(Cp7aAT20gj<0UW+UEG^s=+p zkp|P*QYe;nnF5=#CbLM=oR7#&^x(BWD%xf{fuL8-cxhV-d3SiLb&N9hRGq`r=k)P$ zzirG~^6fY;IVs#8HELRQG1=k1odwz0mFY`#LiDp2+u|y;gBy z!_9>UMVwOp-=hO(B^2c+x4dMW;eW*-m;B=3jtE1foCwfUQa!&6{$ zU{bwlFk{i&#q!s49Rhueu1(nZKmSj_lle+eJj=eB zVUv27)pVKh5i=g|m%||G8&~6B?hsU*3d-vN8JxO#4 z7xd{6#R`Oaoc8WsX89NT-%j>F_w@Du1`)rQ+?IDXuCIW?bn8-QKs{>6 zS5y4dX16XB@VNmD2JXu<;Y(e7z>!jRez)e$J3C?ZL3sfh z?dUE{O<&p-zo?nYOq_TV5g!SIZbx@KNJUhp*Jl6&X4NFxGHktFeklhesbq?GMy6kN zvCU10lb=SSU?9X(<3X{pJr?C_*!t|-p7Z5@wr93Hn@!>vx?UFGb;I?lzc(bq*~4cJ zb#%FWV(764l*zUVDy#5^67`E^VGv#WyzIyn@F_Yw%UVoT` z)sJxXXrPh$t#ylb%UC}O!zCB^UVTnD098!1_?}|v*@8!&@0p*bUwPFAg%bplQ1%My zW`+v=PPSqUC-i3n_8!KCD%TN@)s=mW`5|iJ!_(|O;7KG4QpFdgCu%Ci@|?{wYDXE) zaoqPcN^aG1yc3W6vh9{pGGYB5EjgkiK`2jtYQJEge1`-#tF}$GPJN1Uy#xjN0Ngm; z5PzWEv>|D$weTOupZI(Wzt?vO@+7<}0ulDI$(FI-m;1PdDi~d8B{`n5@Sy9tyB`O$ zEUdYYs~QXc+$thqf$SMHI0mf?RR@P-M{%ycLUq-Z@$UY|q()WPd|&zUX^ywhIoGoe zdm+dP`-9DRnoCpblil})dHD?g0N3-cNJG`AWVI}htwjr^|N7)Q^y0()uCr8a74^Vg zRA80WlhV|*^;$Zb7TP*E=pdN zxSRZ$;tzLt>%VR4#6yUXsklN41dowl;>X(g*yBg?}AC~!$#bX zEt*b`=@XBCxFDAicd@rPLBDIPA^K+5M4-E{3j>HMsLI?~Ry9WjgGz4KLg>ldp2Syi z$3{lR6Sd?8qOC!91^q{IzW$_+eR{qkykVUIW*9^pnEX_=eA~|BxAki?oP-+(Y4LLL zV6M)j8NL1zz)=*vh}wYMPYWeUtH>hLbv~&R6N&I|21^NgYJr}H*&3oc8jQDZ`+hKn zHeuQdc_%X$Y@v~k^t!9BATdJZqKOXg-vwABDuRu6ST74!Y>BGBc}aKc&+^u}2Wp274OVdci$@=GNd>LWR{91GqWh2_);obhaUuA9c{Svk#A9 z#wK}NRZSjU6-Wb>SrTp_T<K(qtx;Un*_;t4UN>l=AN<{(`-R|ZTlXx zqD2hi0JbDx;$hRin^2cShMmxC4h9FypfdN%V7ZWIpM@t+Cqx-k8%sbQ*F(em9V${sh3-b=5%{$$O( z7xs#m{~n31oY*vA5_(wC=L7U$4nkJh5b|Ax#=f`u%T3D+`odrv$`nuL=8VMl{w&{Q zkylzrKIllwKT9ywVw8l};{W>q^{titNk>r-w+#)m#{Mk%pdL0-O1~n zHdq9AXioZ4D6T{FCrNN-pg6P;twJu$3h0UfGRu#Y#<5qoPwtF9S{`|o>lL{(?N5bJ zCJf(dE}2;3apdY$xWif#5=6>0m#!kU0;_{pKb1c_I+-fHTR9F9*pBf85jPIZTfVzA zY4H-g10Ziq99{9X*uyX7zn_!VsP>EZ@*^;Bh)^1wBt$z~V>4N&z!@uRat{%#Fx}Jq z6LX2C^WUEfzQ36vQIHHJjq^Yu;aTzfNg(JMT4?^~)_`R@YMVJt*~5%afiJYkrbA4l7f%2GlZd1$BNO{xgX^t=jkTy1(N!2le zGRpQ_{ZBUh2Qw1fK8KpQX-A*FZuxd!YAu)oO9;Tq4Asz&`{s*2Oh)Ko0W-mTa}90( z>}&U_6V3e^-&V%V*AB<^pTe5Z!3LfgH+`)@cU@T2g>3aytKi%@lvEQ?O8LB8OxJnr zeJ$ekozZHd0CAu{O|w;$yb|QO7fP7g;W#lK5PDH3pgHAjlTNvJyyo%hoa@eJOAI}^ z_lC&weHkjC8B<+c{N>n6?u zh+e&3eMOesm>S`EkoGBn8}jL>sn1fW@xY-tEQx}TwiYl`YSTDtDPb5pbRYp;3^YN! z_dTuL?fr6CM3Qd3Du#cF5xdw@uTyT!uJBDNK{Fe@FCBVQc!eOLHKGT=2J) zYvnj^;Tq31?8YSA%e$GQu^$?G-T0QTfUGfj74Sw6Lew2+Oih=x`mzcRL0yQN;PbaZ z$;m(6uSUJ(%D|f2UDjx!cN1?^_ppEAFohiGDgQK%Kp%Y#1~W6|g({DuyrNs>Db=x) z^=Uinp`TVMw#b6zC+ZZ}$y%Y57bYGo`hQdpjtF9Ou(O)gV+k);!|mGi+)AN z69|mz1rjHiJgKCSg35*eZ@yEgs#O;cV=TYReujBQW6*_{Q4q}XJ9|vz^p6|7-EGsV zSUu&X!T9U7eT7YaH3zQr=UNJjWX+9nKK|e(whW#*C#X-{sB)!u`m%<~wuyxz#mE#2 zR?MaRl2k1XXjTxW?$5p4?Xzk*d#X^=ZdCqNN)89GG+)mIggO>8AO&KDiOgCJJZ-mN z@6x%O&x^eLcAnlDz*Yu_sl<%bg!QJYg5isCf~U>l;zlK;|h_g(yL!^iT_DOjng zP}TEi?N|K4tj6`TwvqLyZ9Cw>H+TIREbt*(;RR!#9iB|0jCAN?m6~-P>jB8spU`2@Ltbm zX}cH{X<%bvW7T_n2qrDsZ>+$S@JUaBi$F!V;$jnO*6Lwks#>481Vhw{7Ci3it`h7HAh!5#*pRm1jem>Q*GAGw; zi0-(6SbcVQJHVTuTZ((4!Jj?r@^Z4AW_Y5H55F#Re$ET^`h-g8yQ5+D&7VSY73@5^ zKGo0S=ZUmHfbtkL%`SSG`T6ZxS|UlIpqb+oU69JPxz}i;7p#AF>5{lBZ&kEWJhx@1 zgM#rjLsfO<aqpCrfzRa?LQ^PBh>31<&_fS|8f+ zw(1&FL}onPd!HzJUk)U+fCk6rlOQLDCd0PQX?7iJ4d7<+<0&cSs}}^f&fV7^JUAf(yzjp(BFLF++KC|@h6pG zQd#+#W-YUv8YYdbrWkkP=S|s-jflt#4kG#M7=+RG7@yT_Z!=#I-e}Vn>&sWt+aPWv zesHGw`AxGfWnQ)qe_)BdKb7~+8_ejF|-Q)t>f4BAz$Mz9Qs!Xfx+e)|n+$^Rie9_yJq&!|=w^3!E0tt1k|7 zkYEIs<^PykAeYS-Gi~4rZa*L43?r}0#(kUO;bq(6AjW@f@K5T?OW)4=VPge+@bsaD z-?^M;F}fvc&Xd@gj3nAAD)+t-GDLM_H>+U8>QPxDa?Ign<3Vy7zx^%d9Is0YRF|EG zi!*!CZ<#9u(q4$7|o(+jO zR1cu&pWK(S#)fYS-8DLJ_*ldyC>HIf&K}qkO8V-xYg}FHqe_gBMyx8&#-GbScs@jN z0xoF_lB3|}22#iMmdiU>*Q&u6nf}|FiLd8=s2^GU;u+`9U$GzNV%y;KNxRkG+RC| z^TSsx>Nql31Jq?n;T;Xmxd;gqnn-@VuIYP29(S_tigTK;n& z8U-a`A1w3{O)%?E3DihWugOf5-LYd%0Arz+u@PgPdZx9w0!9+oV27NzuiU))WuVcJg}>G4gzr zgrZi6YD8ZFfuZqMMoci}-}bZuI0q0*b~tii?0^aR;xWQ)o$RF!gMg#a8w^k5FT&#} z-$U7@IXVM?D&<9u$6+CkTZ>NP`Qy^5$wOh_*T##h1)X>>-oK{jn3KpPJt-Y+JaB(L zhS|B@3@exCGLG<$^XwH&87FmLGz7)s8CuwJH-p$cA23k(4BI&mW4G4ZaPJ-f(xTlv z3n-+&??rXDRYE{wi>8HfO#Je=aPCCcnTOAPn70;Tl8pxL?YPX$w_hv%6)M`9&+q(V zJK26L%r;GK=wE0RRg!sId))*S-LB@Fxx+raCiSetHhTfcrAz*s&xH*Frg|E}^rmii zntzlOK2@Z&`p+Dz%=ZS=!;VC-Cc#B*z8Ft$?`g5_EEFsqWQr=Nz|bEfZxODL+sEpw zn!NjS-XD&G>p+XnEqEf%z52G3^LOtEJ_M)bQTmzHS4xyxD6zFCo&zt z-W?Lc2lC}Ab|hu3_9Th{Z_B3rI;?@ALY@7R$6xjM3{J! z^$q?WZZg0GSJ0vX^vI~JEfTU=^0!tyyiYisjg4u7C@+}MMR{f^Y72t0j4s2=EfTP@ z*&reWy;ti<$$_PcYi%JJZE3S9^JWP|;8YGI{r}^z1N43VNc)3uUEvEUjF_VRO>N!3 zNw;Wq_}SO;3eyCFNuoQrYeMEd<&L8nA&)lq(hD~Th@G>Gl5{9x$k2NzQoCIh8NYr+%v zS#$36+`7lL%)vj2rR+=++)3NVC){tS(2ku?N;eq&A*~*&x%x&4raHt`VySNiRu!q0 zI!GfqV{e<<=N!Mp=bemHQD6USJgR~q?}1K+tA_4VFdT?_(7z+snBZ~Q&Cdlgc>D;U zjR{ojg{pnxODNmd?_`)DGk`U;OZ@LS?-{)yX0l2^d#?JD}*e*pY<179Sa)W&rr{@xX)fOfuw1<3C)E!3E>rE810wCgC-ZK5Aj$3*VY?Qlf? zS^vGSbm+z|9eX*|ZDo}qcp7!A^;UCAGH1<}I=k^4U?3UBX0Pl_LCP|k6l9J~&lI;l@WfUZ$oqa&@O8VF zFXpSqa+BJg1Q0;!L4~3)cr91NAH0)=i*fS~U=!18oW-MAPH#KH+0In=cCF*6&OAEL zjfd*TLq=~1e(rkybozYw;Q3lA-C8nu`QP!jjI)f&qyf|PH^ED^odt~c;wO@D*qJ4G zu2lJsqEoG$FUU%5I_{aq5E&5k zbi-9bz7>zoNp2GkSGNVRwb?%V0m(yW>8{E`NjfQnVFfdNdDF69BI{1QE8}?%?4l?x^5a}c>%5T zGU%Ms)_CDtlMABl^oxY4V(D_Xl)nd5HD56}$W$5U1mll#xnKZVQnlH!+ZO8$!nUzh;>K)sd^X70H8O;$>Tx`Jj=_r4Dpkq9E2g|N&^=9 zPdJ#SD?D%265=F&0aqXw=ScdR)G{tb4oo-daFTQXb6871nUp6N6DCZe%LELp)bM>Z zx4ix23o^TI^n3irBLND%+qBxIIDsF(23z&y7WyE<6zCS@zs+$0-s?sh5|LwR8r^$N zTMfvaBaWe;?o^Q*Q!0XfB2liVPCf#iMYnG2!>BI2)6uvT+vKF!na}^l# zo;5aO{bKXmh3$5N%!ttT1&e^jpVDa6Ed9qcRV$vhfSVVjv@?)*pvn5%j;hS8*^Wl3 z9$R|jOPKCGW!4rLH{_+}g8S+{FwFs4kqjn9cV$RI9_UAe{HD4r*o)PdRW zqO8?y*>C-6k}P`l7%3nkp}Kl$A+Qc{ChV$p$AS();GA~%Hn(1hSFr*?P=0j@w=GAn zSlFTM8Au7A0Gxb)VF_y%b!%12g^s(Esj;SbZdKv^z*vibZ5t=vgb5w*-NOADtlxpk zfe@WJbG2zR>e-E|o@@o-p%&y`0aj{X$?HZJBFD@sxF0jI4%2U|Tt%)rZ8o$_^4RE9 zy_r5an`E`Xd(H%_dYcxM6ByOpUnv$-3o5kTz+5j;=#qB~<5t}z{>Q`#Hdsav1s97} zwwf)ecd-rlTHBB`mvqg(LTAe_eNoQm=q4#f^ibhRCI4Lman6`@DSSzF5obfr$_355 zi)^27{aR^e|3tu3l_})qmVzNHpcGghY(`oQtO;l7mHUdO#61uHkni2Wj9-SK9C)qA zpg7P(?(`%wZ+@^VMQ?yGiP`&*bBo=h-V-Mhw@s6lG4Gs0FhV@0;afj-%0MKu)5fRK z9CSR(FXT=kbZOO-hx^>|#*W1MPg$6DcgUP;Pk+98VB1r&pwmzZe8qgffAmKWusQiHW>;OMZ0#Er(L}yDS4ou_7G` zCd&bneJyB5{D$tZsoQuNZB+YzOwD6=lQ9k5CpyA#p z(Y}1CU?>=VK)3Dsiis*0j+w%1%K4AOaJqGo^7EBdVzBcEI8JD(Y2CcZ4L?&l7BaZA zWdE&vX(~+#FiOC<4>vQ{M;X({$oTB4xNo*M)R+e=*i@S$-iZYmVwh}3X> z1)%C8jIwvU0%4$t9@-F=FEsBvwCq*)Xl-(b4nE%ou^fCQ<8l(cK5st#R{mJ(T~8b- z9@gVxX|83OiPW{hUfE3(n#>J$+EP}>wGD(Hc+|4*y1DgkCxz>;@6V;BJp(s zmg0?fqA{_IY2`H55;e1szd^fy4~_0`tiRu(NjK`cwFa9syq2-^4XKfKgvWcSc#bu^ zs1)aTm$EBi$>`(=^jT_|uY%X4I?tYuNyggZ=l29)^!5gspWlbEGpBG!R=(d4p9$sP z3;lczo)ag1At%os&zHJk{C!6Sb>nao4+IWCe5NDToh@!qxZ|P+%24|}*bxN#OOHq2 z-?GdruiC-JelhRJlAdiWXUo^(88n&K!PKp+g=EGaMycrQ4-l^2i*sW-lJXZZJGVW~ zBD>glHev`Yf9ZQ-hH$ChT|e>GBfO`7VLTV>4>zgRJsmokxPcvoVv~7)D=ed}B?_x` zy2@nQJ0dBehDCYj%3iCB@oc^;!--aT%cSOuV?g`Mn!>8v_{H_shwKrBBH{Z)Oof_d zks4kfC~r2#85gX(&;=NpzD}Exz0!|O^yIuW8;Lj;D$Ru`HkeT9gw-SVKUG=Cg78D! zBrf*5bC^$cJ}5&Jk7F`F|19ndfr}A@wtJx)J7ThiXS6`00S(X;P#!8~yw+dXOKf{7 z2Z+SX$@==VnK*U2VaLKMEGf?|@M`s(cML&G6ttiKd=&q^^=mp{DsqrERIH|>ve>X^ zZdM$#Zp#~)n4%(<3CWMnv?K?86Rz2&1$bvB=Du;>B|3#*zz~@&sf*hmXSReR^7BfR ztUAJMWR^n-dFqmrlJj;F534(vE()zpc;^rsRMR%r_tJ281}Fm*OcC|FX-SMH1Boib zRk*xs>?FR+HMH^lYKuDQplR*Ssw=0sA81N3quXY~+yhaeIRko87FPn3 zB-rxpoiJB;eyLpABpi@TL@i~8@JRB(nJ;3x+F$X#Ur0exuXiA;4VcDzjTo z!_7Z0wyt;%h8}Y;I(gYR`?1kHh!$v0#>?7Y=bF^2C9D`E^WMbGW2@yor_-Zqp1q|T zdhxv$dVQa}=Qd*AR`-?qIceJ_C<%xq@a+_u{xq3f-vgBaKtH75J zL`}rtfY~Gg>Bi{zCU~P$VGzMadk@)LURteA$n9;*bhnBVlKF?aKjO5yn*XDs z8k0}9@lU`a@(r#JFv8+$YFaBl|BHj`*Gz7-jrF;1RpjdQ4pe{g`>s^NrtV#ply)UP z*p~uJ89nt=gLp0%2`nV2z(-`TfXPqo*RA!IN0nk z1R;U7?P&hZYYIJD_a=zRRlJ1pZP~aV>ke*#Ag9@>+0wOpG4!PvBo}uI`lwnnp$|lS zAN{n`Xtyx?qoQgnPe32^n0)&%sy0!ue1E&cYl(CK`z;<2+gM4-|28PIQCk`HNB)$$ z{;|+nI4)Z;&B=H!h>f*W><}OEEuVS&P`a zM`{fOpEWbSlBEL@C>!=uwgVZHu^{aPyUAVfjf#8QrSBG3v!6B|-1#TOqBmw9Y?Y%0rq}sF?3V=NazJZ^udw=Et;s!l79GnL zniXlOKfBf|J6usU-kqbLET6j7{OtRpJO!){PT4E0-#V2JXcT}9413sQaa>TjZ2(k# z*BcIlMm8k;pCByioyU|HUB-G)Z_hoEgKneGqI;uO z(ve7iZmAJ1%LjWB@pwSuL-SVRM`NL6*t@jFT*1QK5;({oCn%?eI8Su?3W(XjN`OPG zw+`V&G+927owzv`8S{Amaq)lB+L&*9;H3tY-%3+3aqgTf3-iu Njw8iuVvHLz$Z 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 JTk7w~{{f9D&t(7r diff --git a/samples/resources/daisy.jpg b/samples/resources/daisy.jpg deleted file mode 100644 index ae01cae918365637aa3ac44bfb052fb86a964441..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76076 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

P&A^o`)gR|ea8V&AzxH`){L&td}kdoe;WRl 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 Z_k--s^M)thNP6J(pJM)R=kW2z|Jl>KiNpW^ diff --git a/samples/search-features-async-sample.js b/samples/search-features-async-sample.js deleted file mode 100644 index c2a74fb1..00000000 --- a/samples/search-features-async-sample.js +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Searches Features matching a query in a given project Asyncronously. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - query, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_search_features_async_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function searchFeaturesAsync() { - // Configure the locationResource resource - const locationResource = `projects/${project}/locations/${location}`; - - const request = { - location: locationResource, - query: query, - }; - - // Search Features async request - const iterable = await featurestoreServiceClient.searchFeaturesAsync( - request, - { - timeout: Number(timeout), - } - ); - - console.log('Search features async response'); - console.log('Raw response:'); - for await (const response of iterable) { - console.log(JSON.stringify(response, null, 2)); - } - } - searchFeaturesAsync(); - // [END aiplatform_search_features_async_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/search-features-sample.js b/samples/search-features-sample.js deleted file mode 100644 index 56a1dff4..00000000 --- a/samples/search-features-sample.js +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Searches Features matching a query in a given project. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - query, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_search_features_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function searchFeatures() { - // Configure the locationResource resource - const locationResource = `projects/${project}/locations/${location}`; - - const request = { - location: locationResource, - query: query, - }; - - // Search Features request - const [response] = await featurestoreServiceClient.searchFeatures(request, { - timeout: Number(timeout), - }); - - console.log('Search features response'); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - searchFeatures(); - // [END aiplatform_search_features_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/search-features-stream-sample.js b/samples/search-features-stream-sample.js deleted file mode 100644 index 798dadfc..00000000 --- a/samples/search-features-stream-sample.js +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Searches Features matching a query in a given project using streaming. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - query, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_search_features_stream_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function searchFeaturesStream() { - // Configure the locationResource resource - const locationResource = `projects/${project}/locations/${location}`; - - const request = { - location: locationResource, - query: query, - }; - - // Search Features stream request - const streamObject = await featurestoreServiceClient.searchFeaturesStream( - request, - { - timeout: Number(timeout), - } - ); - - console.log('Search features stream response'); - console.log('Raw response:'); - streamObject.on('data', response => { - console.log(JSON.stringify(response, null, 2)); - }); - - streamObject.on('end', () => { - console.log('No more data to read'); - }); - - streamObject.on('close', () => { - console.log('Stream object searchFeaturesStream is closed'); - }); - } - searchFeaturesStream(); - // [END aiplatform_search_features_stream_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/test/create-batch-prediction-job-text-classification.test.js b/samples/test/create-batch-prediction-job-text-classification.test.js deleted file mode 100644 index ac285ad4..00000000 --- a/samples/test/create-batch-prediction-job-text-classification.test.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2021 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const aiplatform = require('@google-cloud/aiplatform'); -const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', -}; - -const jobServiceClient = new aiplatform.v1.JobServiceClient(clientOptions); - -const batchPredictionDisplayName = `temp_create_batch_prediction_text_classification_test${uuid()}`; -const modelId = '7827432074230366208'; -const gcsSourceUri = - 'gs://ucaip-samples-test-output/inputs/batch_predict_TCN/tcn_inputs.jsonl'; -const gcsDestinationOutputUriPrefix = 'gs://ucaip-samples-test-output/'; -const location = 'us-central1'; -const project = process.env.CAIP_PROJECT_ID; - -let batchPredictionJobId; - -describe('AI platform create batch prediction job text classification', () => { - it('should create a text classification batch prediction job', async () => { - const stdout = execSync( - `node ./create-batch-prediction-job-text-classification.js ${batchPredictionDisplayName} ${modelId} ${gcsSourceUri} ${gcsDestinationOutputUriPrefix} ${project} ${location}` - ); - assert.match( - stdout, - /Create batch prediction job text classification response/ - ); - batchPredictionJobId = stdout - .split('/locations/us-central1/batchPredictionJobs/')[1] - .split('\n')[0]; - }); - after('should cancel delete the batch prediction job', async () => { - const name = jobServiceClient.batchPredictionJobPath( - project, - location, - batchPredictionJobId - ); - - const cancelRequest = { - name, - }; - - jobServiceClient.cancelBatchPredictionJob(cancelRequest).then(() => { - const deleteRequest = { - name, - }; - - return jobServiceClient.deleteBatchPredictionJob(deleteRequest); - }); - }); -}); diff --git a/samples/test/create-batch-prediction-job-text-entity-extraction.test.js b/samples/test/create-batch-prediction-job-text-entity-extraction.test.js deleted file mode 100644 index bb630905..00000000 --- a/samples/test/create-batch-prediction-job-text-entity-extraction.test.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2021 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const aiplatform = require('@google-cloud/aiplatform'); -const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', -}; - -const jobServiceClient = new aiplatform.v1.JobServiceClient(clientOptions); - -const batchPredictionDisplayName = `temp_create_batch_prediction_text_entity_extraction_test${uuid()}`; -const modelId = '6305215400179138560'; -const gcsSourceUri = - 'gs://ucaip-samples-test-output/inputs/batch_predict_TEN/ten_inputs.jsonl'; -const gcsDestinationOutputUriPrefix = 'gs://ucaip-samples-test-output/'; -const location = 'us-central1'; -const project = process.env.CAIP_PROJECT_ID; - -let batchPredictionJobId; - -describe('AI platform create batch prediction job text entity extraction', () => { - it('should create a text entity extraction batch prediction job', async () => { - const stdout = execSync( - `node ./create-batch-prediction-job-text-entity-extraction.js ${batchPredictionDisplayName} ${modelId} ${gcsSourceUri} ${gcsDestinationOutputUriPrefix} ${project} ${location}` - ); - assert.match( - stdout, - /Create batch prediction job text entity extraction response/ - ); - batchPredictionJobId = stdout - .split('/locations/us-central1/batchPredictionJobs/')[1] - .split('\n')[0]; - }); - after('should cancel delete the batch prediction job', async () => { - const name = jobServiceClient.batchPredictionJobPath( - project, - location, - batchPredictionJobId - ); - - const cancelRequest = { - name, - }; - - jobServiceClient.cancelBatchPredictionJob(cancelRequest).then(() => { - const deleteRequest = { - name, - }; - - return jobServiceClient.deleteBatchPredictionJob(deleteRequest); - }); - }); -}); diff --git a/samples/test/create-batch-prediction-job-text-sentiment-analysis.test.js b/samples/test/create-batch-prediction-job-text-sentiment-analysis.test.js deleted file mode 100644 index c9d18326..00000000 --- a/samples/test/create-batch-prediction-job-text-sentiment-analysis.test.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2021 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const aiplatform = require('@google-cloud/aiplatform'); -const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', -}; - -const jobServiceClient = new aiplatform.v1.JobServiceClient(clientOptions); - -const batchPredictionDisplayName = `temp_create_batch_prediction_text_sentiment_analysis_test${uuid()}`; -const modelId = '4792568875336073216'; -const gcsSourceUri = - 'gs://ucaip-samples-test-output/inputs/batch_predict_TSN/tsn_inputs.jsonl'; -const gcsDestinationOutputUriPrefix = 'gs://ucaip-samples-test-output/'; -const location = 'us-central1'; -const project = process.env.CAIP_PROJECT_ID; - -let batchPredictionJobId; - -describe('AI platform create batch prediction job text sentiment analysis', () => { - it('should create a text sentiment analysis batch prediction job', async () => { - const stdout = execSync( - `node ./create-batch-prediction-job-text-sentiment-analysis.js ${batchPredictionDisplayName} ${modelId} ${gcsSourceUri} ${gcsDestinationOutputUriPrefix} ${project} ${location}` - ); - assert.match( - stdout, - /Create batch prediction job text sentiment analysis response/ - ); - batchPredictionJobId = stdout - .split('/locations/us-central1/batchPredictionJobs/')[1] - .split('\n')[0]; - }); - after('should cancel delete the batch prediction job', async () => { - const name = jobServiceClient.batchPredictionJobPath( - project, - location, - batchPredictionJobId - ); - - const cancelRequest = { - name, - }; - - jobServiceClient.cancelBatchPredictionJob(cancelRequest).then(() => { - const deleteRequest = { - name, - }; - - return jobServiceClient.deleteBatchPredictionJob(deleteRequest); - }); - }); -}); diff --git a/samples/test/create-batch-prediction-job-video-action-recognition.test.js b/samples/test/create-batch-prediction-job-video-action-recognition.test.js deleted file mode 100644 index db447807..00000000 --- a/samples/test/create-batch-prediction-job-video-action-recognition.test.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright 2021 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const aiplatform = require('@google-cloud/aiplatform'); -const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', -}; - -const jobServiceClient = new aiplatform.v1.JobServiceClient(clientOptions); - -const batchPredictionDisplayName = `temp_create_batch_prediction_video_action_recognition_test${uuid()}`; -const modelId = '3530998029718913024'; -const gcsSourceUri = 'gs://automl-video-demo-data/ucaip-var/swimrun_bp.jsonl'; -const gcsDestinationOutputUriPrefix = 'gs://ucaip-samples-test-output/'; -const location = 'us-central1'; -const project = process.env.CAIP_PROJECT_ID; - -let batchPredictionJobId; - -describe('AI platform create batch prediction job video action recognition', () => { - it('should create a video action recognition batch prediction job', async () => { - const stdout = execSync( - `node ./create-batch-prediction-job-video-action-recognition.js \ - ${batchPredictionDisplayName} \ - ${modelId} ${gcsSourceUri} \ - ${gcsDestinationOutputUriPrefix} \ - ${project} ${location}` - ); - assert.match( - stdout, - /Create batch prediction job video action recognition response/ - ); - batchPredictionJobId = stdout - .split('/locations/us-central1/batchPredictionJobs/')[1] - .split('\n')[0]; - }); - after('should cancel delete the batch prediction job', async () => { - const name = jobServiceClient.batchPredictionJobPath( - project, - location, - batchPredictionJobId - ); - - const cancelRequest = { - name, - }; - - jobServiceClient.cancelBatchPredictionJob(cancelRequest).then(() => { - const deleteRequest = { - name, - }; - - return jobServiceClient.deleteBatchPredictionJob(deleteRequest); - }); - }); -}); diff --git a/samples/test/create-batch-prediction-job-video-classification.test.js b/samples/test/create-batch-prediction-job-video-classification.test.js deleted file mode 100644 index 16f8ceaf..00000000 --- a/samples/test/create-batch-prediction-job-video-classification.test.js +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const aiplatform = require('@google-cloud/aiplatform'); -const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', -}; - -const jobServiceClient = new aiplatform.v1.JobServiceClient(clientOptions); - -const batchPredictionDisplayName = `temp_create_batch_prediction_video_classification_test${uuid()}`; -const modelId = '8596984660557299712'; -const gcsSourceUri = - 'gs://ucaip-samples-test-output/inputs/vcn_40_batch_prediction_input.jsonl'; -const gcsDestinationOutputUriPrefix = 'gs://ucaip-samples-test-output/'; -const location = 'us-central1'; -const project = process.env.CAIP_PROJECT_ID; - -let batchPredictionJobId; - -describe('AI platform create batch prediction job video classification', () => { - it('should create a video classification batch prediction job', async () => { - const stdout = execSync( - `node ./create-batch-prediction-job-video-classification.js \ - ${batchPredictionDisplayName} \ - ${modelId} ${gcsSourceUri} \ - ${gcsDestinationOutputUriPrefix} \ - ${project} ${location}`, - { - cwd, - } - ); - assert.match( - stdout, - /Create batch prediction job video classification response/ - ); - batchPredictionJobId = stdout - .split('/locations/us-central1/batchPredictionJobs/')[1] - .split('\n')[0]; - }); - after('should cancel delete the batch prediction job', async () => { - const name = jobServiceClient.batchPredictionJobPath( - project, - location, - batchPredictionJobId - ); - - const cancelRequest = { - name, - }; - - jobServiceClient.cancelBatchPredictionJob(cancelRequest).then(() => { - const deleteRequest = { - name, - }; - - return jobServiceClient.deleteBatchPredictionJob(deleteRequest); - }); - }); -}); diff --git a/samples/test/create-batch-prediction-job-video-object-tracking.test.js b/samples/test/create-batch-prediction-job-video-object-tracking.test.js deleted file mode 100644 index 5c3a1888..00000000 --- a/samples/test/create-batch-prediction-job-video-object-tracking.test.js +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const aiplatform = require('@google-cloud/aiplatform'); -const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', -}; - -const jobServiceClient = new aiplatform.v1.JobServiceClient(clientOptions); - -const batchPredictionDisplayName = `temp_create_batch_prediction_video_object_tracking_test${uuid()}`; -const modelId = '8609932509485989888'; -const gcsSourceUri = - 'gs://ucaip-samples-test-output/inputs/vot_batch_prediction_input.jsonl'; -const gcsDestinationOutputUriPrefix = 'gs://ucaip-samples-test-output/'; -const location = 'us-central1'; -const project = process.env.CAIP_PROJECT_ID; - -let batchPredictionJobId; - -describe('AI platform create batch prediction job video object tracking', () => { - it('should create a video object tracking batch prediction job', async () => { - const stdout = execSync( - `node ./create-batch-prediction-job-video-object-tracking.js \ - ${batchPredictionDisplayName} \ - ${modelId} ${gcsSourceUri} \ - ${gcsDestinationOutputUriPrefix} \ - ${project} ${location}`, - { - cwd, - } - ); - assert.match( - stdout, - /Create batch prediction job video object tracking response/ - ); - batchPredictionJobId = stdout - .split('/locations/us-central1/batchPredictionJobs/')[1] - .split('\n')[0]; - }); - after('should cancel delete the batch prediction job', async () => { - const name = jobServiceClient.batchPredictionJobPath( - project, - location, - batchPredictionJobId - ); - - const cancelRequest = { - name, - }; - - jobServiceClient.cancelBatchPredictionJob(cancelRequest).then(() => { - const deleteRequest = { - name, - }; - - return jobServiceClient.deleteBatchPredictionJob(deleteRequest); - }); - }); -}); diff --git a/samples/test/create-custom-job.test.js b/samples/test/create-custom-job.test.js deleted file mode 100644 index ac87d2e9..00000000 --- a/samples/test/create-custom-job.test.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const customJobDisplayName = `temp_create_custom_job_test${uuid()}`; -const containerImageUri = - 'gcr.io/ucaip-sample-tests/ucaip-training-test:latest'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -function parseResponse(stdout) { - let res = {}; - for (let i = 0; i < stdout.length; i++) { - if (stdout[i] === '{') { - res = JSON.parse(stdout.substr(i)); - break; - } - } - return res; -} - -let customJobId; - -describe('AI platform create custom job', async function () { - this.retries(2); - it('should create a new custom job', async () => { - const stdout = execSync( - `node ./create-custom-job.js ${customJobDisplayName} \ - ${containerImageUri} \ - ${project} ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Create custom job response/); - customJobId = parseResponse(stdout).name.split('/').pop(); - }); - - after('should cancel the customJob and delete it', async () => { - execSync( - `node ./cancel-custom-job.js ${customJobId} ${project} \ - ${location}`, - { - cwd, - } - ); - execSync( - `node ./delete-custom-job.js ${customJobId} ${project} \ - ${location}`, - { - cwd, - } - ); - }); -}); diff --git a/samples/test/create-dataset-image.test.js b/samples/test/create-dataset-image.test.js deleted file mode 100644 index bd9ea481..00000000 --- a/samples/test/create-dataset-image.test.js +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const datasetDisplayName = `temp_create_dataset_image_test_${uuid()}`; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -let datasetId; - -describe('AI platform create dataset image', () => { - it('should create a new image dataset in the parent resource', async () => { - const stdout = execSync( - `node ./create-dataset-image.js ${datasetDisplayName} ${project} \ - ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Create dataset image response/); - datasetId = stdout - .split('/locations/us-central1/datasets/')[1] - .split('\n')[0] - .split('/')[0]; - }); - after('should delete the created dataset', async () => { - execSync(`node ./delete-dataset.js ${datasetId} ${project} ${location}`, { - cwd, - }); - }); -}); diff --git a/samples/test/create-dataset-tabular-bigquery.test.js b/samples/test/create-dataset-tabular-bigquery.test.js deleted file mode 100644 index 829da9dd..00000000 --- a/samples/test/create-dataset-tabular-bigquery.test.js +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const datasetDisplayName = `temp_create_dataset_tables_bigquery_test_${uuid()}`; -const bigquerySourceUri = 'bq://ucaip-sample-tests.table_test.all_bq_types'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -let datasetId; - -describe('AI platform create dataset tabular bigquery', () => { - it('should create a new bigquery tabular dataset in the parent resource', async () => { - const stdout = execSync( - `node ./create-dataset-tabular-bigquery.js ${datasetDisplayName} \ - ${bigquerySourceUri} \ - ${project} ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Create dataset tabular bigquery response/); - datasetId = stdout - .split(`/locations/${location}/datasets/`)[1] - .split('/')[0] - .split('/')[0]; - }); - after('should delete created dataset', async () => { - execSync(`node ./delete-dataset.js ${datasetId} ${project} ${location}`, { - cwd, - }); - }); -}); diff --git a/samples/test/create-dataset-tabular-gcs.test.js b/samples/test/create-dataset-tabular-gcs.test.js deleted file mode 100644 index 08ab73a8..00000000 --- a/samples/test/create-dataset-tabular-gcs.test.js +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const datasetDisplayName = `temp_create_dataset_tables_gcs_test_${uuid()}`; -const gcsSourceUri = 'gs://cloud-ml-tables-data/bank-marketing.csv'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -let datasetId; - -describe('AI platform create dataset tabular gcs', () => { - it('should create a new gcs tabular dataset in the parent resource', async () => { - const stdout = execSync( - `node ./create-dataset-tabular-gcs.js ${datasetDisplayName} \ - ${gcsSourceUri} \ - ${project} ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Create dataset tabular gcs response/); - datasetId = stdout - .split('/locations/us-central1/datasets/')[1] - .split('/')[0] - .split('/')[0]; - }); - after('should delete created dataset', async () => { - execSync(`node ./delete-dataset.js ${datasetId} ${project} ${location}`, { - cwd, - }); - }); -}); diff --git a/samples/test/create-dataset-text.test.js b/samples/test/create-dataset-text.test.js deleted file mode 100644 index 43e84656..00000000 --- a/samples/test/create-dataset-text.test.js +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const displayName = `temp_create_dataset_text_test_${uuid()}`; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -let datasetId; - -describe('AI platform create dataset text', () => { - it('should create a new dataset in the parent resource', async () => { - const stdout = execSync( - `node ./create-dataset-text.js ${displayName} ${project} ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Create dataset text response/); - datasetId = stdout - .split('/locations/us-central1/datasets/')[1] - .split('\n')[0] - .split('/')[0]; - }); - after('should delete the created dataset', async () => { - execSync(`node ./delete-dataset.js ${datasetId} ${project} ${location}`, { - cwd, - }); - }); -}); diff --git a/samples/test/create-dataset-video.test.js b/samples/test/create-dataset-video.test.js deleted file mode 100644 index cae62a2a..00000000 --- a/samples/test/create-dataset-video.test.js +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const datasetDisplayName = `temp_create_dataset_video_test_${uuid()}`; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -let datasetId; - -describe('AI platform create dataset video', () => { - it('should create a new video dataset in the parent resource', async () => { - const stdout = execSync( - `node ./create-dataset-video.js ${datasetDisplayName} ${project} \ - ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Create dataset video response/); - datasetId = stdout - .split('/locations/us-central1/datasets/')[1] - .split('\n')[0] - .split('/')[0]; - }); - after('should delete the created dataset', async () => { - execSync(`node ./delete-dataset.js ${datasetId} ${project} ${location}`, { - cwd, - }); - }); -}); diff --git a/samples/test/create-dataset.test.js b/samples/test/create-dataset.test.js deleted file mode 100644 index 99075b54..00000000 --- a/samples/test/create-dataset.test.js +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const datasetDisplayName = `temp_create_dataset_test_${uuid()}`; -const metadataSchemaUri = - 'gs://google-cloud-aiplatform/schema/dataset/metadata/image_1.0.0.yaml'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -let datasetId; - -describe('AI platform create dataset', () => { - it('should create a new dataset in the parent resource', async () => { - const stdout = execSync( - `node ./create-dataset.js ${datasetDisplayName} ${metadataSchemaUri} \ - ${project} ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Create dataset response/); - datasetId = stdout - .split('/locations/us-central1/datasets/')[1] - .split('\n')[0] - .split('/')[0]; - }); - after('should delete created dataset', async () => { - execSync(`node ./delete-dataset.js ${datasetId} ${project} ${location}`, { - cwd, - }); - }); -}); diff --git a/samples/test/create-endpoint.test.js b/samples/test/create-endpoint.test.js deleted file mode 100644 index b989d96a..00000000 --- a/samples/test/create-endpoint.test.js +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const endpointDisplayName = `temp_create_endpoint_test_${uuid()}`; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; -let endpointId; - -describe('AI platform create endpoint', () => { - it('should create a new endpoint', async () => { - const stdout = execSync( - `node ./create-endpoint.js ${endpointDisplayName} ${project} \ - ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Create endpoint response/); - endpointId = stdout - .split('/locations/us-central1/endpoints/')[1] - .split('\n')[0] - .split('/')[0]; - }); - after('delete created endpoint', async () => { - execSync(`node ./delete-endpoint.js ${endpointId} ${project} ${location}`, { - cwd, - }); - }); -}); diff --git a/samples/test/create-featurestore-fixed-nodes-sample.test.js b/samples/test/create-featurestore-fixed-nodes-sample.test.js deleted file mode 100644 index 566a62fd..00000000 --- a/samples/test/create-featurestore-fixed-nodes-sample.test.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const {assert} = require('chai'); -const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; -const {after, describe, it} = require('mocha'); -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const project = process.env.CAIP_PROJECT_ID; -const featurestoreId = `featurestore_sample_${uuid() - .replace(/-/g, '_') - .slice(10, 20)}`; -const fixedNodeCount = 1; -const location = 'us-central1'; -const apiEndpoint = 'us-central1-aiplatform.googleapis.com'; - -// Instantiates a featurestore clients -const featurestoreServiceClient = new FeaturestoreServiceClient({ - apiEndpoint: apiEndpoint, -}); - -const deleteFeaturestore = async () => { - // Configure the name resource - const name = `projects/${project}/locations/${location}/featurestores/${featurestoreId}`; - - const request = { - name: name, - force: true, - }; - - // Delete Featurestore request - const [operation] = await featurestoreServiceClient.deleteFeaturestore( - request, - {timeout: 60000} - ); - await operation.promise(); -}; - -describe('AI platform create featurestore with fixed nodes', async function () { - this.retries(2); - it('should create a featurestore', async () => { - const stdout = execSync( - `node ./create-featurestore-fixed-nodes-sample.js ${project} ${featurestoreId} ${fixedNodeCount} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Create featurestore fixed nodes response/); - }); - after('should delete the created featurestore', async () => { - await deleteFeaturestore(); - }); -}); diff --git a/samples/test/create-featurestore-sample.test.js b/samples/test/create-featurestore-sample.test.js deleted file mode 100644 index cb66466c..00000000 --- a/samples/test/create-featurestore-sample.test.js +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const {assert} = require('chai'); -const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; -const {after, describe, it} = require('mocha'); -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const project = process.env.CAIP_PROJECT_ID; -const featurestoreId = `featurestore_sample_${uuid() - .replace(/-/g, '_') - .slice(10, 20)}`; -const minNodeCount = 1; -const maxNodeCount = 5; -const location = 'us-central1'; -const apiEndpoint = 'us-central1-aiplatform.googleapis.com'; - -// Instantiates a featurestore clients -const featurestoreServiceClient = new FeaturestoreServiceClient({ - apiEndpoint: apiEndpoint, -}); - -const deleteFeaturestore = async () => { - // Configure the name resource - const name = `projects/${project}/locations/${location}/featurestores/${featurestoreId}`; - - const request = { - name: name, - force: true, - }; - - // Delete Featurestore request - const [operation] = await featurestoreServiceClient.deleteFeaturestore( - request, - {timeout: 60000} - ); - await operation.promise(); -}; - -describe('AI platform create featurestore', async function () { - this.retries(2); - it('should create a featurestore', async () => { - const stdout = execSync( - `node ./create-featurestore-sample.js ${project} ${featurestoreId} ${minNodeCount} ${maxNodeCount} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Create featurestore response/); - }); - after('should delete the created featurestore', async () => { - await deleteFeaturestore(); - }); -}); diff --git a/samples/test/create-hyperparameter-tuning-job.test.js b/samples/test/create-hyperparameter-tuning-job.test.js deleted file mode 100644 index 5d376255..00000000 --- a/samples/test/create-hyperparameter-tuning-job.test.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright 2021 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const aiplatform = require('@google-cloud/aiplatform'); -const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', -}; - -const jobServiceClient = new aiplatform.v1.JobServiceClient(clientOptions); - -const containerImageUri = - 'gcr.io/ucaip-sample-tests/ucaip-training-test:latest'; -const displayName = `temp_create_hyperparameter_tuning_job_test${uuid()}`; -const location = 'us-central1'; -const project = process.env.CAIP_PROJECT_ID; - -let tuningJobId; - -describe('AI platform create hyperparameter tuning job', async function () { - this.retries(2); - it('should create a new hyperparameter tuning job', async () => { - const stdout = execSync( - `node ./create-hyperparameter-tuning-job.js ${displayName} ${containerImageUri} ${project} ${location}` - ); - assert.match( - stdout, - /\/locations\/us-central1\/hyperparameterTuningJobs\// - ); - tuningJobId = stdout - .split('/locations/us-central1/hyperparameterTuningJobs/')[1] - .split('\n')[0]; - }); - - after( - 'should cancel the hyperparameter tuning job and delete it', - async () => { - const name = jobServiceClient.hyperparameterTuningJobPath( - project, - location, - tuningJobId - ); - - const cancelRequest = { - name, - }; - - jobServiceClient.cancelHyperparameterTuningJob(cancelRequest).then(() => { - const deleteRequest = { - name, - }; - - return jobServiceClient.deleteHyperparameterTuningJob(deleteRequest); - }); - } - ); -}); diff --git a/samples/test/create-training-pipeline-image-classification.test.js b/samples/test/create-training-pipeline-image-classification.test.js deleted file mode 100644 index 29e66437..00000000 --- a/samples/test/create-training-pipeline-image-classification.test.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const aiplatform = require('@google-cloud/aiplatform'); -const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', -}; - -const pipelineServiceClient = new aiplatform.v1.PipelineServiceClient( - clientOptions -); - -const datasetId = '1084241610289446912'; -const modelDisplayName = `temp_create_training_pipeline_image_classification_model_test${uuid()}`; -const trainingPipelineDisplayName = `temp_create_training_pipeline_image_classification_test_${uuid()}`; -const location = 'us-central1'; -const project = process.env.CAIP_PROJECT_ID; - -let trainingPipelineId; - -describe('AI platform create training pipeline image classification', async function () { - this.retries(2); - it('should create a new image classification training pipeline', async () => { - const stdout = execSync( - `node ./create-training-pipeline-image-classification.js ${datasetId} ${modelDisplayName} ${trainingPipelineDisplayName} ${project} ${location}` - ); - assert.match(stdout, /\/locations\/us-central1\/trainingPipelines\//); - trainingPipelineId = stdout - .split('/locations/us-central1/trainingPipelines/')[1] - .split('\n')[0]; - }); - - after('should cancel the training pipeline and delete it', async () => { - const name = pipelineServiceClient.trainingPipelinePath( - project, - location, - trainingPipelineId - ); - - const cancelRequest = { - name, - }; - - pipelineServiceClient.cancelTrainingPipeline(cancelRequest).then(() => { - const deleteRequest = { - name, - }; - - return pipelineServiceClient.deleteTrainingPipeline(deleteRequest); - }); - }); -}); diff --git a/samples/test/create-training-pipeline-image-object-detection.test.js b/samples/test/create-training-pipeline-image-object-detection.test.js deleted file mode 100644 index e94ff323..00000000 --- a/samples/test/create-training-pipeline-image-object-detection.test.js +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const aiplatform = require('@google-cloud/aiplatform'); -const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', -}; - -const pipelineServiceClient = new aiplatform.v1.PipelineServiceClient( - clientOptions -); - -const datasetId = '3555732643297361920'; -const modelDisplayName = `temp_create_training_pipeline_image_object_detection_model_test${uuid()}`; -const trainingPipelineDisplayName = `temp_create_training_pipeline_image_object_detection_test_${uuid()}`; -const location = 'us-central1'; -const project = process.env.CAIP_PROJECT_ID; - -let trainingPipelineId; - -describe('AI platform create training pipeline image object detection', async function () { - this.retries(2); - it('should create a new image object detection training pipeline', async () => { - const stdout = execSync( - `node ./create-training-pipeline-image-object-detection.js \ - ${datasetId} \ - ${modelDisplayName} \ - ${trainingPipelineDisplayName} \ - ${project} ${location}`, - { - cwd, - } - ); - assert.match( - stdout, - /Create training pipeline image object detection response/ - ); - trainingPipelineId = stdout - .split('/locations/us-central1/trainingPipelines/')[1] - .split('\n')[0]; - }); - - after('should cancel the training pipeline and delete it', async () => { - const name = pipelineServiceClient.trainingPipelinePath( - project, - location, - trainingPipelineId - ); - - const cancelRequest = { - name, - }; - - pipelineServiceClient.cancelTrainingPipeline(cancelRequest).then(() => { - const deleteRequest = { - name, - }; - - return pipelineServiceClient.deleteTrainingPipeline(deleteRequest); - }); - }); -}); diff --git a/samples/test/create-training-pipeline-tabular-classification.test.js b/samples/test/create-training-pipeline-tabular-classification.test.js deleted file mode 100644 index 2409e343..00000000 --- a/samples/test/create-training-pipeline-tabular-classification.test.js +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const aiplatform = require('@google-cloud/aiplatform'); -const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', -}; - -const pipelineServiceClient = new aiplatform.v1.PipelineServiceClient( - clientOptions -); - -const datasetId = '2438839935709478912'; -const modelDisplayName = `temp_create_training_pipeline_tables_classification_model_test${uuid()}`; -const trainingPipelineDisplayName = `temp_create_training_pipeline_tables_classification_test_${uuid()}`; -const targetColumn = 'species'; -const location = 'us-central1'; -const project = process.env.CAIP_PROJECT_ID; - -let trainingPipelineId; - -describe('AI platform create training pipeline tables classification', async function () { - this.retries(2); - it('should create a new tables classification training pipeline', async () => { - const stdout = execSync( - `node ./create-training-pipeline-tabular-classification.js \ - ${datasetId} \ - ${modelDisplayName} \ - ${trainingPipelineDisplayName} \ - ${targetColumn} \ - ${project} ${location}`, - { - cwd, - } - ); - assert.match( - stdout, - /Create training pipeline tabular classification response/ - ); - trainingPipelineId = stdout - .split('/locations/us-central1/trainingPipelines/')[1] - .split('\n')[0]; - }); - - after('should cancel the training pipeline and delete it', async () => { - const name = pipelineServiceClient.trainingPipelinePath( - project, - location, - trainingPipelineId - ); - - const cancelRequest = { - name, - }; - - pipelineServiceClient.cancelTrainingPipeline(cancelRequest).then(() => { - const deleteRequest = { - name, - }; - - return pipelineServiceClient.deleteTrainingPipeline(deleteRequest); - }); - }); -}); diff --git a/samples/test/create-training-pipeline-tabular-regression.test.js b/samples/test/create-training-pipeline-tabular-regression.test.js deleted file mode 100644 index 4ded88a2..00000000 --- a/samples/test/create-training-pipeline-tabular-regression.test.js +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const aiplatform = require('@google-cloud/aiplatform'); -const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', -}; - -const pipelineServiceClient = new aiplatform.v1.PipelineServiceClient( - clientOptions -); - -const datasetId = '3019804287640272896'; -const modelDisplayName = `temp_create_training_pipeline_tables_regression_model_test${uuid()}`; -const trainingPipelineDisplayName = `temp_create_training_pipeline_tables_regression_test_${uuid()}`; -const targetColumn = 'FLOAT_5000unique_REQUIRED'; -const location = 'us-central1'; -const project = process.env.CAIP_PROJECT_ID; - -let trainingPipelineId; - -describe('AI platform create training pipeline tabular regression', async function () { - this.retries(2); - it('should create a new tabular regression training pipeline', async () => { - const stdout = execSync( - `node ./create-training-pipeline-tabular-regression.js \ - ${datasetId} \ - ${modelDisplayName} \ - ${trainingPipelineDisplayName} \ - ${targetColumn} \ - ${project} ${location}`, - { - cwd, - } - ); - assert.match( - stdout, - /Create training pipeline tabular regression response/ - ); - trainingPipelineId = stdout - .split('/locations/us-central1/trainingPipelines/')[1] - .split('\n')[0]; - }); - - after('should cancel the training pipeline and delete it', async () => { - const name = pipelineServiceClient.trainingPipelinePath( - project, - location, - trainingPipelineId - ); - - const cancelRequest = { - name, - }; - - pipelineServiceClient.cancelTrainingPipeline(cancelRequest).then(() => { - const deleteRequest = { - name, - }; - - return pipelineServiceClient.deleteTrainingPipeline(deleteRequest); - }); - }); -}); diff --git a/samples/test/create-training-pipeline-text-classification.test.js b/samples/test/create-training-pipeline-text-classification.test.js deleted file mode 100644 index 0e32c2f5..00000000 --- a/samples/test/create-training-pipeline-text-classification.test.js +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const aiplatform = require('@google-cloud/aiplatform'); -const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', -}; - -const pipelineServiceClient = new aiplatform.v1.PipelineServiceClient( - clientOptions -); - -const datasetId = '7051300010322821120'; -const modelDisplayName = `temp_create_training_pipeline_text_classification_model_test${uuid()}`; -const trainingPipelineDisplayName = `temp_create_training_pipeline_text_classification_test_${uuid()}`; -const location = 'us-central1'; -const project = process.env.CAIP_PROJECT_ID; - -let trainingPipelineId; - -describe('AI platform create training pipeline text classification', async function () { - this.retries(2); - it('should create a new text classification training pipeline', async () => { - const stdout = execSync( - `node ./create-training-pipeline-text-classification.js \ - ${datasetId} \ - ${modelDisplayName} \ - ${trainingPipelineDisplayName} \ - ${project} ${location}`, - { - cwd, - } - ); - assert.match( - stdout, - /Create training pipeline text classification response/ - ); - trainingPipelineId = stdout - .split('/locations/us-central1/trainingPipelines/')[1] - .split('\n')[0]; - }); - after('should cancel the training pipeline and delete it', async () => { - const name = pipelineServiceClient.trainingPipelinePath( - project, - location, - trainingPipelineId - ); - - const cancelRequest = { - name, - }; - - pipelineServiceClient.cancelTrainingPipeline(cancelRequest).then(() => { - const deleteRequest = { - name, - }; - - return pipelineServiceClient.deleteTrainingPipeline(deleteRequest); - }); - }); -}); diff --git a/samples/test/create-training-pipeline-text-entity-extraction.test.js b/samples/test/create-training-pipeline-text-entity-extraction.test.js deleted file mode 100644 index 01080bb0..00000000 --- a/samples/test/create-training-pipeline-text-entity-extraction.test.js +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const aiplatform = require('@google-cloud/aiplatform'); -const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', -}; - -const pipelineServiceClient = new aiplatform.v1.PipelineServiceClient( - clientOptions -); - -const datasetId = '6203215905493614592'; -const modelDisplayName = `temp_create_training_pipeline_entity_extraction_model_test${uuid()}`; -const trainingPipelineDisplayName = `temp_create_training_pipeline_entity_extraction_test_${uuid()}`; -const location = 'us-central1'; -const project = process.env.CAIP_PROJECT_ID; - -let trainingPipelineId; - -describe('AI platform create training pipeline text entity extraction', async function () { - this.retries(2); - it('should create a new text entity extraction training pipeline', async () => { - const stdout = execSync( - `node ./create-training-pipeline-text-entity-extraction.js \ - ${datasetId} \ - ${modelDisplayName} \ - ${trainingPipelineDisplayName} \ - ${project} ${location}`, - { - cwd, - } - ); - assert.match( - stdout, - /Create training pipeline text entity extraction response/ - ); - trainingPipelineId = stdout - .split('/locations/us-central1/trainingPipelines/')[1] - .split('\n')[0]; - }); - after('should cancel the training pipeline and delete it', async () => { - const name = pipelineServiceClient.trainingPipelinePath( - project, - location, - trainingPipelineId - ); - - const cancelRequest = { - name, - }; - - pipelineServiceClient.cancelTrainingPipeline(cancelRequest).then(() => { - const deleteRequest = { - name, - }; - - return pipelineServiceClient.deleteTrainingPipeline(deleteRequest); - }); - }); -}); diff --git a/samples/test/create-training-pipeline-text-sentiment-analysis.test.js b/samples/test/create-training-pipeline-text-sentiment-analysis.test.js deleted file mode 100644 index e8492fa1..00000000 --- a/samples/test/create-training-pipeline-text-sentiment-analysis.test.js +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const aiplatform = require('@google-cloud/aiplatform'); -const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', -}; - -const pipelineServiceClient = new aiplatform.v1.PipelineServiceClient( - clientOptions -); - -const datasetId = '5148529167758786560'; -const modelDisplayName = `temp_create_training_pipeline_sentiment_analysis_model_test${uuid()}`; -const trainingPipelineDisplayName = `temp_create_training_pipeline_sentiment_analysis_test_${uuid()}`; -const location = 'us-central1'; -const project = process.env.CAIP_PROJECT_ID; - -let trainingPipelineId; - -describe('AI platform create training pipeline text sentiment analysis', async function () { - this.retries(2); - it('should create a new text sentiment analysis training pipeline', async () => { - const stdout = execSync( - `node ./create-training-pipeline-text-sentiment-analysis.js \ - ${datasetId} \ - ${modelDisplayName} \ - ${trainingPipelineDisplayName} \ - ${project} ${location}`, - { - cwd, - } - ); - assert.match( - stdout, - /Create training pipeline text sentiment analysis response/ - ); - trainingPipelineId = stdout - .split('/locations/us-central1/trainingPipelines/')[1] - .split('\n')[0]; - }); - after('should cancel the training pipeline and delete it', async () => { - const name = pipelineServiceClient.trainingPipelinePath( - project, - location, - trainingPipelineId - ); - - const cancelRequest = { - name, - }; - - pipelineServiceClient.cancelTrainingPipeline(cancelRequest).then(() => { - const deleteRequest = { - name, - }; - - return pipelineServiceClient.deleteTrainingPipeline(deleteRequest); - }); - }); -}); diff --git a/samples/test/create-training-pipeline-video-action-recognition.test.js b/samples/test/create-training-pipeline-video-action-recognition.test.js deleted file mode 100644 index 33d5f472..00000000 --- a/samples/test/create-training-pipeline-video-action-recognition.test.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const aiplatform = require('@google-cloud/aiplatform'); -const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', -}; - -const pipelineServiceClient = new aiplatform.v1.PipelineServiceClient( - clientOptions -); - -const datasetId = '6881957627459272704'; -const modelDisplayName = `temp_create_training_pipeline_node_var_model_test_${uuid()}`; -const trainingPipelineDisplayName = `temp_create_training_pipeline_node_var_test_${uuid()}`; -const location = 'us-central1'; -const project = process.env.CAIP_PROJECT_ID; - -let trainingPipelineId; - -describe('AI platform create training pipeline video action recognition', async function () { - this.retries(2); - it('should create a new video action-recognition training pipeline', async () => { - const stdout = execSync( - `node ./create-training-pipeline-video-action-recognition.js ${datasetId} ${modelDisplayName} ${trainingPipelineDisplayName} ${project} ${location}` - ); - assert.match( - stdout, - /Create training pipeline video action recognition response/ - ); - trainingPipelineId = stdout - .split('/locations/us-central1/trainingPipelines/')[1] - .split('\n')[0]; - }); - - after('should cancel the training pipeline and delete it', async () => { - const name = pipelineServiceClient.trainingPipelinePath( - project, - location, - trainingPipelineId - ); - - const cancelRequest = { - name, - }; - - pipelineServiceClient.cancelTrainingPipeline(cancelRequest).then(() => { - const deleteRequest = { - name, - }; - - return pipelineServiceClient.deleteTrainingPipeline(deleteRequest); - }); - }); -}); diff --git a/samples/test/create-training-pipeline-video-classification.test.js b/samples/test/create-training-pipeline-video-classification.test.js deleted file mode 100644 index 5a818b6f..00000000 --- a/samples/test/create-training-pipeline-video-classification.test.js +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const aiplatform = require('@google-cloud/aiplatform'); -const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', -}; - -const pipelineServiceClient = new aiplatform.v1.PipelineServiceClient( - clientOptions -); - -const datasetId = '3757409464110546944'; -const modelDisplayName = `temp_create_training_pipeline_video_classification_model_test${uuid()}`; -const trainingPipelineDisplayName = `temp_create_training_pipeline_video_classification_test_${uuid()}`; -const location = 'us-central1'; -const project = process.env.CAIP_PROJECT_ID; - -let trainingPipelineId; - -describe('AI platform create training pipeline video classification', async function () { - this.retries(2); - it('should create a new video classification training pipeline', async () => { - const stdout = execSync( - `node ./create-training-pipeline-video-classification.js ${datasetId} \ - ${modelDisplayName} \ - ${trainingPipelineDisplayName} \ - ${project} ${location}`, - { - cwd, - } - ); - assert.match( - stdout, - /Create training pipeline video classification response/ - ); - trainingPipelineId = stdout - .split('/locations/us-central1/trainingPipelines/')[1] - .split('\n')[0]; - }); - - after('should cancel the training pipeline and delete it', async () => { - const name = pipelineServiceClient.trainingPipelinePath( - project, - location, - trainingPipelineId - ); - - const cancelRequest = { - name, - }; - - pipelineServiceClient.cancelTrainingPipeline(cancelRequest).then(() => { - const deleteRequest = { - name, - }; - - return pipelineServiceClient.deleteTrainingPipeline(deleteRequest); - }); - }); -}); diff --git a/samples/test/create-training-pipeline-video-object-tracking.test.js b/samples/test/create-training-pipeline-video-object-tracking.test.js deleted file mode 100644 index b6a89336..00000000 --- a/samples/test/create-training-pipeline-video-object-tracking.test.js +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const aiplatform = require('@google-cloud/aiplatform'); -const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', -}; - -const pipelineServiceClient = new aiplatform.v1.PipelineServiceClient( - clientOptions -); - -const datasetId = '1138566280794603520'; -const modelDisplayName = `temp_create_training_pipeline_video_object_tracking_model_test${uuid()}`; -const trainingPipelineDisplayName = `temp_create_training_pipeline_video_object_tracking_test_${uuid()}`; -const location = 'us-central1'; -const project = process.env.CAIP_PROJECT_ID; - -let trainingPipelineId; - -describe('AI platform create training pipeline object tracking', async function () { - this.retries(2); - it('should create a new object tracking training pipeline', async () => { - const stdout = execSync( - `node ./create-training-pipeline-video-object-tracking.js \ - ${datasetId} ${modelDisplayName} \ - ${trainingPipelineDisplayName} \ - ${project} ${location}`, - { - cwd, - } - ); - assert.match( - stdout, - /Create training pipeline video object tracking response/ - ); - trainingPipelineId = stdout - .split('/locations/us-central1/trainingPipelines/')[1] - .split('\n')[0]; - }); - - after('should cancel the training pipeline and delete it', async () => { - const name = pipelineServiceClient.trainingPipelinePath( - project, - location, - trainingPipelineId - ); - - const cancelRequest = { - name, - }; - - pipelineServiceClient.cancelTrainingPipeline(cancelRequest).then(() => { - const deleteRequest = { - name, - }; - - return pipelineServiceClient.deleteTrainingPipeline(deleteRequest); - }); - }); -}); diff --git a/samples/test/deploy-model-custom-trained-model.test.js b/samples/test/deploy-model-custom-trained-model.test.js deleted file mode 100644 index e5451871..00000000 --- a/samples/test/deploy-model-custom-trained-model.test.js +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 2021 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const endpointDisplayName = `temp_create_endpoint_test_${uuid()}`; - -const modelId = '6430031960164270080'; -const deployedModelDisplayName = `temp_deploy_model_custom_model_test_${uuid()}`; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; -let deployedModelId; -let endpointId; - -describe('AI platform deploy model custom model', () => { - it('should deploy the custom model in the specified endpoint', async () => { - const endOut = execSync( - `node ./create-endpoint.js ${endpointDisplayName} ${project} \ - ${location}` - ); - endpointId = endOut - .split('/locations/us-central1/endpoints/')[1] - .split('\n')[0] - .split('/')[0]; - const stdout = execSync( - `node ./deploy-model-custom-trained-model.js ${modelId} \ - ${deployedModelDisplayName} \ - ${endpointId} \ - ${project} ${location}` - ); - assert.match(stdout, /Deploy model response/); - deployedModelId = stdout.split('Id : ')[1].split('\n')[0]; - }); - - after('should undeploy the deployed custom model', async () => { - execSync( - `node ./undeploy-model.js ${deployedModelId} ${endpointId} ${project} \ - ${location}` - ); - execSync(`node ./delete-endpoint.js ${endpointId} ${project} ${location}`); - }); -}); diff --git a/samples/test/deploy-model.test.js b/samples/test/deploy-model.test.js deleted file mode 100644 index dcd84b91..00000000 --- a/samples/test/deploy-model.test.js +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const endpointDisplayName = `temp_create_endpoint_test_${uuid()}`; - -const modelId = '4190810559500779520'; -const deployedModelDisplayName = `temp_deploy_model_test_${uuid()}`; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; -let deployedModelId; -let endpointId; - -describe('AI platform deploy model', () => { - it('should deploy the model in the specified endpoint', async () => { - const endOut = - execSync(`node ./create-endpoint.js ${endpointDisplayName} ${project} \ - ${location}`); - endpointId = endOut - .split('/locations/us-central1/endpoints/')[1] - .split('\n')[0] - .split('/')[0]; - const stdout = - execSync(`node ./deploy-model.js ${modelId} ${deployedModelDisplayName} \ - ${endpointId} \ - ${project} ${location}`); - assert.match(stdout, /Deploy model response/); - deployedModelId = stdout.split('Id : ')[1].split('\n')[0]; - }); - - after('should undeploy the deployed model', async () => { - // If test failed, the attempt to undeploy will fail too. - // Check to see whether we have a deployedModelId - if (deployedModelId === undefined) { - return; - } - - execSync(`node ./undeploy-model.js ${deployedModelId} ${endpointId} ${project} \ - ${location}`); - execSync(`node ./delete-endpoint.js ${endpointId} ${project} ${location}`); - }); -}); diff --git a/samples/test/entity-type-samples.test.js b/samples/test/entity-type-samples.test.js deleted file mode 100644 index 50b7dc90..00000000 --- a/samples/test/entity-type-samples.test.js +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const {assert} = require('chai'); -const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; -const {after, before, describe, it} = require('mocha'); -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const project = process.env.CAIP_PROJECT_ID; -const featurestoreId = `featurestore_sample_${uuid() - .replace(/-/g, '_') - .slice(10, 20)}`; -const fixedNodeCount = 1; -const entityTypeId1 = `entity_type_sample_${uuid() - .replace(/-/g, '_') - .slice(10, 20)}`; -const entityTypeId2 = `entity_type_sample_${uuid() - .replace(/-/g, '_') - .slice(10, 20)}`; -const entityType1Description = - 'created during the entity type 1 sample testing'; -const entityType2Description = - 'created during the entity type 2 sample testing'; -const duration = 86400; -const updatedDuration = 172800; -const location = 'us-central1'; -const apiEndpoint = 'us-central1-aiplatform.googleapis.com'; - -// Instantiates a featurestore clients -const featurestoreServiceClient = new FeaturestoreServiceClient({ - apiEndpoint: apiEndpoint, -}); - -const deleteFeaturestore = async () => { - // Configure the name resource - const name = `projects/${project}/locations/${location}/featurestores/${featurestoreId}`; - - const request = { - name: name, - force: true, - }; - - // Delete Featurestore request - const [operation] = await featurestoreServiceClient.deleteFeaturestore( - request, - {timeout: 60000} - ); - await operation.promise(); -}; - -describe('AI platform entity type api samples test', async function () { - this.retries(2); - before('should create the featurestore', async () => { - execSync( - `node ./create-featurestore-fixed-nodes-sample.js ${project} ${featurestoreId} ${fixedNodeCount} ${location} ${apiEndpoint}` - ); - }); - it('should create the entity type', async () => { - const stdout = execSync( - `node ./create-entity-type-sample.js ${project} ${featurestoreId} ${entityTypeId1} "${entityType1Description}" ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Create entity type response/); - }); - it('should create the entity type with monitoring', async () => { - const stdout = execSync( - `node ./create-entity-type-monitoring-sample.js ${project} ${featurestoreId} ${entityTypeId2} "${entityType2Description}" ${duration} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Create entity type monitoring response/); - }); - it('should get the created entity type', async () => { - const stdout = execSync( - `node ./get-entity-type-sample.js ${project} ${featurestoreId} ${entityTypeId1} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Get entity type response/); - }); - it('should list the entity types', async () => { - const stdout = execSync( - `node ./list-entity-types-sample.js ${project} ${featurestoreId} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /List entity types response/); - }); - it('should list the entity types asynchronously', async () => { - const stdout = execSync( - `node ./list-entity-types-async-sample.js ${project} ${featurestoreId} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /List entity types async response/); - }); - it('should list the entity types in streaming', async () => { - const stdout = execSync( - `node ./list-entity-types-stream-sample.js ${project} ${featurestoreId} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /List entity types stream response/); - }); - it('should update the entity type', async () => { - const stdout = execSync( - `node ./update-entity-type-sample.js ${project} ${featurestoreId} ${entityTypeId1} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Update entity type response/); - }); - it('should update the entity type monitoring', async () => { - const stdout = execSync( - `node ./update-entity-type-monitoring-sample.js ${project} ${featurestoreId} ${entityTypeId2} ${updatedDuration} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Update entity type monitoring response/); - }); - it('should delete the created entity type', async () => { - const stdout = execSync( - `node ./delete-entity-type-sample.js ${project} ${featurestoreId} ${entityTypeId1} true ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Delete entity type response/); - }); - after('should delete the created featurestore', async () => { - await deleteFeaturestore(); - }); -}); diff --git a/samples/test/export-model-tabular-classification.test.js b/samples/test/export-model-tabular-classification.test.js deleted file mode 100644 index c929b4d2..00000000 --- a/samples/test/export-model-tabular-classification.test.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const gcsDestinationOutputUriPrefix = 'gs://ucaip-samples-test-output'; -const modelId = '6036688272397172736'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -describe('AI platform export data tabular classification', () => { - it('should export model', async () => { - const stdout = execSync( - `node ./export-model-tabular-classification.js \ - ${gcsDestinationOutputUriPrefix} \ - ${modelId} \ - ${project} \ - ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Export model response/); - }); -}); diff --git a/samples/test/feature-samples.test.js b/samples/test/feature-samples.test.js deleted file mode 100644 index b2de671b..00000000 --- a/samples/test/feature-samples.test.js +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const {assert} = require('chai'); -const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; -const {after, before, describe, it} = require('mocha'); -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const project = process.env.CAIP_PROJECT_ID; -const featurestoreId = `featurestore_sample_${uuid() - .replace(/-/g, '_') - .slice(10, 20)}`; -const fixedNodeCount = 1; -const entityTypeId = `entity_type_sample_${uuid() - .replace(/-/g, '_') - .slice(10, 20)}`; -const entityTypeDescription = 'created during create feature sample testing'; -const featureId = `feature_sample_${uuid().replace(/-/g, '_').slice(10, 20)}`; -const featureDescription = 'created during create feature sample testing'; -const valueType = 'STRING'; -const query = 'valueType=STRING'; -const location = 'us-central1'; -const apiEndpoint = 'us-central1-aiplatform.googleapis.com'; - -// Instantiates a featurestore clients -const featurestoreServiceClient = new FeaturestoreServiceClient({ - apiEndpoint: apiEndpoint, -}); - -const createFeaturestore = async () => { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}`; - - const featurestore = { - onlineServingConfig: { - fixedNodeCount: fixedNodeCount, - }, - }; - - const request = { - parent: parent, - featurestore: featurestore, - featurestoreId: featurestoreId, - }; - - // Create Featurestore request - const [operation] = await featurestoreServiceClient.createFeaturestore( - request, - {timeout: 900000} - ); - await operation.promise(); -}; - -const deleteFeaturestore = async () => { - // Configure the name resource - const name = `projects/${project}/locations/${location}/featurestores/${featurestoreId}`; - - const request = { - name: name, - force: true, - }; - - // Delete Featurestore request - const [operation] = await featurestoreServiceClient.deleteFeaturestore( - request, - {timeout: 60000} - ); - await operation.promise(); -}; - -const createEntityType = async () => { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}/featurestores/${featurestoreId}`; - - const entityType = { - description: entityTypeDescription, - }; - - const request = { - parent: parent, - entityTypeId: entityTypeId, - entityType: entityType, - }; - - // CreateEntityType request - const [operation] = await featurestoreServiceClient.createEntityType( - request, - {timeout: 300000} - ); - await operation.promise(); -}; - -describe('AI platform feature api samples', async function () { - this.retries(2); - before('should create the featurestore', async () => { - await createFeaturestore(); - }); - before('should create the entity type', async () => { - await createEntityType(); - }); - it('should create feature', async () => { - const stdout = execSync( - `node ./create-feature-sample.js ${project} ${featurestoreId} ${entityTypeId} ${featureId} ${valueType} "${featureDescription}" ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Create feature response/); - }); - it('should batch create features', async () => { - const stdout = execSync( - `node ./batch-create-features-sample.js ${project} ${featurestoreId} ${entityTypeId} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Batch create features response/); - }); - it('should get the created feature', async () => { - const stdout = execSync( - `node ./get-feature-sample.js ${project} ${featurestoreId} ${entityTypeId} ${featureId} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Get feature response/); - }); - it('should list all the features', async () => { - const stdout = execSync( - `node ./list-features-sample.js ${project} ${featurestoreId} ${entityTypeId} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /List features response/); - }); - it('should list all the features asynchronously', async () => { - const stdout = execSync( - `node ./list-features-async-sample.js ${project} ${featurestoreId} ${entityTypeId} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /List features async response/); - }); - it('should list all the features in streaming', async () => { - const stdout = execSync( - `node ./list-features-stream-sample.js ${project} ${featurestoreId} ${entityTypeId} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /List features stream response/); - }); - it('should search features', async () => { - const stdout = execSync( - `node ./search-features-sample.js ${project} "${query}" ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Search features response/); - }); - it('should search features asynchronously', async () => { - const stdout = execSync( - `node ./search-features-async-sample.js ${project} "${query}" ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Search features async response/); - }); - it('should search features in streaming', async () => { - const stdout = execSync( - `node ./search-features-stream-sample.js ${project} "${query}" ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Search features stream response/); - }); - it('should update the feature', async () => { - const stdout = execSync( - `node ./update-feature-sample.js ${project} ${featurestoreId} ${entityTypeId} ${featureId} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Update feature response/); - }); - it('should delete the created feature', async () => { - const stdout = execSync( - `node ./delete-feature-sample.js ${project} ${featurestoreId} ${entityTypeId} ${featureId} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Delete feature response/); - }); - after('should delete the created featurestore', async () => { - await deleteFeaturestore(); - }); -}); diff --git a/samples/test/feature-values-samples.test.js b/samples/test/feature-values-samples.test.js deleted file mode 100644 index 17ce0946..00000000 --- a/samples/test/feature-values-samples.test.js +++ /dev/null @@ -1,306 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const {BigQuery} = require('@google-cloud/bigquery'); -const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; -const {assert} = require('chai'); -const {after, before, describe, it} = require('mocha'); -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const project = process.env.CAIP_PROJECT_ID; -const datasetName = `movie_predictions_nodejs_${uuid() - .replace(/-/g, '_') - .slice(10, 20)}`; -const batchReadTableName = 'batch_serving_table'; -const exportTableName = 'export_table'; -const exportSnapshotTableName = 'export_snapshot_table'; - -const featurestoreId = `featurestore_sample_${uuid() - .replace(/-/g, '_') - .slice(10, 20)}`; -const fixedNodeCount = 1; - -const entityTypeId1 = 'perm_users'; -const entityTypeDescription1 = 'Users Entity'; -const entityTypeId2 = 'perm_movies'; -const entityTypeDescription2 = 'Movies Entity'; -const entityId = 'alice'; - -const avroGcsUri1 = - 'gs://cloud-samples-data-us-central1/vertex-ai/feature-store/datasets/users.avro'; -const entityIdField1 = 'user_id'; - -const avroGcsUri2 = - 'gs://cloud-samples-data-us-central1/vertex-ai/feature-store/datasets/movies.avro'; -const entityIdField2 = 'movie_id'; - -const featureTimeField = 'update_time'; -const workerCount = 2; -const batchReadDestinationTableUri = `bq://${project}.${datasetName}.${batchReadTableName}`; -const inputCsvFile = - 'gs://cloud-samples-data-us-central1/vertex-ai/feature-store/datasets/movie_prediction_perm.csv'; - -const timestamp = 1629493102; -const exportDestinationTableUri = `bq://${project}.${datasetName}.${exportTableName}`; -const exportSnapshotDestinationTableUri = `bq://${project}.${datasetName}.${exportSnapshotTableName}`; - -const location = 'us-central1'; -const apiEndpoint = 'us-central1-aiplatform.googleapis.com'; - -// Instantiates a featurestore and bigquery clients -const featurestoreServiceClient = new FeaturestoreServiceClient({ - apiEndpoint: apiEndpoint, -}); -const bigqueryClient = new BigQuery({projectId: project}); - -const createEntityType = async (entityTypeId, entityTypeDescription) => { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}/featurestores/${featurestoreId}`; - - const entityType = { - description: entityTypeDescription, - }; - - const request = { - parent: parent, - entityTypeId: entityTypeId, - entityType: entityType, - }; - - // CreateEntityType request - const [operation] = await featurestoreServiceClient.createEntityType( - request, - {timeout: 300000} - ); - await operation.promise(); -}; - -const createPermUsersFeatures = async () => { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId1}`; - - const ageFeature = { - valueType: 'INT64', - description: 'User age', - }; - - const ageFeatureRequest = { - feature: ageFeature, - featureId: 'age', - }; - - const genderFeature = { - valueType: 'STRING', - description: 'User gender', - }; - - const genderFeatureRequest = { - feature: genderFeature, - featureId: 'gender', - }; - - const likedGenresFeature = { - valueType: 'STRING_ARRAY', - description: 'An array of genres that this user liked', - }; - - const likedGenresFeatureRequest = { - feature: likedGenresFeature, - featureId: 'liked_genres', - }; - - const requests = [ - ageFeatureRequest, - genderFeatureRequest, - likedGenresFeatureRequest, - ]; - - const request = { - parent: parent, - requests: requests, - }; - - // Batch Create Features request - const [operation] = await featurestoreServiceClient.batchCreateFeatures( - request, - {timeout: 300000} - ); - await operation.promise(); -}; - -const createPermMoviesFeatures = async () => { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId2}`; - - const titleFeatureRequest = { - feature: { - valueType: 'STRING', - description: 'The title of the movie', - }, - featureId: 'title', - }; - - const genresFeatureRequest = { - feature: { - valueType: 'STRING', - description: 'The genres of the movie', - }, - featureId: 'genres', - }; - - const averageRatingFeatureRequest = { - feature: { - valueType: 'DOUBLE', - description: 'The average rating for the movie, range is [1.0-5.0]', - }, - featureId: 'average_rating', - }; - - const requests = [ - titleFeatureRequest, - genresFeatureRequest, - averageRatingFeatureRequest, - ]; - - const request = { - parent: parent, - requests: requests, - }; - - // Batch Create Features request - const [operation] = await featurestoreServiceClient.batchCreateFeatures( - request, - {timeout: 300000} - ); - await operation.promise(); -}; - -const importPermMoviesFeatures = async () => { - // Configure the entityType resource - const entityType = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId2}`; - - const avroSource = { - gcsSource: { - uris: [avroGcsUri2], - }, - }; - - const featureSpecs = [{id: 'title'}, {id: 'genres'}, {id: 'average_rating'}]; - - const request = { - entityType: entityType, - avroSource: avroSource, - entityIdField: entityIdField2, - featureSpecs: featureSpecs, - featureTimeField: featureTimeField, - workerCount: workerCount, - }; - - // Import Feature Values Request - const [operation] = await featurestoreServiceClient.importFeatureValues( - request, - {timeout: 300000} - ); - await operation.promise(); -}; - -const deleteFeaturestore = async () => { - // Configure the name resource - const name = `projects/${project}/locations/${location}/featurestores/${featurestoreId}`; - - const request = { - name: name, - force: true, - }; - - // Delete Featurestore request - const [operation] = await featurestoreServiceClient.deleteFeaturestore( - request, - {timeout: 60000} - ); - await operation.promise(); -}; - -describe('AI platform feature values apis', async function () { - this.retries(2); - before('should create the BigQuery Dataset', async () => { - await bigqueryClient.createDataset(datasetName, location); - }); - before('should create the featurestore', async () => { - execSync( - `node ./create-featurestore-fixed-nodes-sample.js ${project} ${featurestoreId} ${fixedNodeCount} ${location} ${apiEndpoint}` - ); - }); - before('should create the perm_users entity type', async () => { - await createEntityType(entityTypeId1, entityTypeDescription1); - }); - before('should create the perm_movies entity type', async () => { - await createEntityType(entityTypeId2, entityTypeDescription2); - }); - before('should create the perm_movies batch features', async () => { - await createPermMoviesFeatures(); - }); - before('should create the perm_users batch features', async () => { - await createPermUsersFeatures(); - }); - before('should import perm_movies feature values', async () => { - await importPermMoviesFeatures(); - }); - it('should import feature values', async () => { - const stdout = execSync( - `node ./import-feature-values-sample.js ${project} ${featurestoreId} ${entityTypeId1} "${avroGcsUri1}" ${entityIdField1} ${featureTimeField} ${workerCount} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Import feature values response/); - }); - it('should batch read feature values', async () => { - const stdout = execSync( - `node ./batch-read-feature-values-sample.js ${project} ${featurestoreId} ${inputCsvFile} "${batchReadDestinationTableUri}" ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Batch read feature values response/); - }); - it('should read feature values', async () => { - const stdout = execSync( - `node ./read-feature-values-sample.js ${project} ${featurestoreId} ${entityTypeId1} ${entityId} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Read feature values response/); - }); - it('should export feature values', async () => { - const stdout = execSync( - `node ./export-feature-values-sample.js ${project} ${featurestoreId} ${entityTypeId1} "${exportDestinationTableUri}" ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Export feature values response/); - }); - it('should export feature values using snapshot', async () => { - const stdout = execSync( - `node ./export-feature-values-snapshot-sample.js ${project} ${featurestoreId} ${entityTypeId1} "${exportSnapshotDestinationTableUri}" ${timestamp} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Export feature values snapshot response/); - }); - after('should delete the created featurestore', async () => { - await deleteFeaturestore(); - }); - - after('should delete the created dataset', async () => { - // Create a reference to the existing dataset - const dataset = bigqueryClient.dataset(datasetName); - // Delete the dataset and its contents - await dataset.delete({force: true}); - }); -}); diff --git a/samples/test/featurestore-samples.test.js b/samples/test/featurestore-samples.test.js deleted file mode 100644 index c759ba53..00000000 --- a/samples/test/featurestore-samples.test.js +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const {assert} = require('chai'); -const {after, before, describe, it} = require('mocha'); -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const project = process.env.CAIP_PROJECT_ID; -const featurestoreId1 = `featurestore_sample_${uuid() - .replace(/-/g, '_') - .slice(10, 20)}`; -const featurestoreId2 = `featurestore_sample_${uuid() - .replace(/-/g, '_') - .slice(10, 20)}`; - -const fixedNodeCount = 1; -const updatedFixedNodeCount = 3; -const minNodeCount = 1; -const maxNodeCount = 3; -const updatedMinNodeCount = 2; -const updatedMaxNodeCount = 4; -const location = 'us-central1'; -const apiEndpoint = 'us-central1-aiplatform.googleapis.com'; - -describe('AI platform featurestore api samples test', async function () { - this.retries(2); - before('should create a featurestore with fixed nodes', async () => { - execSync( - `node ./create-featurestore-fixed-nodes-sample.js ${project} ${featurestoreId1} ${fixedNodeCount} ${location} ${apiEndpoint}` - ); - }); - before('should create a featurestore with autoscaling', async () => { - execSync( - `node ./create-featurestore-sample.js ${project} ${featurestoreId2} ${minNodeCount} ${maxNodeCount} ${location} ${apiEndpoint}` - ); - }); - it('should get the featurestore', async () => { - const stdout = execSync( - `node ./get-featurestore-sample.js ${project} ${featurestoreId1} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Get featurestore response/); - }); - it('should list the featurestores', async () => { - const stdout = execSync( - `node ./list-featurestores-sample.js ${project} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /List featurestores response/); - }); - it('should list the featurestores asynchronously', async () => { - const stdout = execSync( - `node ./list-featurestores-async-sample.js ${project} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /List featurestores async response/); - }); - it('should list the featurestores in streaming', async () => { - const stdout = execSync( - `node ./list-featurestores-stream-sample.js ${project} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /List featurestores stream response/); - }); - it('should update featurestores fixed nodes', async () => { - const stdout = execSync( - `node ./update-featurestore-fixed-nodes-sample.js ${project} ${featurestoreId1} ${updatedFixedNodeCount} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Update featurestore fixed nodes response/); - }); - it('should update featurestore autoscaling', async () => { - const stdout = execSync( - `node ./update-featurestore-sample.js ${project} ${featurestoreId2} ${updatedMinNodeCount} ${updatedMaxNodeCount} ${location} ${apiEndpoint}` - ); - assert.match(stdout, /Update featurestore response/); - }); - it('should delete the created featurestore', async () => { - const stdout = execSync( - `node ./delete-featurestore-sample.js ${project} ${featurestoreId1} true ${location}` - ); - assert.match(stdout, /Delete featurestore response/); - }); - after('should delete the created featurestore 2', async () => { - execSync( - `node ./delete-featurestore-sample.js ${project} ${featurestoreId2} true ${location}` - ); - }); -}); diff --git a/samples/test/get-custom-job.test.js b/samples/test/get-custom-job.test.js deleted file mode 100644 index f51fa2f9..00000000 --- a/samples/test/get-custom-job.test.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const customJobId = '7980906305281851392'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -describe('AI platform get custom job', () => { - it('should get the specified custom job', async () => { - const stdout = execSync( - `node ./get-custom-job.js ${customJobId} ${project} ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Get custom job response/); - }); -}); diff --git a/samples/test/get-hyperparameter-tuning-job.test.js b/samples/test/get-hyperparameter-tuning-job.test.js deleted file mode 100644 index a334a8e0..00000000 --- a/samples/test/get-hyperparameter-tuning-job.test.js +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const tuningJobId = '2216298782247616512'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -describe('AI platform get hyperparameter tuning job', () => { - it('should get the specified hyperparameter tuning job', async () => { - const stdout = execSync( - `node ./get-hyperparameter-tuning-job.js ${tuningJobId} ${project} ${location}` - ); - assert.match(stdout, /Get hyperparameter tuning job response/); - }); -}); diff --git a/samples/test/get-model-evaluation-slice.test.js b/samples/test/get-model-evaluation-slice.test.js deleted file mode 100644 index 85033539..00000000 --- a/samples/test/get-model-evaluation-slice.test.js +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const modelId = '3512561418744365056'; -const evaluationId = '9035588644970168320'; -const sliceId = '6481571820677004173'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -describe('AI platform get model evaluation slice', () => { - it('should get the evaluation slice from the specified model', async () => { - const stdout = execSync( - `node ./get-model-evaluation-slice.js ${modelId} ${evaluationId} \ - ${sliceId} ${project} \ - ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Get model evaluation slice/); - }); -}); diff --git a/samples/test/get-model-evaluation-tabular-classification.test.js b/samples/test/get-model-evaluation-tabular-classification.test.js deleted file mode 100644 index b4ea49e9..00000000 --- a/samples/test/get-model-evaluation-tabular-classification.test.js +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const modelId = '6036688272397172736'; -const evaluationId = '1866113044163962838'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -describe('AI platform get tabular classification model evaluation', () => { - it('should get the evaluation from the specified model', async () => { - const stdout = execSync( - `node ./get-model-evaluation-tabular-classification.js ${modelId} \ - ${evaluationId} \ - ${project} \ - ${location}`, - { - cwd, - } - ); - assert.match( - stdout, - /Get model evaluation tabular classification response/ - ); - }); -}); diff --git a/samples/test/get-model-evaluation-tabular-regression.test.js b/samples/test/get-model-evaluation-tabular-regression.test.js deleted file mode 100644 index 8bed8361..00000000 --- a/samples/test/get-model-evaluation-tabular-regression.test.js +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const modelId = '8842430840248991744'; -const evaluationId = '4944816689650806017'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -describe('AI platform get tabular regression model evaluation', () => { - it('should get the evaluation from the specified model', async () => { - const stdout = execSync( - `node ./get-model-evaluation-tabular-regression.js ${modelId} \ - ${evaluationId} \ - ${project} \ - ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Get model evaluation tabular regression response/); - }); -}); diff --git a/samples/test/get-model-evaluation-video-action-recognition.test.js b/samples/test/get-model-evaluation-video-action-recognition.test.js deleted file mode 100644 index e2c66995..00000000 --- a/samples/test/get-model-evaluation-video-action-recognition.test.js +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const modelId = '3530998029718913024'; -const evaluationId = '305008923591573504'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -describe('AI platform get video action recognition model evaluation', () => { - it('should get the evaluation from the specified model', async () => { - const stdout = execSync( - `node ./get-model-evaluation-video-action-recognition.js ${modelId} \ - ${evaluationId} \ - ${project} \ - ${location}` - ); - assert.match( - stdout, - /Get model evaluation video action recognition response/ - ); - }); -}); diff --git a/samples/test/get-model-evaluation-video-classification.test.js b/samples/test/get-model-evaluation-video-classification.test.js deleted file mode 100644 index 8f0cc4f1..00000000 --- a/samples/test/get-model-evaluation-video-classification.test.js +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const modelId = '8596984660557299712'; -const evaluationId = '7092045712224944128'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -describe('AI platform get video classification model evaluation', () => { - it('should get the evaluation from the specified model', async () => { - const stdout = execSync( - `node ./get-model-evaluation-video-classification.js ${modelId} \ - ${evaluationId} \ - ${project} \ - ${location} `, - { - cwd, - } - ); - assert.match(stdout, /Get model evaluation video classification response/); - }); -}); diff --git a/samples/test/get-model-evaluation-video-object-tracking.test.js b/samples/test/get-model-evaluation-video-object-tracking.test.js deleted file mode 100644 index 01e3cded..00000000 --- a/samples/test/get-model-evaluation-video-object-tracking.test.js +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const modelId = '8609932509485989888'; -const evaluationId = '6016811301190238208'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -describe('AI platform get video object tracking model evaluation', () => { - it('should get the evaluation from the specified model', async () => { - const stdout = execSync( - `node ./get-model-evaluation-video-object-tracking.js ${modelId} \ - ${evaluationId} \ - ${project} \ - ${location} `, - { - cwd, - } - ); - assert.match(stdout, /Get model evaluation video object tracking response/); - }); -}); diff --git a/samples/test/get-model.test.js b/samples/test/get-model.test.js deleted file mode 100644 index f2fd901d..00000000 --- a/samples/test/get-model.test.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const modelId = '3512561418744365056'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -describe('AI platform get model', () => { - it('should get the specified model', async () => { - const stdout = execSync( - `node ./get-model.js ${modelId} ${project} ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Get model response/); - }); -}); diff --git a/samples/test/get-training-pipeline.test.js b/samples/test/get-training-pipeline.test.js deleted file mode 100644 index b7455d90..00000000 --- a/samples/test/get-training-pipeline.test.js +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const trainingPipelineId = '1419759782528548864'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -describe('AI platform get training pipeline', () => { - it('should get the specified training pipeline', async () => { - const stdout = execSync( - `node ./get-training-pipeline.js ${trainingPipelineId} ${project} ${location}` - ); - assert.match(stdout, /Get training pipeline response/); - }); -}); diff --git a/samples/test/import-data-video-action-recognition.test.js b/samples/test/import-data-video-action-recognition.test.js deleted file mode 100644 index ad72270e..00000000 --- a/samples/test/import-data-video-action-recognition.test.js +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const {assert} = require('chai'); -const {after, before, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const aiplatform = require('@google-cloud/aiplatform'); -const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', -}; - -const datasetServiceClient = new aiplatform.v1.DatasetServiceClient( - clientOptions -); - -let datasetId = ''; -const datasetDisplayName = `temp_import_data_node_var_${uuid()}`; -const gcsSourceUri = 'gs://automl-video-demo-data/ucaip-var/swimrun.jsonl'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -describe('AI platform import data video action recognition', () => { - before('should create the new dataset', async () => { - const parent = `projects/${project}/locations/${location}`; - const [operation] = await datasetServiceClient.createDataset({ - parent, - dataset: { - displayName: datasetDisplayName, - metadataSchemaUri: - 'gs://google-cloud-aiplatform/schema/dataset/metadata/video_1.0.0.yaml', - }, - }); - const [response] = await operation.promise(); - const datasetName = response.name; - datasetId = datasetName.split('datasets/')[1]; - }); - - it('should import video action recognition data to dataset', async () => { - const stdout = execSync( - `node ./import-data-video-action-recognition.js ${datasetId} ${gcsSourceUri} ${project} ${location}` - ); - assert.match(stdout, /Import data video action recognition response/); - }); - - after('should cancel the import job and delete the dataset', async () => { - const datasetName = datasetServiceClient.datasetPath( - project, - location, - datasetId - ); - const [operation] = await datasetServiceClient.deleteDataset({ - name: datasetName, - }); - await operation.promise(); - }); -}); diff --git a/samples/test/import-data-video-classification.test.js b/samples/test/import-data-video-classification.test.js deleted file mode 100644 index 9c4334f1..00000000 --- a/samples/test/import-data-video-classification.test.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const datasetId = '3757409464110546944'; -const gcsSourceUri = - 'gs://ucaip-sample-resources/hmdb_split1_5classes_train.jsonl'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -describe('AI platform import data video classification', () => { - it('should import video classification data to dataset', async () => { - const stdout = execSync( - `node ./import-data-video-classification.js ${datasetId} \ - ${gcsSourceUri} \ - ${project} \ - ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Import data video classification response/); - }); -}); diff --git a/samples/test/list-endpoints.test.js b/samples/test/list-endpoints.test.js deleted file mode 100644 index 72749166..00000000 --- a/samples/test/list-endpoints.test.js +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright 2020, Google, LLC. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); - -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const cwd = path.join(__dirname, '..'); -const LOCATION = 'us-central1'; -const project = process.env.CAIP_PROJECT_ID; - -describe('AI platform list endpoints', () => { - it('should list all endpoints in a parent resource', async () => { - const stdout = execSync(`node ./list-endpoints.js ${project} ${LOCATION}`, { - cwd, - }); - assert.match(stdout, /Endpoint/); - }); -}); diff --git a/samples/test/list-model-evaluation-slices.test.js b/samples/test/list-model-evaluation-slices.test.js deleted file mode 100644 index 10e0ad3a..00000000 --- a/samples/test/list-model-evaluation-slices.test.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const modelId = '3512561418744365056'; -const evaluationId = '9035588644970168320'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -describe('AI platform list model evaluation slices', () => { - it('should list all the evaluation slices from the \ - specified model', async () => { - const stdout = execSync( - `node ./list-model-evaluation-slices.js ${modelId} \ - ${evaluationId} \ - ${project} \ - ${location}`, - { - cwd, - } - ); - assert.match(stdout, /List model evaluation response/); - }); -}); diff --git a/samples/test/predict-image-classification.test.js b/samples/test/predict-image-classification.test.js deleted file mode 100644 index 4947dbd9..00000000 --- a/samples/test/predict-image-classification.test.js +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); -const filename = 'resources/daisy.jpg'; -const endpointId = '71213169107795968'; -const project = process.env.CAIP_PROJECT_ID; -const location = 'us-central1'; - -describe('AI platform predict image classification', async function () { - this.retries(2); - it('should make predictions using the image classification model', async () => { - const stdout = execSync( - `node ./predict-image-classification.js ${filename} \ - ${endpointId} \ - ${project} \ - ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Predict image classification response/); - }); -}); diff --git a/samples/test/predict-image-object-detection.test.js b/samples/test/predict-image-object-detection.test.js deleted file mode 100644 index d482ea55..00000000 --- a/samples/test/predict-image-object-detection.test.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const filename = 'resources/caprese_salad.jpg'; -const endpointId = '2791387344039575552'; -const project = process.env.CAIP_PROJECT_ID; -const location = 'us-central1'; - -describe('AI platform predict image object detection', async function () { - this.retries(2); - it('should make predictions using the image object detection model', async () => { - const stdout = execSync( - `node ./predict-image-object-detection.js ${filename} \ - ${endpointId} \ - ${project} \ - ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Predict image object detection response/); - }); -}); diff --git a/samples/test/predict-tabular-classification.test.js b/samples/test/predict-tabular-classification.test.js deleted file mode 100644 index 1bb90a85..00000000 --- a/samples/test/predict-tabular-classification.test.js +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const endpointId = '4966625964059525120'; -const project = process.env.CAIP_PROJECT_ID; -const location = 'us-central1'; - -describe('AI platform predict tabular classification', () => { - it('should make predictions using the tabular classification model', async () => { - const stdout = execSync( - `node ./predict-tabular-classification.js ${endpointId} \ - ${project} \ - ${location}`, - { - cwd, - } - ); - console.log(stdout); - assert.match(stdout, /Predict tabular classification response/); - }); -}); diff --git a/samples/test/predict-tabular-regression.test.js b/samples/test/predict-tabular-regression.test.js deleted file mode 100644 index 6e18ee6a..00000000 --- a/samples/test/predict-tabular-regression.test.js +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const endpointId = '1014154341088493568'; -const project = process.env.CAIP_PROJECT_ID; -const location = 'us-central1'; - -describe('AI platform predict tabular regression', () => { - it('should make predictions using the tabular regression model', async () => { - const stdout = execSync( - `node ./predict-tabular-regression.js ${endpointId} ${project} ${location}`, - { - cwd, - } - ); - console.log(stdout); - assert.match(stdout, /Predict tabular regression response/); - }); -}); diff --git a/samples/test/predict-text-classification.test.js b/samples/test/predict-text-classification.test.js deleted file mode 100644 index c4654b13..00000000 --- a/samples/test/predict-text-classification.test.js +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const textInput = - 'My local greasy-spoon diner took way too long' + - 'to get my food. It also costs too much. Good food though.'; -const endpointId = '65372563341049856'; -const project = process.env.CAIP_PROJECT_ID; -const location = 'us-central1'; - -describe('AI platform predict text classification', () => { - it('should make predictions using the text classification model', async () => { - const stdout = execSync( - `node ./predict-text-classification.js "${textInput}" ${endpointId} ${project} ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Predict text classification response/); - }); -}); diff --git a/samples/test/predict-text-entity-extraction.test.js b/samples/test/predict-text-entity-extraction.test.js deleted file mode 100644 index d2ab4e26..00000000 --- a/samples/test/predict-text-entity-extraction.test.js +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const textInput = - 'Bipolar depression and anxiety are often hereditary diseases.'; -const endpointId = '6207156555167563776'; -const project = process.env.CAIP_PROJECT_ID; -const location = 'us-central1'; - -describe('AI platform predict text entity extraction', () => { - it('should make predictions using the text extraction model', async () => { - const stdout = execSync( - `node ./predict-text-entity-extraction.js "${textInput}" ${endpointId} ${project} ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Predict text entity extraction response/); - }); -}); diff --git a/samples/test/predict-text-sentiment-analysis.test.js b/samples/test/predict-text-sentiment-analysis.test.js deleted file mode 100644 index 46659416..00000000 --- a/samples/test/predict-text-sentiment-analysis.test.js +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {describe, it} = require('mocha'); - -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const textInput = - 'Economic downturns can be very scary for normal workers.' + - " I dislike how the stock market's fluctuations affect my retirement."; -const endpointId = '7811563922418302976'; -const project = process.env.CAIP_PROJECT_ID; -const location = 'us-central1'; - -describe('AI platform predict text sentiment analysis', () => { - it('should make predictions using the text sentiment model', async () => { - const stdout = execSync( - `node ./predict-text-sentiment-analysis.js "${textInput}" ${endpointId} ${project} ${location}`, - { - cwd, - } - ); - assert.match(stdout, /Predict text sentiment analysis response/); - }); -}); diff --git a/samples/test/quickstart.test.js b/samples/test/quickstart.test.js deleted file mode 100644 index 25e3bce2..00000000 --- a/samples/test/quickstart.test.js +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Copyright 2017, Google, Inc. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const assert = require('assert'); -const cp = require('child_process'); -const {describe, it} = require('mocha'); - -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -describe('quickstart', () => { - it('should have functional quickstart', async () => { - const stdout = execSync('node quickstart.js'); - assert(stdout.match(/DatasetServiceClient/)); - }); -}); diff --git a/samples/test/upload-model.test.js b/samples/test/upload-model.test.js deleted file mode 100644 index b06c3eb1..00000000 --- a/samples/test/upload-model.test.js +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -const path = require('path'); -const {assert} = require('chai'); -const {after, describe, it} = require('mocha'); - -const uuid = require('uuid').v4; -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); -const cwd = path.join(__dirname, '..'); - -const modelDisplayName = `temp_upload_model_test${uuid()}`; -const imageUri = - 'gcr.io/cloud-ml-service-public/cloud-ml-online-prediction-model-server-cpu:v1_15py3cmle_op_images_20200229_0210_RC00'; -const artifactUri = 'gs://ucaip-samples-us-central1/model/explain/'; -const project = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; - -let modelId; - -describe('AI platform upload model', () => { - it('should upload the specified model', async () => { - const stdout = execSync( - `node ./upload-model.js ${modelDisplayName} \ - ${imageUri} \ - ${artifactUri} \ - ${project} \ - ${location}`, - { - cwd, - } - ); - console.log(stdout); - assert.match(stdout, /Upload model response/); - modelId = stdout - .split('/locations/us-central1/models/')[1] - .split('\n')[0] - .split('/')[0]; - }); - after('delete the model', async () => { - execSync(`node ./delete-model.js ${modelId} ${project} ${location}`, { - cwd, - }); - }); -}); diff --git a/samples/undeploy-model.js b/samples/undeploy-model.js deleted file mode 100644 index 7081558b..00000000 --- a/samples/undeploy-model.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - deployedModelId, - endpointId, - project, - location = 'us-central1' -) { - // [START aiplatform_undeploy_model_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const deployedModelId = "YOUR_MODEL_ID"; - // const endpointId = 'YOUR_ENDPOINT_ID'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - const endpoint = `projects/${project}/locations/${location}/endpoints/${endpointId}`; - // Imports the Google Cloud Endpoint Service Client library - const {EndpointServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint: - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const endpointServiceClient = new EndpointServiceClient(clientOptions); - - async function undeployModel() { - // Configure the parent resource - const request = { - deployedModelId, - endpoint, - }; - - // Get and print out a list of all the endpoints for this resource - const [response] = await endpointServiceClient.undeployModel(request); - console.log(`Long running operation : ${response.name}`); - - // Wait for operation to complete - await response.promise(); - - console.log('Undeploy model response'); - console.log(response); - } - undeployModel(); - // [END aiplatform_undeploy_model_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/update-entity-type-monitoring-sample.js b/samples/update-entity-type-monitoring-sample.js deleted file mode 100644 index 24d797ea..00000000 --- a/samples/update-entity-type-monitoring-sample.js +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Updates the parameters of a single EntityType with monitoring configuration. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - entityTypeId, - duration, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_update_entity_type_monitoring_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; - // const duration = ; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = - require('@google-cloud/aiplatform').v1beta1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function updateEntityTypeMonitoring() { - // Configure the name resource - const name = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId}`; - - // Constructing the monitoring configuration - const monitoringConfig = { - snapshotAnalysis: { - monitoringInterval: { - seconds: Number(duration), - }, - }, - }; - - // Constructing the entityType - const entityType = { - name: name, - monitoringConfig: monitoringConfig, - }; - - const request = { - entityType: entityType, - }; - - // Update EntityType request - const [response] = await featurestoreServiceClient.updateEntityType( - request, - {timeout: Number(timeout)} - ); - - console.log('Update entity type monitoring response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - updateEntityTypeMonitoring(); - // [END aiplatform_update_entity_type_monitoring_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/update-entity-type-sample.js b/samples/update-entity-type-sample.js deleted file mode 100644 index dfb3872c..00000000 --- a/samples/update-entity-type-sample.js +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Updates the parameters of a single EntityType. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - entityTypeId, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_update_entity_type_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function updateEntityType() { - // Configure the name resource - const name = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId}`; - - // Constructing the entityType - const entityType = { - name: name, - labels: { - language: 'nodejs', - project: 'vertex-ai-dev', - }, - description: 'updated description', - }; - - const request = { - entityType: entityType, - }; - - // Update EntityType request - const [response] = await featurestoreServiceClient.updateEntityType( - request, - {timeout: Number(timeout)} - ); - - console.log('Update entity type response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - updateEntityType(); - // [END aiplatform_update_entity_type_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/update-feature-sample.js b/samples/update-feature-sample.js deleted file mode 100644 index a3e96026..00000000 --- a/samples/update-feature-sample.js +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Updates the parameters of a single Feature. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - entityTypeId, - featureId, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 300000 -) { - // [START aiplatform_update_feature_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; - // const featureId = 'YOUR_FEATURE_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function updateFeature() { - // Configure the name resource - const name = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId}/features/${featureId}`; - - const feature = { - name: name, - labels: { - language: 'nodejs', - created_by: 'update_feature', - }, - }; - - const request = { - feature: feature, - }; - - // Update Feature request - const [response] = await featurestoreServiceClient.updateFeature(request, { - timeout: Number(timeout), - }); - - console.log('Update feature response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - updateFeature(); - // [END aiplatform_update_feature_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/update-featurestore-fixed-nodes-sample.js b/samples/update-featurestore-fixed-nodes-sample.js deleted file mode 100644 index dabf8e7f..00000000 --- a/samples/update-featurestore-fixed-nodes-sample.js +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Updates the parameters of a single Featurestore. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - fixedNodeCount = 1, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 600000 -) { - // [START aiplatform_update_featurestore_fixed_nodes_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const fixedNodeCount = ; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function updateFeaturestoreFixedNodes() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}/featurestores/${featurestoreId}`; - - const featurestore = { - name: parent, - onlineServingConfig: {fixedNodeCount: Number(fixedNodeCount)}, - }; - - const request = { - featurestore: featurestore, - }; - - // Update Featurestore request - const [operation] = await featurestoreServiceClient.updateFeaturestore( - request, - {timeout: Number(timeout)} - ); - const [response] = await operation.promise(); - - console.log('Update featurestore fixed nodes response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - updateFeaturestoreFixedNodes(); - // [END aiplatform_update_featurestore_fixed_nodes_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/update-featurestore-sample.js b/samples/update-featurestore-sample.js deleted file mode 100644 index 8cf89b93..00000000 --- a/samples/update-featurestore-sample.js +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Updates the parameters of a single Featurestore with autoscaling configuration. - * See https://cloud.google.com/vertex-ai/docs/featurestore/setup before running - * the code snippet - */ - -'use strict'; - -async function main( - project, - featurestoreId, - minNodeCount = 1, - maxNodeCount = 3, - location = 'us-central1', - apiEndpoint = 'us-central1-aiplatform.googleapis.com', - timeout = 600000 -) { - // [START aiplatform_update_featurestore_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - - // const project = 'YOUR_PROJECT_ID'; - // const featurestoreId = 'YOUR_FEATURESTORE_ID'; - // const minNodeCount = ; - // const maxNodeCount = ; - // const location = 'YOUR_PROJECT_LOCATION'; - // const apiEndpoint = 'YOUR_API_ENDPOINT'; - // const timeout = ; - - // Imports the Google Cloud Featurestore Service Client library - const {FeaturestoreServiceClient} = - require('@google-cloud/aiplatform').v1beta1; - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: apiEndpoint, - }; - - // Instantiates a client - const featurestoreServiceClient = new FeaturestoreServiceClient( - clientOptions - ); - - async function updateFeaturestore() { - // Configure the parent resource - const parent = `projects/${project}/locations/${location}/featurestores/${featurestoreId}`; - - const featurestore = { - name: parent, - onlineServingConfig: { - scaling: { - minNodeCount: minNodeCount, - maxNodeCount: maxNodeCount, - }, - }, - }; - - const request = { - featurestore: featurestore, - }; - - // Update Featurestore request - const [operation] = await featurestoreServiceClient.updateFeaturestore( - request, - {timeout: Number(timeout)} - ); - const [response] = await operation.promise(); - - console.log('Update featurestore response'); - console.log(`Name : ${response.name}`); - console.log('Raw response:'); - console.log(JSON.stringify(response, null, 2)); - } - updateFeaturestore(); - // [END aiplatform_update_featurestore_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2)); diff --git a/samples/upload-model.js b/samples/upload-model.js deleted file mode 100644 index 56e3c01c..00000000 --- a/samples/upload-model.js +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -async function main( - modelDisplayName, - imageUri, - artifactUri, - project, - location = 'us-central1' -) { - // [START aiplatform_upload_model_sample] - /** - * TODO(developer): Uncomment these variables before running the sample.\ - */ - - // const modelDisplayName = 'YOUR_MODEL_DISPLAY_NAME'; - // const metadataSchemaUri = 'YOUR_METADATA_SCHEMA_URI'; - // const imageUri = 'YOUR_IMAGE_URI'; - // const artifactUri = 'YOUR_ARTIFACT_URI'; - // const project = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_PROJECT_LOCATION'; - - // Imports the Google Cloud Model Service Client library - const {ModelServiceClient} = require('@google-cloud/aiplatform'); - - // Specifies the location of the api endpoint - const clientOptions = { - apiEndpoint: 'us-central1-aiplatform.googleapis.com', - }; - - // Instantiates a client - const modelServiceClient = new ModelServiceClient(clientOptions); - - async function uploadModel() { - // Configure the parent resources - const parent = `projects/${project}/locations/${location}`; - // Configure the model resources - const model = { - displayName: modelDisplayName, - metadataSchemaUri: '', - artifactUri: artifactUri, - containerSpec: { - imageUri: imageUri, - command: [], - args: [], - env: [], - ports: [], - predictRoute: '', - healthRoute: '', - }, - }; - const request = { - parent, - model, - }; - - console.log('PARENT AND MODEL'); - console.log(parent, model); - // Upload Model request - const [response] = await modelServiceClient.uploadModel(request); - console.log(`Long running operation : ${response.name}`); - - // Wait for operation to complete - await response.promise(); - const result = response.result; - - console.log('Upload model response '); - console.log(`\tModel : ${result.model}`); - } - uploadModel(); - // [END aiplatform_upload_model_sample] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); - -main(...process.argv.slice(2));

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