diff --git a/spring-cloud-previews/README.md b/spring-cloud-previews/README.md index 4be04f47c6..65a8b0a63c 100644 --- a/spring-cloud-previews/README.md +++ b/spring-cloud-previews/README.md @@ -16,90 +16,92 @@ add the following dependency to your `pom.xml`: | Client Library | Starter Maven Artifact | |----------------| -----------------------| -|[java-accessapproval](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-accessapproval/README.md)|com.google.cloud:google-cloud-accessapproval-spring-starter| -|[java-accesscontextmanager](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-accesscontextmanager/README.md)|com.google.cloud:google-identity-accesscontextmanager-spring-starter| -|[java-aiplatform](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-aiplatform/README.md)|com.google.cloud:google-cloud-aiplatform-spring-starter| -|[java-api-gateway](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-api-gateway/README.md)|com.google.cloud:google-cloud-api-gateway-spring-starter| -|[java-apigee-connect](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-apigee-connect/README.md)|com.google.cloud:google-cloud-apigee-connect-spring-starter| -|[java-appengine-admin](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-appengine-admin/README.md)|com.google.cloud:google-cloud-appengine-admin-spring-starter| -|[java-artifact-registry](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-artifact-registry/README.md)|com.google.cloud:google-cloud-artifact-registry-spring-starter| -|[java-asset](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-asset/README.md)|com.google.cloud:google-cloud-asset-spring-starter| -|[java-assured-workloads](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-assured-workloads/README.md)|com.google.cloud:google-cloud-assured-workloads-spring-starter| -|[java-automl](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-automl/README.md)|com.google.cloud:google-cloud-automl-spring-starter| -|[java-bigqueryconnection](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-bigqueryconnection/README.md)|com.google.cloud:google-cloud-bigqueryconnection-spring-starter| -|[java-bigquerydatatransfer](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-bigquerydatatransfer/README.md)|com.google.cloud:google-cloud-bigquerydatatransfer-spring-starter| -|[java-bigqueryreservation](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-bigqueryreservation/README.md)|com.google.cloud:google-cloud-bigqueryreservation-spring-starter| -|[java-billing](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-billing/README.md)|com.google.cloud:google-cloud-billing-spring-starter| -|[java-billingbudgets](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-billingbudgets/README.md)|com.google.cloud:google-cloud-billingbudgets-spring-starter| -|[java-binary-authorization](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-binary-authorization/README.md)|com.google.cloud:google-cloud-binary-authorization-spring-starter| -|[java-channel](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-channel/README.md)|com.google.cloud:google-cloud-channel-spring-starter| -|[java-cloudbuild](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-cloudbuild/README.md)|com.google.cloud:google-cloud-build-spring-starter| -|[java-compute](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-compute/README.md)|com.google.cloud:google-cloud-compute-spring-starter| -|[java-contact-center-insights](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-contact-center-insights/README.md)|com.google.cloud:google-cloud-contact-center-insights-spring-starter| -|[java-container](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-container/README.md)|com.google.cloud:google-cloud-container-spring-starter| -|[java-containeranalysis](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-containeranalysis/README.md)|com.google.cloud:google-cloud-containeranalysis-spring-starter| -|[java-data-fusion](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-data-fusion/README.md)|com.google.cloud:google-cloud-data-fusion-spring-starter| -|[java-datacatalog](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-datacatalog/README.md)|com.google.cloud:google-cloud-datacatalog-spring-starter| -|[java-dataplex](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-dataplex/README.md)|com.google.cloud:google-cloud-dataplex-spring-starter| -|[java-dataproc-metastore](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-dataproc-metastore/README.md)|com.google.cloud:google-cloud-dataproc-metastore-spring-starter| -|[java-dataproc](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-dataproc/README.md)|com.google.cloud:google-cloud-dataproc-spring-starter| -|[java-datastream](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-datastream/README.md)|com.google.cloud:google-cloud-datastream-spring-starter| -|[java-debugger-client](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-debugger-client/README.md)|com.google.cloud:google-cloud-debugger-client-spring-starter| -|[java-deploy](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-deploy/README.md)|com.google.cloud:google-cloud-deploy-spring-starter| -|[java-dialogflow](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-dialogflow/README.md)|com.google.cloud:google-cloud-dialogflow-spring-starter| -|[java-dlp](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-dlp/README.md)|com.google.cloud:google-cloud-dlp-spring-starter| -|[java-dms](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-dms/README.md)|com.google.cloud:google-cloud-dms-spring-starter| -|[java-document-ai](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-document-ai/README.md)|com.google.cloud:google-cloud-document-ai-spring-starter| -|[java-domains](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-domains/README.md)|com.google.cloud:google-cloud-domains-spring-starter| -|[java-essential-contacts](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-essential-contacts/README.md)|com.google.cloud:google-cloud-essential-contacts-spring-starter| -|[java-eventarc](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-eventarc/README.md)|com.google.cloud:google-cloud-eventarc-spring-starter| -|[java-filestore](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-filestore/README.md)|com.google.cloud:google-cloud-filestore-spring-starter| -|[java-functions](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-functions/README.md)|com.google.cloud:google-cloud-functions-spring-starter| -|[java-gkehub](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-gkehub/README.md)|com.google.cloud:google-cloud-gkehub-spring-starter| -|[java-gsuite-addons](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-gsuite-addons/README.md)|com.google.cloud:google-cloud-gsuite-addons-spring-starter| -|[java-iam-admin](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-iam-admin/README.md)|com.google.cloud:google-iam-admin-spring-starter| -|[java-iamcredentials](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-iamcredentials/README.md)|com.google.cloud:google-cloud-iamcredentials-spring-starter| -|[java-ids](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-ids/README.md)|com.google.cloud:google-cloud-ids-spring-starter| -|[java-iot](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-iot/README.md)|com.google.cloud:google-cloud-iot-spring-starter| -|[java-language](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-language/README.md)|com.google.cloud:google-cloud-language-spring-starter| -|[java-managed-identities](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-managed-identities/README.md)|com.google.cloud:google-cloud-managed-identities-spring-starter| -|[java-memcache](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-memcache/README.md)|com.google.cloud:google-cloud-memcache-spring-starter| -|[java-monitoring-dashboards](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-monitoring-dashboards/README.md)|com.google.cloud:google-cloud-monitoring-dashboard-spring-starter| -|[java-network-management](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-network-management/README.md)|com.google.cloud:google-cloud-network-management-spring-starter| -|[java-networkconnectivity](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-networkconnectivity/README.md)|com.google.cloud:google-cloud-networkconnectivity-spring-starter| -|[java-notebooks](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-notebooks/README.md)|com.google.cloud:google-cloud-notebooks-spring-starter| -|[java-optimization](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-optimization/README.md)|com.google.cloud:google-cloud-optimization-spring-starter| -|[java-orchestration-airflow](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-orchestration-airflow/README.md)|com.google.cloud:google-cloud-orchestration-airflow-spring-starter| -|[java-orgpolicy](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-orgpolicy/README.md)|com.google.cloud:google-cloud-orgpolicy-spring-starter| -|[java-os-config](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-os-config/README.md)|com.google.cloud:google-cloud-os-config-spring-starter| -|[java-os-login](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-os-login/README.md)|com.google.cloud:google-cloud-os-login-spring-starter| -|[java-policy-troubleshooter](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-policy-troubleshooter/README.md)|com.google.cloud:google-cloud-policy-troubleshooter-spring-starter| -|[java-profiler](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-profiler/README.md)|com.google.cloud:google-cloud-profiler-spring-starter| -|[java-recaptchaenterprise](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-recaptchaenterprise/README.md)|com.google.cloud:google-cloud-recaptchaenterprise-spring-starter| -|[java-recommender](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-recommender/README.md)|com.google.cloud:google-cloud-recommender-spring-starter| -|[java-redis](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-redis/README.md)|com.google.cloud:google-cloud-redis-spring-starter| -|[java-resource-settings](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-resource-settings/README.md)|com.google.cloud:google-cloud-resource-settings-spring-starter| -|[java-retail](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-retail/README.md)|com.google.cloud:google-cloud-retail-spring-starter| -|[java-scheduler](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-scheduler/README.md)|com.google.cloud:google-cloud-scheduler-spring-starter| -|[java-security-private-ca](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-security-private-ca/README.md)|com.google.cloud:google-cloud-security-private-ca-spring-starter| -|[java-securitycenter](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-securitycenter/README.md)|com.google.cloud:google-cloud-securitycenter-spring-starter| -|[java-service-control](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-service-control/README.md)|com.google.cloud:google-cloud-service-control-spring-starter| -|[java-service-management](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-service-management/README.md)|com.google.cloud:google-cloud-service-management-spring-starter| -|[java-service-usage](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-service-usage/README.md)|com.google.cloud:google-cloud-service-usage-spring-starter| -|[java-servicedirectory](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-servicedirectory/README.md)|com.google.cloud:google-cloud-servicedirectory-spring-starter| -|[java-shell](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-shell/README.md)|com.google.cloud:google-cloud-shell-spring-starter| -|[java-speech](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-speech/README.md)|com.google.cloud:google-cloud-speech-spring-starter| -|[java-storage-transfer](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-storage-transfer/README.md)|com.google.cloud:google-cloud-storage-transfer-spring-starter| -|[java-talent](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-talent/README.md)|com.google.cloud:google-cloud-talent-spring-starter| -|[java-tasks](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-tasks/README.md)|com.google.cloud:google-cloud-tasks-spring-starter| -|[java-texttospeech](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-texttospeech/README.md)|com.google.cloud:google-cloud-texttospeech-spring-starter| -|[java-tpu](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-tpu/README.md)|com.google.cloud:google-cloud-tpu-spring-starter| -|[java-trace](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-trace/README.md)|com.google.cloud:google-cloud-trace-spring-starter| -|[java-video-intelligence](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-video-intelligence/README.md)|com.google.cloud:google-cloud-video-intelligence-spring-starter| -|[java-video-transcoder](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-video-transcoder/README.md)|com.google.cloud:google-cloud-video-transcoder-spring-starter| -|[java-vmmigration](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-vmmigration/README.md)|com.google.cloud:google-cloud-vmmigration-spring-starter| -|[java-vpcaccess](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-vpcaccess/README.md)|com.google.cloud:google-cloud-vpcaccess-spring-starter| -|[java-webrisk](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-webrisk/README.md)|com.google.cloud:google-cloud-webrisk-spring-starter| -|[java-websecurityscanner](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-websecurityscanner/README.md)|com.google.cloud:google-cloud-websecurityscanner-spring-starter| -|[java-workflow-executions](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-workflow-executions/README.md)|com.google.cloud:google-cloud-workflow-executions-spring-starter| -|[java-workflows](https://github.com/googleapis/google-cloud-java/blob/v1.31.0/java-workflows/README.md)|com.google.cloud:google-cloud-workflows-spring-starter| +|[java-accessapproval](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-accessapproval/README.md)|com.google.cloud:google-cloud-accessapproval-spring-starter| +|[java-accesscontextmanager](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-accesscontextmanager/README.md)|com.google.cloud:google-identity-accesscontextmanager-spring-starter| +|[java-aiplatform](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-aiplatform/README.md)|com.google.cloud:google-cloud-aiplatform-spring-starter| +|[java-api-gateway](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-api-gateway/README.md)|com.google.cloud:google-cloud-api-gateway-spring-starter| +|[java-apigee-connect](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-apigee-connect/README.md)|com.google.cloud:google-cloud-apigee-connect-spring-starter| +|[java-appengine-admin](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-appengine-admin/README.md)|com.google.cloud:google-cloud-appengine-admin-spring-starter| +|[java-artifact-registry](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-artifact-registry/README.md)|com.google.cloud:google-cloud-artifact-registry-spring-starter| +|[java-asset](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-asset/README.md)|com.google.cloud:google-cloud-asset-spring-starter| +|[java-assured-workloads](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-assured-workloads/README.md)|com.google.cloud:google-cloud-assured-workloads-spring-starter| +|[java-automl](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-automl/README.md)|com.google.cloud:google-cloud-automl-spring-starter| +|[java-bigqueryconnection](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-bigqueryconnection/README.md)|com.google.cloud:google-cloud-bigqueryconnection-spring-starter| +|[java-bigquerydatatransfer](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-bigquerydatatransfer/README.md)|com.google.cloud:google-cloud-bigquerydatatransfer-spring-starter| +|[java-bigqueryreservation](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-bigqueryreservation/README.md)|com.google.cloud:google-cloud-bigqueryreservation-spring-starter| +|[java-billing](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-billing/README.md)|com.google.cloud:google-cloud-billing-spring-starter| +|[java-billingbudgets](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-billingbudgets/README.md)|com.google.cloud:google-cloud-billingbudgets-spring-starter| +|[java-binary-authorization](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-binary-authorization/README.md)|com.google.cloud:google-cloud-binary-authorization-spring-starter| +|[java-channel](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-channel/README.md)|com.google.cloud:google-cloud-channel-spring-starter| +|[java-cloudbuild](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-cloudbuild/README.md)|com.google.cloud:google-cloud-build-spring-starter| +|[java-compute](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-compute/README.md)|com.google.cloud:google-cloud-compute-spring-starter| +|[java-contact-center-insights](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-contact-center-insights/README.md)|com.google.cloud:google-cloud-contact-center-insights-spring-starter| +|[java-container](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-container/README.md)|com.google.cloud:google-cloud-container-spring-starter| +|[java-containeranalysis](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-containeranalysis/README.md)|com.google.cloud:google-cloud-containeranalysis-spring-starter| +|[java-data-fusion](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-data-fusion/README.md)|com.google.cloud:google-cloud-data-fusion-spring-starter| +|[java-datacatalog](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-datacatalog/README.md)|com.google.cloud:google-cloud-datacatalog-spring-starter| +|[java-dataplex](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-dataplex/README.md)|com.google.cloud:google-cloud-dataplex-spring-starter| +|[java-dataproc-metastore](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-dataproc-metastore/README.md)|com.google.cloud:google-cloud-dataproc-metastore-spring-starter| +|[java-dataproc](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-dataproc/README.md)|com.google.cloud:google-cloud-dataproc-spring-starter| +|[java-datastream](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-datastream/README.md)|com.google.cloud:google-cloud-datastream-spring-starter| +|[java-debugger-client](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-debugger-client/README.md)|com.google.cloud:google-cloud-debugger-client-spring-starter| +|[java-deploy](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-deploy/README.md)|com.google.cloud:google-cloud-deploy-spring-starter| +|[java-dialogflow](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-dialogflow/README.md)|com.google.cloud:google-cloud-dialogflow-spring-starter| +|[java-dlp](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-dlp/README.md)|com.google.cloud:google-cloud-dlp-spring-starter| +|[java-dms](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-dms/README.md)|com.google.cloud:google-cloud-dms-spring-starter| +|[java-document-ai](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-document-ai/README.md)|com.google.cloud:google-cloud-document-ai-spring-starter| +|[java-domains](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-domains/README.md)|com.google.cloud:google-cloud-domains-spring-starter| +|[java-essential-contacts](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-essential-contacts/README.md)|com.google.cloud:google-cloud-essential-contacts-spring-starter| +|[java-eventarc](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-eventarc/README.md)|com.google.cloud:google-cloud-eventarc-spring-starter| +|[java-filestore](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-filestore/README.md)|com.google.cloud:google-cloud-filestore-spring-starter| +|[java-functions](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-functions/README.md)|com.google.cloud:google-cloud-functions-spring-starter| +|[java-gkehub](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-gkehub/README.md)|com.google.cloud:google-cloud-gkehub-spring-starter| +|[java-gsuite-addons](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-gsuite-addons/README.md)|com.google.cloud:google-cloud-gsuite-addons-spring-starter| +|[java-iam-admin](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-iam-admin/README.md)|com.google.cloud:google-iam-admin-spring-starter| +|[java-iam](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-iam/README.md)|com.google.cloud:google-iam-policy-spring-starter| +|[java-iamcredentials](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-iamcredentials/README.md)|com.google.cloud:google-cloud-iamcredentials-spring-starter| +|[java-ids](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-ids/README.md)|com.google.cloud:google-cloud-ids-spring-starter| +|[java-iot](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-iot/README.md)|com.google.cloud:google-cloud-iot-spring-starter| +|[java-language](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-language/README.md)|com.google.cloud:google-cloud-language-spring-starter| +|[java-managed-identities](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-managed-identities/README.md)|com.google.cloud:google-cloud-managed-identities-spring-starter| +|[java-memcache](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-memcache/README.md)|com.google.cloud:google-cloud-memcache-spring-starter| +|[java-monitoring-dashboards](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-monitoring-dashboards/README.md)|com.google.cloud:google-cloud-monitoring-dashboard-spring-starter| +|[java-network-management](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-network-management/README.md)|com.google.cloud:google-cloud-network-management-spring-starter| +|[java-networkconnectivity](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-networkconnectivity/README.md)|com.google.cloud:google-cloud-networkconnectivity-spring-starter| +|[java-notebooks](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-notebooks/README.md)|com.google.cloud:google-cloud-notebooks-spring-starter| +|[java-optimization](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-optimization/README.md)|com.google.cloud:google-cloud-optimization-spring-starter| +|[java-orchestration-airflow](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-orchestration-airflow/README.md)|com.google.cloud:google-cloud-orchestration-airflow-spring-starter| +|[java-orgpolicy](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-orgpolicy/README.md)|com.google.cloud:google-cloud-orgpolicy-spring-starter| +|[java-os-config](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-os-config/README.md)|com.google.cloud:google-cloud-os-config-spring-starter| +|[java-os-login](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-os-login/README.md)|com.google.cloud:google-cloud-os-login-spring-starter| +|[java-policy-troubleshooter](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-policy-troubleshooter/README.md)|com.google.cloud:google-cloud-policy-troubleshooter-spring-starter| +|[java-profiler](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-profiler/README.md)|com.google.cloud:google-cloud-profiler-spring-starter| +|[java-recaptchaenterprise](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-recaptchaenterprise/README.md)|com.google.cloud:google-cloud-recaptchaenterprise-spring-starter| +|[java-recommender](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-recommender/README.md)|com.google.cloud:google-cloud-recommender-spring-starter| +|[java-redis](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-redis/README.md)|com.google.cloud:google-cloud-redis-spring-starter| +|[java-resource-settings](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-resource-settings/README.md)|com.google.cloud:google-cloud-resource-settings-spring-starter| +|[java-retail](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-retail/README.md)|com.google.cloud:google-cloud-retail-spring-starter| +|[java-scheduler](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-scheduler/README.md)|com.google.cloud:google-cloud-scheduler-spring-starter| +|[java-security-private-ca](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-security-private-ca/README.md)|com.google.cloud:google-cloud-security-private-ca-spring-starter| +|[java-securitycenter](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-securitycenter/README.md)|com.google.cloud:google-cloud-securitycenter-spring-starter| +|[java-service-control](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-service-control/README.md)|com.google.cloud:google-cloud-service-control-spring-starter| +|[java-service-management](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-service-management/README.md)|com.google.cloud:google-cloud-service-management-spring-starter| +|[java-service-usage](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-service-usage/README.md)|com.google.cloud:google-cloud-service-usage-spring-starter| +|[java-servicedirectory](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-servicedirectory/README.md)|com.google.cloud:google-cloud-servicedirectory-spring-starter| +|[java-shell](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-shell/README.md)|com.google.cloud:google-cloud-shell-spring-starter| +|[java-speech](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-speech/README.md)|com.google.cloud:google-cloud-speech-spring-starter| +|[java-storage-transfer](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-storage-transfer/README.md)|com.google.cloud:google-cloud-storage-transfer-spring-starter| +|[java-talent](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-talent/README.md)|com.google.cloud:google-cloud-talent-spring-starter| +|[java-tasks](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-tasks/README.md)|com.google.cloud:google-cloud-tasks-spring-starter| +|[java-texttospeech](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-texttospeech/README.md)|com.google.cloud:google-cloud-texttospeech-spring-starter| +|[java-tpu](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-tpu/README.md)|com.google.cloud:google-cloud-tpu-spring-starter| +|[java-trace](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-trace/README.md)|com.google.cloud:google-cloud-trace-spring-starter| +|[java-translate](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-translate/README.md)|com.google.cloud:google-cloud-translate-spring-starter| +|[java-video-intelligence](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-video-intelligence/README.md)|com.google.cloud:google-cloud-video-intelligence-spring-starter| +|[java-video-transcoder](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-video-transcoder/README.md)|com.google.cloud:google-cloud-video-transcoder-spring-starter| +|[java-vmmigration](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-vmmigration/README.md)|com.google.cloud:google-cloud-vmmigration-spring-starter| +|[java-vpcaccess](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-vpcaccess/README.md)|com.google.cloud:google-cloud-vpcaccess-spring-starter| +|[java-webrisk](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-webrisk/README.md)|com.google.cloud:google-cloud-webrisk-spring-starter| +|[java-websecurityscanner](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-websecurityscanner/README.md)|com.google.cloud:google-cloud-websecurityscanner-spring-starter| +|[java-workflow-executions](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-workflow-executions/README.md)|com.google.cloud:google-cloud-workflow-executions-spring-starter| +|[java-workflows](https://github.com/googleapis/google-cloud-java/blob/v1.33.0/java-workflows/README.md)|com.google.cloud:google-cloud-workflows-spring-starter| diff --git a/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/java/com/google/cloud/dataplex/v1/spring/CatalogServiceSpringAutoConfiguration.java b/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/java/com/google/cloud/dataplex/v1/spring/CatalogServiceSpringAutoConfiguration.java new file mode 100644 index 0000000000..6725065ccf --- /dev/null +++ b/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/java/com/google/cloud/dataplex/v1/spring/CatalogServiceSpringAutoConfiguration.java @@ -0,0 +1,423 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.dataplex.v1.spring; + +import com.google.api.core.BetaApi; +import com.google.api.gax.core.CredentialsProvider; +import com.google.api.gax.core.ExecutorProvider; +import com.google.api.gax.retrying.RetrySettings; +import com.google.api.gax.rpc.HeaderProvider; +import com.google.api.gax.rpc.TransportChannelProvider; +import com.google.cloud.dataplex.v1.CatalogServiceClient; +import com.google.cloud.dataplex.v1.CatalogServiceSettings; +import com.google.cloud.spring.autoconfigure.core.GcpContextAutoConfiguration; +import com.google.cloud.spring.core.DefaultCredentialsProvider; +import com.google.cloud.spring.core.Retry; +import com.google.cloud.spring.core.util.RetryUtil; +import java.io.IOException; +import java.util.Collections; +import javax.annotation.Generated; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.AutoConfigureAfter; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * Auto-configuration for {@link CatalogServiceClient}. + * + *

Provides auto-configuration for Spring Boot + * + *

The default instance has everything set to sensible defaults: + * + *

+ */ +@Generated("by google-cloud-spring-generator") +@BetaApi("Autogenerated Spring autoconfiguration is not yet stable") +@AutoConfiguration +@AutoConfigureAfter(GcpContextAutoConfiguration.class) +@ConditionalOnClass(CatalogServiceClient.class) +@ConditionalOnProperty( + value = "com.google.cloud.dataplex.v1.catalog-service.enabled", + matchIfMissing = true) +@EnableConfigurationProperties(CatalogServiceSpringProperties.class) +public class CatalogServiceSpringAutoConfiguration { + private final CatalogServiceSpringProperties clientProperties; + private final CredentialsProvider credentialsProvider; + private static final Log LOGGER = LogFactory.getLog(CatalogServiceSpringAutoConfiguration.class); + + protected CatalogServiceSpringAutoConfiguration( + CatalogServiceSpringProperties clientProperties, CredentialsProvider credentialsProvider) + throws IOException { + this.clientProperties = clientProperties; + if (this.clientProperties.getCredentials().hasKey()) { + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Using credentials from CatalogService-specific configuration"); + } + this.credentialsProvider = + ((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); + } else { + this.credentialsProvider = credentialsProvider; + } + } + + /** + * Provides a default transport channel provider bean, corresponding to the client library's + * default transport channel provider. If the library supports both GRPC and REST transport, and + * the useRest property is configured, the HTTP/JSON transport provider will be used instead of + * GRPC. + * + * @return a default transport channel provider. + */ + @Bean + @ConditionalOnMissingBean(name = "defaultCatalogServiceTransportChannelProvider") + public TransportChannelProvider defaultCatalogServiceTransportChannelProvider() { + if (this.clientProperties.getUseRest()) { + return CatalogServiceSettings.defaultHttpJsonTransportProviderBuilder().build(); + } + return CatalogServiceSettings.defaultTransportChannelProvider(); + } + + /** + * Provides a CatalogServiceSettings bean configured to use a DefaultCredentialsProvider and the + * client library's default transport channel provider + * (defaultCatalogServiceTransportChannelProvider()). It also configures the quota project ID and + * executor thread count, if provided through properties. + * + *

Retry settings are also configured from service-level and method-level properties specified + * in CatalogServiceSpringProperties. Method-level properties will take precedence over + * service-level properties if available, and client library defaults will be used if neither are + * specified. + * + * @param defaultTransportChannelProvider TransportChannelProvider to use in the settings. + * @return a {@link CatalogServiceSettings} bean configured with {@link TransportChannelProvider} + * bean. + */ + @Bean + @ConditionalOnMissingBean + public CatalogServiceSettings catalogServiceSettings( + @Qualifier("defaultCatalogServiceTransportChannelProvider") + TransportChannelProvider defaultTransportChannelProvider) + throws IOException { + CatalogServiceSettings.Builder clientSettingsBuilder; + if (this.clientProperties.getUseRest()) { + clientSettingsBuilder = CatalogServiceSettings.newHttpJsonBuilder(); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Using REST (HTTP/JSON) transport."); + } + } else { + clientSettingsBuilder = CatalogServiceSettings.newBuilder(); + } + clientSettingsBuilder + .setCredentialsProvider(this.credentialsProvider) + .setTransportChannelProvider(defaultTransportChannelProvider) + .setHeaderProvider(this.userAgentHeaderProvider()); + if (this.clientProperties.getQuotaProjectId() != null) { + clientSettingsBuilder.setQuotaProjectId(this.clientProperties.getQuotaProjectId()); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Quota project id set to " + + this.clientProperties.getQuotaProjectId() + + ", this overrides project id from credentials."); + } + } + if (this.clientProperties.getExecutorThreadCount() != null) { + ExecutorProvider executorProvider = + CatalogServiceSettings.defaultExecutorProviderBuilder() + .setExecutorThreadCount(this.clientProperties.getExecutorThreadCount()) + .build(); + clientSettingsBuilder.setBackgroundExecutorProvider(executorProvider); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Background executor thread count is " + + this.clientProperties.getExecutorThreadCount()); + } + } + Retry serviceRetry = clientProperties.getRetry(); + if (serviceRetry != null) { + RetrySettings listEntryTypesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listEntryTypesSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.listEntryTypesSettings().setRetrySettings(listEntryTypesRetrySettings); + + RetrySettings getEntryTypeRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getEntryTypeSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.getEntryTypeSettings().setRetrySettings(getEntryTypeRetrySettings); + + RetrySettings listAspectTypesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listAspectTypesSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder + .listAspectTypesSettings() + .setRetrySettings(listAspectTypesRetrySettings); + + RetrySettings getAspectTypeRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getAspectTypeSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.getAspectTypeSettings().setRetrySettings(getAspectTypeRetrySettings); + + RetrySettings listEntryGroupsRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listEntryGroupsSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder + .listEntryGroupsSettings() + .setRetrySettings(listEntryGroupsRetrySettings); + + RetrySettings getEntryGroupRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getEntryGroupSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.getEntryGroupSettings().setRetrySettings(getEntryGroupRetrySettings); + + RetrySettings createEntryRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.createEntrySettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.createEntrySettings().setRetrySettings(createEntryRetrySettings); + + RetrySettings updateEntryRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.updateEntrySettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.updateEntrySettings().setRetrySettings(updateEntryRetrySettings); + + RetrySettings deleteEntryRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.deleteEntrySettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.deleteEntrySettings().setRetrySettings(deleteEntryRetrySettings); + + RetrySettings listEntriesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listEntriesSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.listEntriesSettings().setRetrySettings(listEntriesRetrySettings); + + RetrySettings getEntryRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getEntrySettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.getEntrySettings().setRetrySettings(getEntryRetrySettings); + + RetrySettings lookupEntryRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.lookupEntrySettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.lookupEntrySettings().setRetrySettings(lookupEntryRetrySettings); + + RetrySettings searchEntriesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.searchEntriesSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.searchEntriesSettings().setRetrySettings(searchEntriesRetrySettings); + + RetrySettings listLocationsRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listLocationsSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.listLocationsSettings().setRetrySettings(listLocationsRetrySettings); + + RetrySettings getLocationRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getLocationSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.getLocationSettings().setRetrySettings(getLocationRetrySettings); + + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured service-level retry settings from properties."); + } + } + Retry listEntryTypesRetry = clientProperties.getListEntryTypesRetry(); + if (listEntryTypesRetry != null) { + RetrySettings listEntryTypesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listEntryTypesSettings().getRetrySettings(), + listEntryTypesRetry); + clientSettingsBuilder.listEntryTypesSettings().setRetrySettings(listEntryTypesRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for listEntryTypes from properties."); + } + } + Retry getEntryTypeRetry = clientProperties.getGetEntryTypeRetry(); + if (getEntryTypeRetry != null) { + RetrySettings getEntryTypeRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getEntryTypeSettings().getRetrySettings(), getEntryTypeRetry); + clientSettingsBuilder.getEntryTypeSettings().setRetrySettings(getEntryTypeRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for getEntryType from properties."); + } + } + Retry listAspectTypesRetry = clientProperties.getListAspectTypesRetry(); + if (listAspectTypesRetry != null) { + RetrySettings listAspectTypesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listAspectTypesSettings().getRetrySettings(), + listAspectTypesRetry); + clientSettingsBuilder + .listAspectTypesSettings() + .setRetrySettings(listAspectTypesRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for listAspectTypes from properties."); + } + } + Retry getAspectTypeRetry = clientProperties.getGetAspectTypeRetry(); + if (getAspectTypeRetry != null) { + RetrySettings getAspectTypeRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getAspectTypeSettings().getRetrySettings(), getAspectTypeRetry); + clientSettingsBuilder.getAspectTypeSettings().setRetrySettings(getAspectTypeRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for getAspectType from properties."); + } + } + Retry listEntryGroupsRetry = clientProperties.getListEntryGroupsRetry(); + if (listEntryGroupsRetry != null) { + RetrySettings listEntryGroupsRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listEntryGroupsSettings().getRetrySettings(), + listEntryGroupsRetry); + clientSettingsBuilder + .listEntryGroupsSettings() + .setRetrySettings(listEntryGroupsRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for listEntryGroups from properties."); + } + } + Retry getEntryGroupRetry = clientProperties.getGetEntryGroupRetry(); + if (getEntryGroupRetry != null) { + RetrySettings getEntryGroupRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getEntryGroupSettings().getRetrySettings(), getEntryGroupRetry); + clientSettingsBuilder.getEntryGroupSettings().setRetrySettings(getEntryGroupRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for getEntryGroup from properties."); + } + } + Retry createEntryRetry = clientProperties.getCreateEntryRetry(); + if (createEntryRetry != null) { + RetrySettings createEntryRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.createEntrySettings().getRetrySettings(), createEntryRetry); + clientSettingsBuilder.createEntrySettings().setRetrySettings(createEntryRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for createEntry from properties."); + } + } + Retry updateEntryRetry = clientProperties.getUpdateEntryRetry(); + if (updateEntryRetry != null) { + RetrySettings updateEntryRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.updateEntrySettings().getRetrySettings(), updateEntryRetry); + clientSettingsBuilder.updateEntrySettings().setRetrySettings(updateEntryRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for updateEntry from properties."); + } + } + Retry deleteEntryRetry = clientProperties.getDeleteEntryRetry(); + if (deleteEntryRetry != null) { + RetrySettings deleteEntryRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.deleteEntrySettings().getRetrySettings(), deleteEntryRetry); + clientSettingsBuilder.deleteEntrySettings().setRetrySettings(deleteEntryRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for deleteEntry from properties."); + } + } + Retry listEntriesRetry = clientProperties.getListEntriesRetry(); + if (listEntriesRetry != null) { + RetrySettings listEntriesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listEntriesSettings().getRetrySettings(), listEntriesRetry); + clientSettingsBuilder.listEntriesSettings().setRetrySettings(listEntriesRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for listEntries from properties."); + } + } + Retry getEntryRetry = clientProperties.getGetEntryRetry(); + if (getEntryRetry != null) { + RetrySettings getEntryRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getEntrySettings().getRetrySettings(), getEntryRetry); + clientSettingsBuilder.getEntrySettings().setRetrySettings(getEntryRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for getEntry from properties."); + } + } + Retry lookupEntryRetry = clientProperties.getLookupEntryRetry(); + if (lookupEntryRetry != null) { + RetrySettings lookupEntryRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.lookupEntrySettings().getRetrySettings(), lookupEntryRetry); + clientSettingsBuilder.lookupEntrySettings().setRetrySettings(lookupEntryRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for lookupEntry from properties."); + } + } + Retry searchEntriesRetry = clientProperties.getSearchEntriesRetry(); + if (searchEntriesRetry != null) { + RetrySettings searchEntriesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.searchEntriesSettings().getRetrySettings(), searchEntriesRetry); + clientSettingsBuilder.searchEntriesSettings().setRetrySettings(searchEntriesRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for searchEntries from properties."); + } + } + Retry listLocationsRetry = clientProperties.getListLocationsRetry(); + if (listLocationsRetry != null) { + RetrySettings listLocationsRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listLocationsSettings().getRetrySettings(), listLocationsRetry); + clientSettingsBuilder.listLocationsSettings().setRetrySettings(listLocationsRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for listLocations from properties."); + } + } + Retry getLocationRetry = clientProperties.getGetLocationRetry(); + if (getLocationRetry != null) { + RetrySettings getLocationRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getLocationSettings().getRetrySettings(), getLocationRetry); + clientSettingsBuilder.getLocationSettings().setRetrySettings(getLocationRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for getLocation from properties."); + } + } + return clientSettingsBuilder.build(); + } + + /** + * Provides a CatalogServiceClient bean configured with CatalogServiceSettings. + * + * @param catalogServiceSettings settings to configure an instance of client bean. + * @return a {@link CatalogServiceClient} bean configured with {@link CatalogServiceSettings} + */ + @Bean + @ConditionalOnMissingBean + public CatalogServiceClient catalogServiceClient(CatalogServiceSettings catalogServiceSettings) + throws IOException { + return CatalogServiceClient.create(catalogServiceSettings); + } + + private HeaderProvider userAgentHeaderProvider() { + String springLibrary = "spring-autogen-catalog-service"; + String version = this.getClass().getPackage().getImplementationVersion(); + return () -> Collections.singletonMap("user-agent", springLibrary + "/" + version); + } +} diff --git a/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/java/com/google/cloud/dataplex/v1/spring/CatalogServiceSpringProperties.java b/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/java/com/google/cloud/dataplex/v1/spring/CatalogServiceSpringProperties.java new file mode 100644 index 0000000000..3fe2410d5c --- /dev/null +++ b/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/java/com/google/cloud/dataplex/v1/spring/CatalogServiceSpringProperties.java @@ -0,0 +1,277 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.dataplex.v1.spring; + +import com.google.api.core.BetaApi; +import com.google.cloud.spring.core.Credentials; +import com.google.cloud.spring.core.CredentialsSupplier; +import com.google.cloud.spring.core.Retry; +import javax.annotation.Generated; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.context.properties.NestedConfigurationProperty; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** Provides default property values for CatalogService client bean */ +@Generated("by google-cloud-spring-generator") +@BetaApi("Autogenerated Spring autoconfiguration is not yet stable") +@ConfigurationProperties("com.google.cloud.dataplex.v1.catalog-service") +public class CatalogServiceSpringProperties implements CredentialsSupplier { + /** OAuth2 credentials to authenticate and authorize calls to Google Cloud Client Libraries. */ + @NestedConfigurationProperty + private final Credentials credentials = + new Credentials("https://www.googleapis.com/auth/cloud-platform"); + /** Quota project to use for billing. */ + private String quotaProjectId; + /** Number of threads used for executors. */ + private Integer executorThreadCount; + /** Allow override of default transport channel provider to use REST instead of gRPC. */ + private boolean useRest = false; + /** Allow override of retry settings at service level, applying to all of its RPC methods. */ + @NestedConfigurationProperty private Retry retry; + /** + * Allow override of retry settings at method-level for listEntryTypes. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry listEntryTypesRetry; + /** + * Allow override of retry settings at method-level for getEntryType. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry getEntryTypeRetry; + /** + * Allow override of retry settings at method-level for listAspectTypes. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry listAspectTypesRetry; + /** + * Allow override of retry settings at method-level for getAspectType. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry getAspectTypeRetry; + /** + * Allow override of retry settings at method-level for listEntryGroups. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry listEntryGroupsRetry; + /** + * Allow override of retry settings at method-level for getEntryGroup. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry getEntryGroupRetry; + /** + * Allow override of retry settings at method-level for createEntry. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry createEntryRetry; + /** + * Allow override of retry settings at method-level for updateEntry. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry updateEntryRetry; + /** + * Allow override of retry settings at method-level for deleteEntry. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry deleteEntryRetry; + /** + * Allow override of retry settings at method-level for listEntries. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry listEntriesRetry; + /** + * Allow override of retry settings at method-level for getEntry. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry getEntryRetry; + /** + * Allow override of retry settings at method-level for lookupEntry. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry lookupEntryRetry; + /** + * Allow override of retry settings at method-level for searchEntries. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry searchEntriesRetry; + /** + * Allow override of retry settings at method-level for listLocations. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry listLocationsRetry; + /** + * Allow override of retry settings at method-level for getLocation. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry getLocationRetry; + + @Override + public Credentials getCredentials() { + return this.credentials; + } + + public String getQuotaProjectId() { + return this.quotaProjectId; + } + + public void setQuotaProjectId(String quotaProjectId) { + this.quotaProjectId = quotaProjectId; + } + + public boolean getUseRest() { + return this.useRest; + } + + public void setUseRest(boolean useRest) { + this.useRest = useRest; + } + + public Integer getExecutorThreadCount() { + return this.executorThreadCount; + } + + public void setExecutorThreadCount(Integer executorThreadCount) { + this.executorThreadCount = executorThreadCount; + } + + public Retry getRetry() { + return this.retry; + } + + public void setRetry(Retry retry) { + this.retry = retry; + } + + public Retry getListEntryTypesRetry() { + return this.listEntryTypesRetry; + } + + public void setListEntryTypesRetry(Retry listEntryTypesRetry) { + this.listEntryTypesRetry = listEntryTypesRetry; + } + + public Retry getGetEntryTypeRetry() { + return this.getEntryTypeRetry; + } + + public void setGetEntryTypeRetry(Retry getEntryTypeRetry) { + this.getEntryTypeRetry = getEntryTypeRetry; + } + + public Retry getListAspectTypesRetry() { + return this.listAspectTypesRetry; + } + + public void setListAspectTypesRetry(Retry listAspectTypesRetry) { + this.listAspectTypesRetry = listAspectTypesRetry; + } + + public Retry getGetAspectTypeRetry() { + return this.getAspectTypeRetry; + } + + public void setGetAspectTypeRetry(Retry getAspectTypeRetry) { + this.getAspectTypeRetry = getAspectTypeRetry; + } + + public Retry getListEntryGroupsRetry() { + return this.listEntryGroupsRetry; + } + + public void setListEntryGroupsRetry(Retry listEntryGroupsRetry) { + this.listEntryGroupsRetry = listEntryGroupsRetry; + } + + public Retry getGetEntryGroupRetry() { + return this.getEntryGroupRetry; + } + + public void setGetEntryGroupRetry(Retry getEntryGroupRetry) { + this.getEntryGroupRetry = getEntryGroupRetry; + } + + public Retry getCreateEntryRetry() { + return this.createEntryRetry; + } + + public void setCreateEntryRetry(Retry createEntryRetry) { + this.createEntryRetry = createEntryRetry; + } + + public Retry getUpdateEntryRetry() { + return this.updateEntryRetry; + } + + public void setUpdateEntryRetry(Retry updateEntryRetry) { + this.updateEntryRetry = updateEntryRetry; + } + + public Retry getDeleteEntryRetry() { + return this.deleteEntryRetry; + } + + public void setDeleteEntryRetry(Retry deleteEntryRetry) { + this.deleteEntryRetry = deleteEntryRetry; + } + + public Retry getListEntriesRetry() { + return this.listEntriesRetry; + } + + public void setListEntriesRetry(Retry listEntriesRetry) { + this.listEntriesRetry = listEntriesRetry; + } + + public Retry getGetEntryRetry() { + return this.getEntryRetry; + } + + public void setGetEntryRetry(Retry getEntryRetry) { + this.getEntryRetry = getEntryRetry; + } + + public Retry getLookupEntryRetry() { + return this.lookupEntryRetry; + } + + public void setLookupEntryRetry(Retry lookupEntryRetry) { + this.lookupEntryRetry = lookupEntryRetry; + } + + public Retry getSearchEntriesRetry() { + return this.searchEntriesRetry; + } + + public void setSearchEntriesRetry(Retry searchEntriesRetry) { + this.searchEntriesRetry = searchEntriesRetry; + } + + public Retry getListLocationsRetry() { + return this.listLocationsRetry; + } + + public void setListLocationsRetry(Retry listLocationsRetry) { + this.listLocationsRetry = listLocationsRetry; + } + + public Retry getGetLocationRetry() { + return this.getLocationRetry; + } + + public void setGetLocationRetry(Retry getLocationRetry) { + this.getLocationRetry = getLocationRetry; + } +} diff --git a/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/java/com/google/cloud/dataplex/v1/spring/DataScanServiceSpringAutoConfiguration.java b/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/java/com/google/cloud/dataplex/v1/spring/DataScanServiceSpringAutoConfiguration.java index 6322bedb02..a86f3b4c67 100644 --- a/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/java/com/google/cloud/dataplex/v1/spring/DataScanServiceSpringAutoConfiguration.java +++ b/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/java/com/google/cloud/dataplex/v1/spring/DataScanServiceSpringAutoConfiguration.java @@ -186,6 +186,14 @@ public DataScanServiceSettings dataScanServiceSettings( .listDataScanJobsSettings() .setRetrySettings(listDataScanJobsRetrySettings); + RetrySettings generateDataQualityRulesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.generateDataQualityRulesSettings().getRetrySettings(), + serviceRetry); + clientSettingsBuilder + .generateDataQualityRulesSettings() + .setRetrySettings(generateDataQualityRulesRetrySettings); + RetrySettings listLocationsRetrySettings = RetryUtil.updateRetrySettings( clientSettingsBuilder.listLocationsSettings().getRetrySettings(), serviceRetry); @@ -255,6 +263,20 @@ public DataScanServiceSettings dataScanServiceSettings( "Configured method-level retry settings for listDataScanJobs from properties."); } } + Retry generateDataQualityRulesRetry = clientProperties.getGenerateDataQualityRulesRetry(); + if (generateDataQualityRulesRetry != null) { + RetrySettings generateDataQualityRulesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.generateDataQualityRulesSettings().getRetrySettings(), + generateDataQualityRulesRetry); + clientSettingsBuilder + .generateDataQualityRulesSettings() + .setRetrySettings(generateDataQualityRulesRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Configured method-level retry settings for generateDataQualityRules from properties."); + } + } Retry listLocationsRetry = clientProperties.getListLocationsRetry(); if (listLocationsRetry != null) { RetrySettings listLocationsRetrySettings = diff --git a/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/java/com/google/cloud/dataplex/v1/spring/DataScanServiceSpringProperties.java b/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/java/com/google/cloud/dataplex/v1/spring/DataScanServiceSpringProperties.java index cb3c9f5a4d..2af32084df 100644 --- a/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/java/com/google/cloud/dataplex/v1/spring/DataScanServiceSpringProperties.java +++ b/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/java/com/google/cloud/dataplex/v1/spring/DataScanServiceSpringProperties.java @@ -67,6 +67,11 @@ public class DataScanServiceSpringProperties implements CredentialsSupplier { * precedence over service-level retry configurations for that RPC method. */ @NestedConfigurationProperty private Retry listDataScanJobsRetry; + /** + * Allow override of retry settings at method-level for generateDataQualityRules. If defined, this + * takes precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry generateDataQualityRulesRetry; /** * Allow override of retry settings at method-level for listLocations. If defined, this takes * precedence over service-level retry configurations for that RPC method. @@ -155,6 +160,14 @@ public void setListDataScanJobsRetry(Retry listDataScanJobsRetry) { this.listDataScanJobsRetry = listDataScanJobsRetry; } + public Retry getGenerateDataQualityRulesRetry() { + return this.generateDataQualityRulesRetry; + } + + public void setGenerateDataQualityRulesRetry(Retry generateDataQualityRulesRetry) { + this.generateDataQualityRulesRetry = generateDataQualityRulesRetry; + } + public Retry getListLocationsRetry() { return this.listLocationsRetry; } diff --git a/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json index 4280728d98..c1e0338588 100644 --- a/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -1,5 +1,11 @@ { "properties": [ + { + "name": "com.google.cloud.dataplex.v1.catalog-service.enabled", + "type": "java.lang.Boolean", + "description": "Auto-configure Google Cloud dataplex/CatalogService components.", + "defaultValue": true + }, { "name": "com.google.cloud.dataplex.v1.content-service.enabled", "type": "java.lang.Boolean", diff --git a/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 9fb3e48158..cb49627782 100644 --- a/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-cloud-previews/google-cloud-dataplex-spring-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,3 +1,4 @@ +com.google.cloud.dataplex.v1.spring.CatalogServiceSpringAutoConfiguration com.google.cloud.dataplex.v1.spring.ContentServiceSpringAutoConfiguration com.google.cloud.dataplex.v1.spring.DataTaxonomyServiceSpringAutoConfiguration com.google.cloud.dataplex.v1.spring.DataScanServiceSpringAutoConfiguration diff --git a/spring-cloud-previews/google-cloud-dlp-spring-starter/src/main/java/com/google/cloud/dlp/v2/spring/DlpServiceSpringAutoConfiguration.java b/spring-cloud-previews/google-cloud-dlp-spring-starter/src/main/java/com/google/cloud/dlp/v2/spring/DlpServiceSpringAutoConfiguration.java index 3e4e1a5b8b..d7fbb510ea 100644 --- a/spring-cloud-previews/google-cloud-dlp-spring-starter/src/main/java/com/google/cloud/dlp/v2/spring/DlpServiceSpringAutoConfiguration.java +++ b/spring-cloud-previews/google-cloud-dlp-spring-starter/src/main/java/com/google/cloud/dlp/v2/spring/DlpServiceSpringAutoConfiguration.java @@ -414,6 +414,53 @@ public DlpServiceSettings dlpServiceSettings( .deleteStoredInfoTypeSettings() .setRetrySettings(deleteStoredInfoTypeRetrySettings); + RetrySettings listProjectDataProfilesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listProjectDataProfilesSettings().getRetrySettings(), + serviceRetry); + clientSettingsBuilder + .listProjectDataProfilesSettings() + .setRetrySettings(listProjectDataProfilesRetrySettings); + + RetrySettings listTableDataProfilesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listTableDataProfilesSettings().getRetrySettings(), + serviceRetry); + clientSettingsBuilder + .listTableDataProfilesSettings() + .setRetrySettings(listTableDataProfilesRetrySettings); + + RetrySettings listColumnDataProfilesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listColumnDataProfilesSettings().getRetrySettings(), + serviceRetry); + clientSettingsBuilder + .listColumnDataProfilesSettings() + .setRetrySettings(listColumnDataProfilesRetrySettings); + + RetrySettings getProjectDataProfileRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getProjectDataProfileSettings().getRetrySettings(), + serviceRetry); + clientSettingsBuilder + .getProjectDataProfileSettings() + .setRetrySettings(getProjectDataProfileRetrySettings); + + RetrySettings getTableDataProfileRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getTableDataProfileSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder + .getTableDataProfileSettings() + .setRetrySettings(getTableDataProfileRetrySettings); + + RetrySettings getColumnDataProfileRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getColumnDataProfileSettings().getRetrySettings(), + serviceRetry); + clientSettingsBuilder + .getColumnDataProfileSettings() + .setRetrySettings(getColumnDataProfileRetrySettings); + RetrySettings hybridInspectDlpJobRetrySettings = RetryUtil.updateRetrySettings( clientSettingsBuilder.hybridInspectDlpJobSettings().getRetrySettings(), serviceRetry); @@ -912,6 +959,90 @@ public DlpServiceSettings dlpServiceSettings( "Configured method-level retry settings for deleteStoredInfoType from properties."); } } + Retry listProjectDataProfilesRetry = clientProperties.getListProjectDataProfilesRetry(); + if (listProjectDataProfilesRetry != null) { + RetrySettings listProjectDataProfilesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listProjectDataProfilesSettings().getRetrySettings(), + listProjectDataProfilesRetry); + clientSettingsBuilder + .listProjectDataProfilesSettings() + .setRetrySettings(listProjectDataProfilesRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Configured method-level retry settings for listProjectDataProfiles from properties."); + } + } + Retry listTableDataProfilesRetry = clientProperties.getListTableDataProfilesRetry(); + if (listTableDataProfilesRetry != null) { + RetrySettings listTableDataProfilesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listTableDataProfilesSettings().getRetrySettings(), + listTableDataProfilesRetry); + clientSettingsBuilder + .listTableDataProfilesSettings() + .setRetrySettings(listTableDataProfilesRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Configured method-level retry settings for listTableDataProfiles from properties."); + } + } + Retry listColumnDataProfilesRetry = clientProperties.getListColumnDataProfilesRetry(); + if (listColumnDataProfilesRetry != null) { + RetrySettings listColumnDataProfilesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listColumnDataProfilesSettings().getRetrySettings(), + listColumnDataProfilesRetry); + clientSettingsBuilder + .listColumnDataProfilesSettings() + .setRetrySettings(listColumnDataProfilesRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Configured method-level retry settings for listColumnDataProfiles from properties."); + } + } + Retry getProjectDataProfileRetry = clientProperties.getGetProjectDataProfileRetry(); + if (getProjectDataProfileRetry != null) { + RetrySettings getProjectDataProfileRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getProjectDataProfileSettings().getRetrySettings(), + getProjectDataProfileRetry); + clientSettingsBuilder + .getProjectDataProfileSettings() + .setRetrySettings(getProjectDataProfileRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Configured method-level retry settings for getProjectDataProfile from properties."); + } + } + Retry getTableDataProfileRetry = clientProperties.getGetTableDataProfileRetry(); + if (getTableDataProfileRetry != null) { + RetrySettings getTableDataProfileRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getTableDataProfileSettings().getRetrySettings(), + getTableDataProfileRetry); + clientSettingsBuilder + .getTableDataProfileSettings() + .setRetrySettings(getTableDataProfileRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Configured method-level retry settings for getTableDataProfile from properties."); + } + } + Retry getColumnDataProfileRetry = clientProperties.getGetColumnDataProfileRetry(); + if (getColumnDataProfileRetry != null) { + RetrySettings getColumnDataProfileRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getColumnDataProfileSettings().getRetrySettings(), + getColumnDataProfileRetry); + clientSettingsBuilder + .getColumnDataProfileSettings() + .setRetrySettings(getColumnDataProfileRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Configured method-level retry settings for getColumnDataProfile from properties."); + } + } Retry hybridInspectDlpJobRetry = clientProperties.getHybridInspectDlpJobRetry(); if (hybridInspectDlpJobRetry != null) { RetrySettings hybridInspectDlpJobRetrySettings = diff --git a/spring-cloud-previews/google-cloud-dlp-spring-starter/src/main/java/com/google/cloud/dlp/v2/spring/DlpServiceSpringProperties.java b/spring-cloud-previews/google-cloud-dlp-spring-starter/src/main/java/com/google/cloud/dlp/v2/spring/DlpServiceSpringProperties.java index 9b28f02ac0..f5d746b246 100644 --- a/spring-cloud-previews/google-cloud-dlp-spring-starter/src/main/java/com/google/cloud/dlp/v2/spring/DlpServiceSpringProperties.java +++ b/spring-cloud-previews/google-cloud-dlp-spring-starter/src/main/java/com/google/cloud/dlp/v2/spring/DlpServiceSpringProperties.java @@ -227,6 +227,36 @@ public class DlpServiceSpringProperties implements CredentialsSupplier { * takes precedence over service-level retry configurations for that RPC method. */ @NestedConfigurationProperty private Retry deleteStoredInfoTypeRetry; + /** + * Allow override of retry settings at method-level for listProjectDataProfiles. If defined, this + * takes precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry listProjectDataProfilesRetry; + /** + * Allow override of retry settings at method-level for listTableDataProfiles. If defined, this + * takes precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry listTableDataProfilesRetry; + /** + * Allow override of retry settings at method-level for listColumnDataProfiles. If defined, this + * takes precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry listColumnDataProfilesRetry; + /** + * Allow override of retry settings at method-level for getProjectDataProfile. If defined, this + * takes precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry getProjectDataProfileRetry; + /** + * Allow override of retry settings at method-level for getTableDataProfile. If defined, this + * takes precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry getTableDataProfileRetry; + /** + * Allow override of retry settings at method-level for getColumnDataProfile. If defined, this + * takes precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry getColumnDataProfileRetry; /** * Allow override of retry settings at method-level for hybridInspectDlpJob. If defined, this * takes precedence over service-level retry configurations for that RPC method. @@ -571,6 +601,54 @@ public void setDeleteStoredInfoTypeRetry(Retry deleteStoredInfoTypeRetry) { this.deleteStoredInfoTypeRetry = deleteStoredInfoTypeRetry; } + public Retry getListProjectDataProfilesRetry() { + return this.listProjectDataProfilesRetry; + } + + public void setListProjectDataProfilesRetry(Retry listProjectDataProfilesRetry) { + this.listProjectDataProfilesRetry = listProjectDataProfilesRetry; + } + + public Retry getListTableDataProfilesRetry() { + return this.listTableDataProfilesRetry; + } + + public void setListTableDataProfilesRetry(Retry listTableDataProfilesRetry) { + this.listTableDataProfilesRetry = listTableDataProfilesRetry; + } + + public Retry getListColumnDataProfilesRetry() { + return this.listColumnDataProfilesRetry; + } + + public void setListColumnDataProfilesRetry(Retry listColumnDataProfilesRetry) { + this.listColumnDataProfilesRetry = listColumnDataProfilesRetry; + } + + public Retry getGetProjectDataProfileRetry() { + return this.getProjectDataProfileRetry; + } + + public void setGetProjectDataProfileRetry(Retry getProjectDataProfileRetry) { + this.getProjectDataProfileRetry = getProjectDataProfileRetry; + } + + public Retry getGetTableDataProfileRetry() { + return this.getTableDataProfileRetry; + } + + public void setGetTableDataProfileRetry(Retry getTableDataProfileRetry) { + this.getTableDataProfileRetry = getTableDataProfileRetry; + } + + public Retry getGetColumnDataProfileRetry() { + return this.getColumnDataProfileRetry; + } + + public void setGetColumnDataProfileRetry(Retry getColumnDataProfileRetry) { + this.getColumnDataProfileRetry = getColumnDataProfileRetry; + } + public Retry getHybridInspectDlpJobRetry() { return this.hybridInspectDlpJobRetry; } diff --git a/spring-cloud-previews/google-cloud-network-management-spring-starter/src/main/java/com/google/cloud/networkmanagement/v1/spring/ReachabilityServiceSpringAutoConfiguration.java b/spring-cloud-previews/google-cloud-network-management-spring-starter/src/main/java/com/google/cloud/networkmanagement/v1/spring/ReachabilityServiceSpringAutoConfiguration.java index b7d2cc75ae..8abf3486fb 100644 --- a/spring-cloud-previews/google-cloud-network-management-spring-starter/src/main/java/com/google/cloud/networkmanagement/v1/spring/ReachabilityServiceSpringAutoConfiguration.java +++ b/spring-cloud-previews/google-cloud-network-management-spring-starter/src/main/java/com/google/cloud/networkmanagement/v1/spring/ReachabilityServiceSpringAutoConfiguration.java @@ -175,6 +175,33 @@ public ReachabilityServiceSettings reachabilityServiceSettings( .getConnectivityTestSettings() .setRetrySettings(getConnectivityTestRetrySettings); + RetrySettings listLocationsRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listLocationsSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.listLocationsSettings().setRetrySettings(listLocationsRetrySettings); + + RetrySettings getLocationRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getLocationSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.getLocationSettings().setRetrySettings(getLocationRetrySettings); + + RetrySettings setIamPolicyRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.setIamPolicySettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.setIamPolicySettings().setRetrySettings(setIamPolicyRetrySettings); + + RetrySettings getIamPolicyRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getIamPolicySettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.getIamPolicySettings().setRetrySettings(getIamPolicyRetrySettings); + + RetrySettings testIamPermissionsRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.testIamPermissionsSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder + .testIamPermissionsSettings() + .setRetrySettings(testIamPermissionsRetrySettings); + if (LOGGER.isTraceEnabled()) { LOGGER.trace("Configured service-level retry settings from properties."); } @@ -207,6 +234,60 @@ public ReachabilityServiceSettings reachabilityServiceSettings( "Configured method-level retry settings for getConnectivityTest from properties."); } } + Retry listLocationsRetry = clientProperties.getListLocationsRetry(); + if (listLocationsRetry != null) { + RetrySettings listLocationsRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listLocationsSettings().getRetrySettings(), listLocationsRetry); + clientSettingsBuilder.listLocationsSettings().setRetrySettings(listLocationsRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for listLocations from properties."); + } + } + Retry getLocationRetry = clientProperties.getGetLocationRetry(); + if (getLocationRetry != null) { + RetrySettings getLocationRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getLocationSettings().getRetrySettings(), getLocationRetry); + clientSettingsBuilder.getLocationSettings().setRetrySettings(getLocationRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for getLocation from properties."); + } + } + Retry setIamPolicyRetry = clientProperties.getSetIamPolicyRetry(); + if (setIamPolicyRetry != null) { + RetrySettings setIamPolicyRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.setIamPolicySettings().getRetrySettings(), setIamPolicyRetry); + clientSettingsBuilder.setIamPolicySettings().setRetrySettings(setIamPolicyRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for setIamPolicy from properties."); + } + } + Retry getIamPolicyRetry = clientProperties.getGetIamPolicyRetry(); + if (getIamPolicyRetry != null) { + RetrySettings getIamPolicyRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getIamPolicySettings().getRetrySettings(), getIamPolicyRetry); + clientSettingsBuilder.getIamPolicySettings().setRetrySettings(getIamPolicyRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for getIamPolicy from properties."); + } + } + Retry testIamPermissionsRetry = clientProperties.getTestIamPermissionsRetry(); + if (testIamPermissionsRetry != null) { + RetrySettings testIamPermissionsRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.testIamPermissionsSettings().getRetrySettings(), + testIamPermissionsRetry); + clientSettingsBuilder + .testIamPermissionsSettings() + .setRetrySettings(testIamPermissionsRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Configured method-level retry settings for testIamPermissions from properties."); + } + } return clientSettingsBuilder.build(); } diff --git a/spring-cloud-previews/google-cloud-network-management-spring-starter/src/main/java/com/google/cloud/networkmanagement/v1/spring/ReachabilityServiceSpringProperties.java b/spring-cloud-previews/google-cloud-network-management-spring-starter/src/main/java/com/google/cloud/networkmanagement/v1/spring/ReachabilityServiceSpringProperties.java index 1a96a6f653..dca7233b09 100644 --- a/spring-cloud-previews/google-cloud-network-management-spring-starter/src/main/java/com/google/cloud/networkmanagement/v1/spring/ReachabilityServiceSpringProperties.java +++ b/spring-cloud-previews/google-cloud-network-management-spring-starter/src/main/java/com/google/cloud/networkmanagement/v1/spring/ReachabilityServiceSpringProperties.java @@ -52,6 +52,31 @@ public class ReachabilityServiceSpringProperties implements CredentialsSupplier * takes precedence over service-level retry configurations for that RPC method. */ @NestedConfigurationProperty private Retry getConnectivityTestRetry; + /** + * Allow override of retry settings at method-level for listLocations. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry listLocationsRetry; + /** + * Allow override of retry settings at method-level for getLocation. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry getLocationRetry; + /** + * Allow override of retry settings at method-level for setIamPolicy. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry setIamPolicyRetry; + /** + * Allow override of retry settings at method-level for getIamPolicy. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry getIamPolicyRetry; + /** + * Allow override of retry settings at method-level for testIamPermissions. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry testIamPermissionsRetry; @Override public Credentials getCredentials() { @@ -105,4 +130,44 @@ public Retry getGetConnectivityTestRetry() { public void setGetConnectivityTestRetry(Retry getConnectivityTestRetry) { this.getConnectivityTestRetry = getConnectivityTestRetry; } + + public Retry getListLocationsRetry() { + return this.listLocationsRetry; + } + + public void setListLocationsRetry(Retry listLocationsRetry) { + this.listLocationsRetry = listLocationsRetry; + } + + public Retry getGetLocationRetry() { + return this.getLocationRetry; + } + + public void setGetLocationRetry(Retry getLocationRetry) { + this.getLocationRetry = getLocationRetry; + } + + public Retry getSetIamPolicyRetry() { + return this.setIamPolicyRetry; + } + + public void setSetIamPolicyRetry(Retry setIamPolicyRetry) { + this.setIamPolicyRetry = setIamPolicyRetry; + } + + public Retry getGetIamPolicyRetry() { + return this.getIamPolicyRetry; + } + + public void setGetIamPolicyRetry(Retry getIamPolicyRetry) { + this.getIamPolicyRetry = getIamPolicyRetry; + } + + public Retry getTestIamPermissionsRetry() { + return this.testIamPermissionsRetry; + } + + public void setTestIamPermissionsRetry(Retry testIamPermissionsRetry) { + this.testIamPermissionsRetry = testIamPermissionsRetry; + } } diff --git a/spring-cloud-previews/google-cloud-translate-spring-starter/pom.xml b/spring-cloud-previews/google-cloud-translate-spring-starter/pom.xml new file mode 100644 index 0000000000..f9afd71960 --- /dev/null +++ b/spring-cloud-previews/google-cloud-translate-spring-starter/pom.xml @@ -0,0 +1,35 @@ + + + 4.0.0 + + + com.google.cloud + spring-cloud-gcp-starters + 5.1.1-SNAPSHOT + ../../spring-cloud-gcp-starters/pom.xml + + google-cloud-translate-spring-starter + ${project.parent.version}-preview + Spring Boot Starter - translate + Spring Boot Starter with AutoConfiguration for translate + + + + + com.google.cloud + google-cloud-translate + + + + org.springframework.boot + spring-boot-starter + + + + com.google.cloud + spring-cloud-gcp-autoconfigure + + + + \ No newline at end of file diff --git a/spring-cloud-previews/google-cloud-translate-spring-starter/src/main/java/com/google/cloud/translate/v3/spring/TranslationServiceSpringAutoConfiguration.java b/spring-cloud-previews/google-cloud-translate-spring-starter/src/main/java/com/google/cloud/translate/v3/spring/TranslationServiceSpringAutoConfiguration.java new file mode 100644 index 0000000000..4a37c15245 --- /dev/null +++ b/spring-cloud-previews/google-cloud-translate-spring-starter/src/main/java/com/google/cloud/translate/v3/spring/TranslationServiceSpringAutoConfiguration.java @@ -0,0 +1,511 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.translate.v3.spring; + +import com.google.api.core.BetaApi; +import com.google.api.gax.core.CredentialsProvider; +import com.google.api.gax.core.ExecutorProvider; +import com.google.api.gax.retrying.RetrySettings; +import com.google.api.gax.rpc.HeaderProvider; +import com.google.api.gax.rpc.TransportChannelProvider; +import com.google.cloud.spring.autoconfigure.core.GcpContextAutoConfiguration; +import com.google.cloud.spring.core.DefaultCredentialsProvider; +import com.google.cloud.spring.core.Retry; +import com.google.cloud.spring.core.util.RetryUtil; +import com.google.cloud.translate.v3.TranslationServiceClient; +import com.google.cloud.translate.v3.TranslationServiceSettings; +import java.io.IOException; +import java.util.Collections; +import javax.annotation.Generated; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.AutoConfigureAfter; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * Auto-configuration for {@link TranslationServiceClient}. + * + *

Provides auto-configuration for Spring Boot + * + *

The default instance has everything set to sensible defaults: + * + *

+ */ +@Generated("by google-cloud-spring-generator") +@BetaApi("Autogenerated Spring autoconfiguration is not yet stable") +@AutoConfiguration +@AutoConfigureAfter(GcpContextAutoConfiguration.class) +@ConditionalOnClass(TranslationServiceClient.class) +@ConditionalOnProperty( + value = "com.google.cloud.translate.v3.translation-service.enabled", + matchIfMissing = true) +@EnableConfigurationProperties(TranslationServiceSpringProperties.class) +public class TranslationServiceSpringAutoConfiguration { + private final TranslationServiceSpringProperties clientProperties; + private final CredentialsProvider credentialsProvider; + private static final Log LOGGER = + LogFactory.getLog(TranslationServiceSpringAutoConfiguration.class); + + protected TranslationServiceSpringAutoConfiguration( + TranslationServiceSpringProperties clientProperties, CredentialsProvider credentialsProvider) + throws IOException { + this.clientProperties = clientProperties; + if (this.clientProperties.getCredentials().hasKey()) { + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Using credentials from TranslationService-specific configuration"); + } + this.credentialsProvider = + ((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); + } else { + this.credentialsProvider = credentialsProvider; + } + } + + /** + * Provides a default transport channel provider bean, corresponding to the client library's + * default transport channel provider. If the library supports both GRPC and REST transport, and + * the useRest property is configured, the HTTP/JSON transport provider will be used instead of + * GRPC. + * + * @return a default transport channel provider. + */ + @Bean + @ConditionalOnMissingBean(name = "defaultTranslationServiceTransportChannelProvider") + public TransportChannelProvider defaultTranslationServiceTransportChannelProvider() { + if (this.clientProperties.getUseRest()) { + return TranslationServiceSettings.defaultHttpJsonTransportProviderBuilder().build(); + } + return TranslationServiceSettings.defaultTransportChannelProvider(); + } + + /** + * Provides a TranslationServiceSettings bean configured to use a DefaultCredentialsProvider and + * the client library's default transport channel provider + * (defaultTranslationServiceTransportChannelProvider()). It also configures the quota project ID + * and executor thread count, if provided through properties. + * + *

Retry settings are also configured from service-level and method-level properties specified + * in TranslationServiceSpringProperties. Method-level properties will take precedence over + * service-level properties if available, and client library defaults will be used if neither are + * specified. + * + * @param defaultTransportChannelProvider TransportChannelProvider to use in the settings. + * @return a {@link TranslationServiceSettings} bean configured with {@link + * TransportChannelProvider} bean. + */ + @Bean + @ConditionalOnMissingBean + public TranslationServiceSettings translationServiceSettings( + @Qualifier("defaultTranslationServiceTransportChannelProvider") + TransportChannelProvider defaultTransportChannelProvider) + throws IOException { + TranslationServiceSettings.Builder clientSettingsBuilder; + if (this.clientProperties.getUseRest()) { + clientSettingsBuilder = TranslationServiceSettings.newHttpJsonBuilder(); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Using REST (HTTP/JSON) transport."); + } + } else { + clientSettingsBuilder = TranslationServiceSettings.newBuilder(); + } + clientSettingsBuilder + .setCredentialsProvider(this.credentialsProvider) + .setTransportChannelProvider(defaultTransportChannelProvider) + .setHeaderProvider(this.userAgentHeaderProvider()); + if (this.clientProperties.getQuotaProjectId() != null) { + clientSettingsBuilder.setQuotaProjectId(this.clientProperties.getQuotaProjectId()); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Quota project id set to " + + this.clientProperties.getQuotaProjectId() + + ", this overrides project id from credentials."); + } + } + if (this.clientProperties.getExecutorThreadCount() != null) { + ExecutorProvider executorProvider = + TranslationServiceSettings.defaultExecutorProviderBuilder() + .setExecutorThreadCount(this.clientProperties.getExecutorThreadCount()) + .build(); + clientSettingsBuilder.setBackgroundExecutorProvider(executorProvider); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Background executor thread count is " + + this.clientProperties.getExecutorThreadCount()); + } + } + Retry serviceRetry = clientProperties.getRetry(); + if (serviceRetry != null) { + RetrySettings translateTextRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.translateTextSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.translateTextSettings().setRetrySettings(translateTextRetrySettings); + + RetrySettings detectLanguageRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.detectLanguageSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.detectLanguageSettings().setRetrySettings(detectLanguageRetrySettings); + + RetrySettings getSupportedLanguagesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getSupportedLanguagesSettings().getRetrySettings(), + serviceRetry); + clientSettingsBuilder + .getSupportedLanguagesSettings() + .setRetrySettings(getSupportedLanguagesRetrySettings); + + RetrySettings translateDocumentRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.translateDocumentSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder + .translateDocumentSettings() + .setRetrySettings(translateDocumentRetrySettings); + + RetrySettings listGlossariesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listGlossariesSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.listGlossariesSettings().setRetrySettings(listGlossariesRetrySettings); + + RetrySettings getGlossaryRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getGlossarySettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.getGlossarySettings().setRetrySettings(getGlossaryRetrySettings); + + RetrySettings createAdaptiveMtDatasetRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.createAdaptiveMtDatasetSettings().getRetrySettings(), + serviceRetry); + clientSettingsBuilder + .createAdaptiveMtDatasetSettings() + .setRetrySettings(createAdaptiveMtDatasetRetrySettings); + + RetrySettings deleteAdaptiveMtDatasetRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.deleteAdaptiveMtDatasetSettings().getRetrySettings(), + serviceRetry); + clientSettingsBuilder + .deleteAdaptiveMtDatasetSettings() + .setRetrySettings(deleteAdaptiveMtDatasetRetrySettings); + + RetrySettings getAdaptiveMtDatasetRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getAdaptiveMtDatasetSettings().getRetrySettings(), + serviceRetry); + clientSettingsBuilder + .getAdaptiveMtDatasetSettings() + .setRetrySettings(getAdaptiveMtDatasetRetrySettings); + + RetrySettings listAdaptiveMtDatasetsRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listAdaptiveMtDatasetsSettings().getRetrySettings(), + serviceRetry); + clientSettingsBuilder + .listAdaptiveMtDatasetsSettings() + .setRetrySettings(listAdaptiveMtDatasetsRetrySettings); + + RetrySettings adaptiveMtTranslateRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.adaptiveMtTranslateSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder + .adaptiveMtTranslateSettings() + .setRetrySettings(adaptiveMtTranslateRetrySettings); + + RetrySettings getAdaptiveMtFileRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getAdaptiveMtFileSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder + .getAdaptiveMtFileSettings() + .setRetrySettings(getAdaptiveMtFileRetrySettings); + + RetrySettings deleteAdaptiveMtFileRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.deleteAdaptiveMtFileSettings().getRetrySettings(), + serviceRetry); + clientSettingsBuilder + .deleteAdaptiveMtFileSettings() + .setRetrySettings(deleteAdaptiveMtFileRetrySettings); + + RetrySettings importAdaptiveMtFileRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.importAdaptiveMtFileSettings().getRetrySettings(), + serviceRetry); + clientSettingsBuilder + .importAdaptiveMtFileSettings() + .setRetrySettings(importAdaptiveMtFileRetrySettings); + + RetrySettings listAdaptiveMtFilesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listAdaptiveMtFilesSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder + .listAdaptiveMtFilesSettings() + .setRetrySettings(listAdaptiveMtFilesRetrySettings); + + RetrySettings listAdaptiveMtSentencesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listAdaptiveMtSentencesSettings().getRetrySettings(), + serviceRetry); + clientSettingsBuilder + .listAdaptiveMtSentencesSettings() + .setRetrySettings(listAdaptiveMtSentencesRetrySettings); + + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured service-level retry settings from properties."); + } + } + Retry translateTextRetry = clientProperties.getTranslateTextRetry(); + if (translateTextRetry != null) { + RetrySettings translateTextRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.translateTextSettings().getRetrySettings(), translateTextRetry); + clientSettingsBuilder.translateTextSettings().setRetrySettings(translateTextRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for translateText from properties."); + } + } + Retry detectLanguageRetry = clientProperties.getDetectLanguageRetry(); + if (detectLanguageRetry != null) { + RetrySettings detectLanguageRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.detectLanguageSettings().getRetrySettings(), + detectLanguageRetry); + clientSettingsBuilder.detectLanguageSettings().setRetrySettings(detectLanguageRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for detectLanguage from properties."); + } + } + Retry getSupportedLanguagesRetry = clientProperties.getGetSupportedLanguagesRetry(); + if (getSupportedLanguagesRetry != null) { + RetrySettings getSupportedLanguagesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getSupportedLanguagesSettings().getRetrySettings(), + getSupportedLanguagesRetry); + clientSettingsBuilder + .getSupportedLanguagesSettings() + .setRetrySettings(getSupportedLanguagesRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Configured method-level retry settings for getSupportedLanguages from properties."); + } + } + Retry translateDocumentRetry = clientProperties.getTranslateDocumentRetry(); + if (translateDocumentRetry != null) { + RetrySettings translateDocumentRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.translateDocumentSettings().getRetrySettings(), + translateDocumentRetry); + clientSettingsBuilder + .translateDocumentSettings() + .setRetrySettings(translateDocumentRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Configured method-level retry settings for translateDocument from properties."); + } + } + Retry listGlossariesRetry = clientProperties.getListGlossariesRetry(); + if (listGlossariesRetry != null) { + RetrySettings listGlossariesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listGlossariesSettings().getRetrySettings(), + listGlossariesRetry); + clientSettingsBuilder.listGlossariesSettings().setRetrySettings(listGlossariesRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for listGlossaries from properties."); + } + } + Retry getGlossaryRetry = clientProperties.getGetGlossaryRetry(); + if (getGlossaryRetry != null) { + RetrySettings getGlossaryRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getGlossarySettings().getRetrySettings(), getGlossaryRetry); + clientSettingsBuilder.getGlossarySettings().setRetrySettings(getGlossaryRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for getGlossary from properties."); + } + } + Retry createAdaptiveMtDatasetRetry = clientProperties.getCreateAdaptiveMtDatasetRetry(); + if (createAdaptiveMtDatasetRetry != null) { + RetrySettings createAdaptiveMtDatasetRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.createAdaptiveMtDatasetSettings().getRetrySettings(), + createAdaptiveMtDatasetRetry); + clientSettingsBuilder + .createAdaptiveMtDatasetSettings() + .setRetrySettings(createAdaptiveMtDatasetRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Configured method-level retry settings for createAdaptiveMtDataset from properties."); + } + } + Retry deleteAdaptiveMtDatasetRetry = clientProperties.getDeleteAdaptiveMtDatasetRetry(); + if (deleteAdaptiveMtDatasetRetry != null) { + RetrySettings deleteAdaptiveMtDatasetRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.deleteAdaptiveMtDatasetSettings().getRetrySettings(), + deleteAdaptiveMtDatasetRetry); + clientSettingsBuilder + .deleteAdaptiveMtDatasetSettings() + .setRetrySettings(deleteAdaptiveMtDatasetRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Configured method-level retry settings for deleteAdaptiveMtDataset from properties."); + } + } + Retry getAdaptiveMtDatasetRetry = clientProperties.getGetAdaptiveMtDatasetRetry(); + if (getAdaptiveMtDatasetRetry != null) { + RetrySettings getAdaptiveMtDatasetRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getAdaptiveMtDatasetSettings().getRetrySettings(), + getAdaptiveMtDatasetRetry); + clientSettingsBuilder + .getAdaptiveMtDatasetSettings() + .setRetrySettings(getAdaptiveMtDatasetRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Configured method-level retry settings for getAdaptiveMtDataset from properties."); + } + } + Retry listAdaptiveMtDatasetsRetry = clientProperties.getListAdaptiveMtDatasetsRetry(); + if (listAdaptiveMtDatasetsRetry != null) { + RetrySettings listAdaptiveMtDatasetsRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listAdaptiveMtDatasetsSettings().getRetrySettings(), + listAdaptiveMtDatasetsRetry); + clientSettingsBuilder + .listAdaptiveMtDatasetsSettings() + .setRetrySettings(listAdaptiveMtDatasetsRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Configured method-level retry settings for listAdaptiveMtDatasets from properties."); + } + } + Retry adaptiveMtTranslateRetry = clientProperties.getAdaptiveMtTranslateRetry(); + if (adaptiveMtTranslateRetry != null) { + RetrySettings adaptiveMtTranslateRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.adaptiveMtTranslateSettings().getRetrySettings(), + adaptiveMtTranslateRetry); + clientSettingsBuilder + .adaptiveMtTranslateSettings() + .setRetrySettings(adaptiveMtTranslateRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Configured method-level retry settings for adaptiveMtTranslate from properties."); + } + } + Retry getAdaptiveMtFileRetry = clientProperties.getGetAdaptiveMtFileRetry(); + if (getAdaptiveMtFileRetry != null) { + RetrySettings getAdaptiveMtFileRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getAdaptiveMtFileSettings().getRetrySettings(), + getAdaptiveMtFileRetry); + clientSettingsBuilder + .getAdaptiveMtFileSettings() + .setRetrySettings(getAdaptiveMtFileRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Configured method-level retry settings for getAdaptiveMtFile from properties."); + } + } + Retry deleteAdaptiveMtFileRetry = clientProperties.getDeleteAdaptiveMtFileRetry(); + if (deleteAdaptiveMtFileRetry != null) { + RetrySettings deleteAdaptiveMtFileRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.deleteAdaptiveMtFileSettings().getRetrySettings(), + deleteAdaptiveMtFileRetry); + clientSettingsBuilder + .deleteAdaptiveMtFileSettings() + .setRetrySettings(deleteAdaptiveMtFileRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Configured method-level retry settings for deleteAdaptiveMtFile from properties."); + } + } + Retry importAdaptiveMtFileRetry = clientProperties.getImportAdaptiveMtFileRetry(); + if (importAdaptiveMtFileRetry != null) { + RetrySettings importAdaptiveMtFileRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.importAdaptiveMtFileSettings().getRetrySettings(), + importAdaptiveMtFileRetry); + clientSettingsBuilder + .importAdaptiveMtFileSettings() + .setRetrySettings(importAdaptiveMtFileRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Configured method-level retry settings for importAdaptiveMtFile from properties."); + } + } + Retry listAdaptiveMtFilesRetry = clientProperties.getListAdaptiveMtFilesRetry(); + if (listAdaptiveMtFilesRetry != null) { + RetrySettings listAdaptiveMtFilesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listAdaptiveMtFilesSettings().getRetrySettings(), + listAdaptiveMtFilesRetry); + clientSettingsBuilder + .listAdaptiveMtFilesSettings() + .setRetrySettings(listAdaptiveMtFilesRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Configured method-level retry settings for listAdaptiveMtFiles from properties."); + } + } + Retry listAdaptiveMtSentencesRetry = clientProperties.getListAdaptiveMtSentencesRetry(); + if (listAdaptiveMtSentencesRetry != null) { + RetrySettings listAdaptiveMtSentencesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listAdaptiveMtSentencesSettings().getRetrySettings(), + listAdaptiveMtSentencesRetry); + clientSettingsBuilder + .listAdaptiveMtSentencesSettings() + .setRetrySettings(listAdaptiveMtSentencesRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Configured method-level retry settings for listAdaptiveMtSentences from properties."); + } + } + return clientSettingsBuilder.build(); + } + + /** + * Provides a TranslationServiceClient bean configured with TranslationServiceSettings. + * + * @param translationServiceSettings settings to configure an instance of client bean. + * @return a {@link TranslationServiceClient} bean configured with {@link + * TranslationServiceSettings} + */ + @Bean + @ConditionalOnMissingBean + public TranslationServiceClient translationServiceClient( + TranslationServiceSettings translationServiceSettings) throws IOException { + return TranslationServiceClient.create(translationServiceSettings); + } + + private HeaderProvider userAgentHeaderProvider() { + String springLibrary = "spring-autogen-translation-service"; + String version = this.getClass().getPackage().getImplementationVersion(); + return () -> Collections.singletonMap("user-agent", springLibrary + "/" + version); + } +} diff --git a/spring-cloud-previews/google-cloud-translate-spring-starter/src/main/java/com/google/cloud/translate/v3/spring/TranslationServiceSpringProperties.java b/spring-cloud-previews/google-cloud-translate-spring-starter/src/main/java/com/google/cloud/translate/v3/spring/TranslationServiceSpringProperties.java new file mode 100644 index 0000000000..ecb02d919c --- /dev/null +++ b/spring-cloud-previews/google-cloud-translate-spring-starter/src/main/java/com/google/cloud/translate/v3/spring/TranslationServiceSpringProperties.java @@ -0,0 +1,292 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.translate.v3.spring; + +import com.google.api.core.BetaApi; +import com.google.cloud.spring.core.Credentials; +import com.google.cloud.spring.core.CredentialsSupplier; +import com.google.cloud.spring.core.Retry; +import javax.annotation.Generated; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.context.properties.NestedConfigurationProperty; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** Provides default property values for TranslationService client bean */ +@Generated("by google-cloud-spring-generator") +@BetaApi("Autogenerated Spring autoconfiguration is not yet stable") +@ConfigurationProperties("com.google.cloud.translate.v3.translation-service") +public class TranslationServiceSpringProperties implements CredentialsSupplier { + /** OAuth2 credentials to authenticate and authorize calls to Google Cloud Client Libraries. */ + @NestedConfigurationProperty + private final Credentials credentials = + new Credentials( + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation"); + /** Quota project to use for billing. */ + private String quotaProjectId; + /** Number of threads used for executors. */ + private Integer executorThreadCount; + /** Allow override of default transport channel provider to use REST instead of gRPC. */ + private boolean useRest = false; + /** Allow override of retry settings at service level, applying to all of its RPC methods. */ + @NestedConfigurationProperty private Retry retry; + /** + * Allow override of retry settings at method-level for translateText. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry translateTextRetry; + /** + * Allow override of retry settings at method-level for detectLanguage. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry detectLanguageRetry; + /** + * Allow override of retry settings at method-level for getSupportedLanguages. If defined, this + * takes precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry getSupportedLanguagesRetry; + /** + * Allow override of retry settings at method-level for translateDocument. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry translateDocumentRetry; + /** + * Allow override of retry settings at method-level for listGlossaries. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry listGlossariesRetry; + /** + * Allow override of retry settings at method-level for getGlossary. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry getGlossaryRetry; + /** + * Allow override of retry settings at method-level for createAdaptiveMtDataset. If defined, this + * takes precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry createAdaptiveMtDatasetRetry; + /** + * Allow override of retry settings at method-level for deleteAdaptiveMtDataset. If defined, this + * takes precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry deleteAdaptiveMtDatasetRetry; + /** + * Allow override of retry settings at method-level for getAdaptiveMtDataset. If defined, this + * takes precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry getAdaptiveMtDatasetRetry; + /** + * Allow override of retry settings at method-level for listAdaptiveMtDatasets. If defined, this + * takes precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry listAdaptiveMtDatasetsRetry; + /** + * Allow override of retry settings at method-level for adaptiveMtTranslate. If defined, this + * takes precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry adaptiveMtTranslateRetry; + /** + * Allow override of retry settings at method-level for getAdaptiveMtFile. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry getAdaptiveMtFileRetry; + /** + * Allow override of retry settings at method-level for deleteAdaptiveMtFile. If defined, this + * takes precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry deleteAdaptiveMtFileRetry; + /** + * Allow override of retry settings at method-level for importAdaptiveMtFile. If defined, this + * takes precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry importAdaptiveMtFileRetry; + /** + * Allow override of retry settings at method-level for listAdaptiveMtFiles. If defined, this + * takes precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry listAdaptiveMtFilesRetry; + /** + * Allow override of retry settings at method-level for listAdaptiveMtSentences. If defined, this + * takes precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry listAdaptiveMtSentencesRetry; + + @Override + public Credentials getCredentials() { + return this.credentials; + } + + public String getQuotaProjectId() { + return this.quotaProjectId; + } + + public void setQuotaProjectId(String quotaProjectId) { + this.quotaProjectId = quotaProjectId; + } + + public boolean getUseRest() { + return this.useRest; + } + + public void setUseRest(boolean useRest) { + this.useRest = useRest; + } + + public Integer getExecutorThreadCount() { + return this.executorThreadCount; + } + + public void setExecutorThreadCount(Integer executorThreadCount) { + this.executorThreadCount = executorThreadCount; + } + + public Retry getRetry() { + return this.retry; + } + + public void setRetry(Retry retry) { + this.retry = retry; + } + + public Retry getTranslateTextRetry() { + return this.translateTextRetry; + } + + public void setTranslateTextRetry(Retry translateTextRetry) { + this.translateTextRetry = translateTextRetry; + } + + public Retry getDetectLanguageRetry() { + return this.detectLanguageRetry; + } + + public void setDetectLanguageRetry(Retry detectLanguageRetry) { + this.detectLanguageRetry = detectLanguageRetry; + } + + public Retry getGetSupportedLanguagesRetry() { + return this.getSupportedLanguagesRetry; + } + + public void setGetSupportedLanguagesRetry(Retry getSupportedLanguagesRetry) { + this.getSupportedLanguagesRetry = getSupportedLanguagesRetry; + } + + public Retry getTranslateDocumentRetry() { + return this.translateDocumentRetry; + } + + public void setTranslateDocumentRetry(Retry translateDocumentRetry) { + this.translateDocumentRetry = translateDocumentRetry; + } + + public Retry getListGlossariesRetry() { + return this.listGlossariesRetry; + } + + public void setListGlossariesRetry(Retry listGlossariesRetry) { + this.listGlossariesRetry = listGlossariesRetry; + } + + public Retry getGetGlossaryRetry() { + return this.getGlossaryRetry; + } + + public void setGetGlossaryRetry(Retry getGlossaryRetry) { + this.getGlossaryRetry = getGlossaryRetry; + } + + public Retry getCreateAdaptiveMtDatasetRetry() { + return this.createAdaptiveMtDatasetRetry; + } + + public void setCreateAdaptiveMtDatasetRetry(Retry createAdaptiveMtDatasetRetry) { + this.createAdaptiveMtDatasetRetry = createAdaptiveMtDatasetRetry; + } + + public Retry getDeleteAdaptiveMtDatasetRetry() { + return this.deleteAdaptiveMtDatasetRetry; + } + + public void setDeleteAdaptiveMtDatasetRetry(Retry deleteAdaptiveMtDatasetRetry) { + this.deleteAdaptiveMtDatasetRetry = deleteAdaptiveMtDatasetRetry; + } + + public Retry getGetAdaptiveMtDatasetRetry() { + return this.getAdaptiveMtDatasetRetry; + } + + public void setGetAdaptiveMtDatasetRetry(Retry getAdaptiveMtDatasetRetry) { + this.getAdaptiveMtDatasetRetry = getAdaptiveMtDatasetRetry; + } + + public Retry getListAdaptiveMtDatasetsRetry() { + return this.listAdaptiveMtDatasetsRetry; + } + + public void setListAdaptiveMtDatasetsRetry(Retry listAdaptiveMtDatasetsRetry) { + this.listAdaptiveMtDatasetsRetry = listAdaptiveMtDatasetsRetry; + } + + public Retry getAdaptiveMtTranslateRetry() { + return this.adaptiveMtTranslateRetry; + } + + public void setAdaptiveMtTranslateRetry(Retry adaptiveMtTranslateRetry) { + this.adaptiveMtTranslateRetry = adaptiveMtTranslateRetry; + } + + public Retry getGetAdaptiveMtFileRetry() { + return this.getAdaptiveMtFileRetry; + } + + public void setGetAdaptiveMtFileRetry(Retry getAdaptiveMtFileRetry) { + this.getAdaptiveMtFileRetry = getAdaptiveMtFileRetry; + } + + public Retry getDeleteAdaptiveMtFileRetry() { + return this.deleteAdaptiveMtFileRetry; + } + + public void setDeleteAdaptiveMtFileRetry(Retry deleteAdaptiveMtFileRetry) { + this.deleteAdaptiveMtFileRetry = deleteAdaptiveMtFileRetry; + } + + public Retry getImportAdaptiveMtFileRetry() { + return this.importAdaptiveMtFileRetry; + } + + public void setImportAdaptiveMtFileRetry(Retry importAdaptiveMtFileRetry) { + this.importAdaptiveMtFileRetry = importAdaptiveMtFileRetry; + } + + public Retry getListAdaptiveMtFilesRetry() { + return this.listAdaptiveMtFilesRetry; + } + + public void setListAdaptiveMtFilesRetry(Retry listAdaptiveMtFilesRetry) { + this.listAdaptiveMtFilesRetry = listAdaptiveMtFilesRetry; + } + + public Retry getListAdaptiveMtSentencesRetry() { + return this.listAdaptiveMtSentencesRetry; + } + + public void setListAdaptiveMtSentencesRetry(Retry listAdaptiveMtSentencesRetry) { + this.listAdaptiveMtSentencesRetry = listAdaptiveMtSentencesRetry; + } +} diff --git a/spring-cloud-previews/google-cloud-translate-spring-starter/src/main/java/com/google/cloud/translate/v3/spring/package-info.java b/spring-cloud-previews/google-cloud-translate-spring-starter/src/main/java/com/google/cloud/translate/v3/spring/package-info.java new file mode 100644 index 0000000000..beebf3d89a --- /dev/null +++ b/spring-cloud-previews/google-cloud-translate-spring-starter/src/main/java/com/google/cloud/translate/v3/spring/package-info.java @@ -0,0 +1,23 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** Spring Boot auto-configurations for translate. */ +@Generated("by google-cloud-spring-generator") +@BetaApi("Autogenerated Spring autoconfiguration is not yet stable") +package com.google.cloud.translate.v3.spring; + +import com.google.api.core.BetaApi; +import javax.annotation.Generated; diff --git a/spring-cloud-previews/google-cloud-translate-spring-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-cloud-previews/google-cloud-translate-spring-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json new file mode 100644 index 0000000000..6bd5461f9c --- /dev/null +++ b/spring-cloud-previews/google-cloud-translate-spring-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -0,0 +1,10 @@ +{ + "properties": [ + { + "name": "com.google.cloud.translate.v3.translation-service.enabled", + "type": "java.lang.Boolean", + "description": "Auto-configure Google Cloud translate/TranslationService components.", + "defaultValue": true + } + ] +} \ No newline at end of file diff --git a/spring-cloud-previews/google-cloud-translate-spring-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-cloud-previews/google-cloud-translate-spring-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000000..d723057745 --- /dev/null +++ b/spring-cloud-previews/google-cloud-translate-spring-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.google.cloud.translate.v3.spring.TranslationServiceSpringAutoConfiguration \ No newline at end of file diff --git a/spring-cloud-previews/google-iam-policy-spring-starter/pom.xml b/spring-cloud-previews/google-iam-policy-spring-starter/pom.xml new file mode 100644 index 0000000000..27db2809f4 --- /dev/null +++ b/spring-cloud-previews/google-iam-policy-spring-starter/pom.xml @@ -0,0 +1,35 @@ + + + 4.0.0 + + + com.google.cloud + spring-cloud-gcp-starters + 5.1.1-SNAPSHOT + ../../spring-cloud-gcp-starters/pom.xml + + google-iam-policy-spring-starter + ${project.parent.version}-preview + Spring Boot Starter - iam + Spring Boot Starter with AutoConfiguration for iam + + + + + com.google.cloud + google-iam-policy + + + + org.springframework.boot + spring-boot-starter + + + + com.google.cloud + spring-cloud-gcp-autoconfigure + + + + \ No newline at end of file diff --git a/spring-cloud-previews/google-iam-policy-spring-starter/src/main/java/com/google/iam/v2/spring/PoliciesSpringAutoConfiguration.java b/spring-cloud-previews/google-iam-policy-spring-starter/src/main/java/com/google/iam/v2/spring/PoliciesSpringAutoConfiguration.java new file mode 100644 index 0000000000..bc4e18953a --- /dev/null +++ b/spring-cloud-previews/google-iam-policy-spring-starter/src/main/java/com/google/iam/v2/spring/PoliciesSpringAutoConfiguration.java @@ -0,0 +1,211 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.iam.v2.spring; + +import com.google.api.core.BetaApi; +import com.google.api.gax.core.CredentialsProvider; +import com.google.api.gax.core.ExecutorProvider; +import com.google.api.gax.retrying.RetrySettings; +import com.google.api.gax.rpc.HeaderProvider; +import com.google.api.gax.rpc.TransportChannelProvider; +import com.google.cloud.spring.autoconfigure.core.GcpContextAutoConfiguration; +import com.google.cloud.spring.core.DefaultCredentialsProvider; +import com.google.cloud.spring.core.Retry; +import com.google.cloud.spring.core.util.RetryUtil; +import com.google.iam.v2.PoliciesClient; +import com.google.iam.v2.PoliciesSettings; +import java.io.IOException; +import java.util.Collections; +import javax.annotation.Generated; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.AutoConfigureAfter; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * Auto-configuration for {@link PoliciesClient}. + * + *

Provides auto-configuration for Spring Boot + * + *

The default instance has everything set to sensible defaults: + * + *

+ */ +@Generated("by google-cloud-spring-generator") +@BetaApi("Autogenerated Spring autoconfiguration is not yet stable") +@AutoConfiguration +@AutoConfigureAfter(GcpContextAutoConfiguration.class) +@ConditionalOnClass(PoliciesClient.class) +@ConditionalOnProperty(value = "com.google.iam.v2.policies.enabled", matchIfMissing = true) +@EnableConfigurationProperties(PoliciesSpringProperties.class) +public class PoliciesSpringAutoConfiguration { + private final PoliciesSpringProperties clientProperties; + private final CredentialsProvider credentialsProvider; + private static final Log LOGGER = LogFactory.getLog(PoliciesSpringAutoConfiguration.class); + + protected PoliciesSpringAutoConfiguration( + PoliciesSpringProperties clientProperties, CredentialsProvider credentialsProvider) + throws IOException { + this.clientProperties = clientProperties; + if (this.clientProperties.getCredentials().hasKey()) { + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Using credentials from Policies-specific configuration"); + } + this.credentialsProvider = + ((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); + } else { + this.credentialsProvider = credentialsProvider; + } + } + + /** + * Provides a default transport channel provider bean, corresponding to the client library's + * default transport channel provider. If the library supports both GRPC and REST transport, and + * the useRest property is configured, the HTTP/JSON transport provider will be used instead of + * GRPC. + * + * @return a default transport channel provider. + */ + @Bean + @ConditionalOnMissingBean(name = "defaultPoliciesTransportChannelProvider") + public TransportChannelProvider defaultPoliciesTransportChannelProvider() { + if (this.clientProperties.getUseRest()) { + return PoliciesSettings.defaultHttpJsonTransportProviderBuilder().build(); + } + return PoliciesSettings.defaultTransportChannelProvider(); + } + + /** + * Provides a PoliciesSettings bean configured to use a DefaultCredentialsProvider and the client + * library's default transport channel provider (defaultPoliciesTransportChannelProvider()). It + * also configures the quota project ID and executor thread count, if provided through properties. + * + *

Retry settings are also configured from service-level and method-level properties specified + * in PoliciesSpringProperties. Method-level properties will take precedence over service-level + * properties if available, and client library defaults will be used if neither are specified. + * + * @param defaultTransportChannelProvider TransportChannelProvider to use in the settings. + * @return a {@link PoliciesSettings} bean configured with {@link TransportChannelProvider} bean. + */ + @Bean + @ConditionalOnMissingBean + public PoliciesSettings policiesSettings( + @Qualifier("defaultPoliciesTransportChannelProvider") + TransportChannelProvider defaultTransportChannelProvider) + throws IOException { + PoliciesSettings.Builder clientSettingsBuilder; + if (this.clientProperties.getUseRest()) { + clientSettingsBuilder = PoliciesSettings.newHttpJsonBuilder(); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Using REST (HTTP/JSON) transport."); + } + } else { + clientSettingsBuilder = PoliciesSettings.newBuilder(); + } + clientSettingsBuilder + .setCredentialsProvider(this.credentialsProvider) + .setTransportChannelProvider(defaultTransportChannelProvider) + .setHeaderProvider(this.userAgentHeaderProvider()); + if (this.clientProperties.getQuotaProjectId() != null) { + clientSettingsBuilder.setQuotaProjectId(this.clientProperties.getQuotaProjectId()); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Quota project id set to " + + this.clientProperties.getQuotaProjectId() + + ", this overrides project id from credentials."); + } + } + if (this.clientProperties.getExecutorThreadCount() != null) { + ExecutorProvider executorProvider = + PoliciesSettings.defaultExecutorProviderBuilder() + .setExecutorThreadCount(this.clientProperties.getExecutorThreadCount()) + .build(); + clientSettingsBuilder.setBackgroundExecutorProvider(executorProvider); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace( + "Background executor thread count is " + + this.clientProperties.getExecutorThreadCount()); + } + } + Retry serviceRetry = clientProperties.getRetry(); + if (serviceRetry != null) { + RetrySettings listPoliciesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listPoliciesSettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.listPoliciesSettings().setRetrySettings(listPoliciesRetrySettings); + + RetrySettings getPolicyRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getPolicySettings().getRetrySettings(), serviceRetry); + clientSettingsBuilder.getPolicySettings().setRetrySettings(getPolicyRetrySettings); + + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured service-level retry settings from properties."); + } + } + Retry listPoliciesRetry = clientProperties.getListPoliciesRetry(); + if (listPoliciesRetry != null) { + RetrySettings listPoliciesRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.listPoliciesSettings().getRetrySettings(), listPoliciesRetry); + clientSettingsBuilder.listPoliciesSettings().setRetrySettings(listPoliciesRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for listPolicies from properties."); + } + } + Retry getPolicyRetry = clientProperties.getGetPolicyRetry(); + if (getPolicyRetry != null) { + RetrySettings getPolicyRetrySettings = + RetryUtil.updateRetrySettings( + clientSettingsBuilder.getPolicySettings().getRetrySettings(), getPolicyRetry); + clientSettingsBuilder.getPolicySettings().setRetrySettings(getPolicyRetrySettings); + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Configured method-level retry settings for getPolicy from properties."); + } + } + return clientSettingsBuilder.build(); + } + + /** + * Provides a PoliciesClient bean configured with PoliciesSettings. + * + * @param policiesSettings settings to configure an instance of client bean. + * @return a {@link PoliciesClient} bean configured with {@link PoliciesSettings} + */ + @Bean + @ConditionalOnMissingBean + public PoliciesClient policiesClient(PoliciesSettings policiesSettings) throws IOException { + return PoliciesClient.create(policiesSettings); + } + + private HeaderProvider userAgentHeaderProvider() { + String springLibrary = "spring-autogen-policies"; + String version = this.getClass().getPackage().getImplementationVersion(); + return () -> Collections.singletonMap("user-agent", springLibrary + "/" + version); + } +} diff --git a/spring-cloud-previews/google-iam-policy-spring-starter/src/main/java/com/google/iam/v2/spring/PoliciesSpringProperties.java b/spring-cloud-previews/google-iam-policy-spring-starter/src/main/java/com/google/iam/v2/spring/PoliciesSpringProperties.java new file mode 100644 index 0000000000..46925a4fbb --- /dev/null +++ b/spring-cloud-previews/google-iam-policy-spring-starter/src/main/java/com/google/iam/v2/spring/PoliciesSpringProperties.java @@ -0,0 +1,108 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.iam.v2.spring; + +import com.google.api.core.BetaApi; +import com.google.cloud.spring.core.Credentials; +import com.google.cloud.spring.core.CredentialsSupplier; +import com.google.cloud.spring.core.Retry; +import javax.annotation.Generated; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.context.properties.NestedConfigurationProperty; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** Provides default property values for Policies client bean */ +@Generated("by google-cloud-spring-generator") +@BetaApi("Autogenerated Spring autoconfiguration is not yet stable") +@ConfigurationProperties("com.google.iam.v2.policies") +public class PoliciesSpringProperties implements CredentialsSupplier { + /** OAuth2 credentials to authenticate and authorize calls to Google Cloud Client Libraries. */ + @NestedConfigurationProperty + private final Credentials credentials = + new Credentials("https://www.googleapis.com/auth/cloud-platform"); + /** Quota project to use for billing. */ + private String quotaProjectId; + /** Number of threads used for executors. */ + private Integer executorThreadCount; + /** Allow override of default transport channel provider to use REST instead of gRPC. */ + private boolean useRest = false; + /** Allow override of retry settings at service level, applying to all of its RPC methods. */ + @NestedConfigurationProperty private Retry retry; + /** + * Allow override of retry settings at method-level for listPolicies. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry listPoliciesRetry; + /** + * Allow override of retry settings at method-level for getPolicy. If defined, this takes + * precedence over service-level retry configurations for that RPC method. + */ + @NestedConfigurationProperty private Retry getPolicyRetry; + + @Override + public Credentials getCredentials() { + return this.credentials; + } + + public String getQuotaProjectId() { + return this.quotaProjectId; + } + + public void setQuotaProjectId(String quotaProjectId) { + this.quotaProjectId = quotaProjectId; + } + + public boolean getUseRest() { + return this.useRest; + } + + public void setUseRest(boolean useRest) { + this.useRest = useRest; + } + + public Integer getExecutorThreadCount() { + return this.executorThreadCount; + } + + public void setExecutorThreadCount(Integer executorThreadCount) { + this.executorThreadCount = executorThreadCount; + } + + public Retry getRetry() { + return this.retry; + } + + public void setRetry(Retry retry) { + this.retry = retry; + } + + public Retry getListPoliciesRetry() { + return this.listPoliciesRetry; + } + + public void setListPoliciesRetry(Retry listPoliciesRetry) { + this.listPoliciesRetry = listPoliciesRetry; + } + + public Retry getGetPolicyRetry() { + return this.getPolicyRetry; + } + + public void setGetPolicyRetry(Retry getPolicyRetry) { + this.getPolicyRetry = getPolicyRetry; + } +} diff --git a/spring-cloud-previews/google-iam-policy-spring-starter/src/main/java/com/google/iam/v2/spring/package-info.java b/spring-cloud-previews/google-iam-policy-spring-starter/src/main/java/com/google/iam/v2/spring/package-info.java new file mode 100644 index 0000000000..60de0ba14a --- /dev/null +++ b/spring-cloud-previews/google-iam-policy-spring-starter/src/main/java/com/google/iam/v2/spring/package-info.java @@ -0,0 +1,23 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** Spring Boot auto-configurations for iam. */ +@Generated("by google-cloud-spring-generator") +@BetaApi("Autogenerated Spring autoconfiguration is not yet stable") +package com.google.iam.v2.spring; + +import com.google.api.core.BetaApi; +import javax.annotation.Generated; diff --git a/spring-cloud-previews/google-iam-policy-spring-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-cloud-previews/google-iam-policy-spring-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json new file mode 100644 index 0000000000..cc18f3f34c --- /dev/null +++ b/spring-cloud-previews/google-iam-policy-spring-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -0,0 +1,10 @@ +{ + "properties": [ + { + "name": "com.google.iam.v2.policies.enabled", + "type": "java.lang.Boolean", + "description": "Auto-configure Google Cloud iam/Policies components.", + "defaultValue": true + } + ] +} \ No newline at end of file diff --git a/spring-cloud-previews/google-iam-policy-spring-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-cloud-previews/google-iam-policy-spring-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000000..17baceb3d3 --- /dev/null +++ b/spring-cloud-previews/google-iam-policy-spring-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.google.iam.v2.spring.PoliciesSpringAutoConfiguration \ No newline at end of file diff --git a/spring-cloud-previews/pom.xml b/spring-cloud-previews/pom.xml index 22f4b02394..11ffbe67af 100644 --- a/spring-cloud-previews/pom.xml +++ b/spring-cloud-previews/pom.xml @@ -21,6 +21,7 @@ google-cloud-vmmigration-spring-starter google-cloud-video-transcoder-spring-starter google-cloud-video-intelligence-spring-starter + google-cloud-translate-spring-starter google-cloud-trace-spring-starter google-cloud-tpu-spring-starter google-cloud-texttospeech-spring-starter @@ -58,6 +59,7 @@ google-cloud-iot-spring-starter google-cloud-ids-spring-starter google-cloud-iamcredentials-spring-starter + google-iam-policy-spring-starter google-iam-admin-spring-starter google-cloud-gsuite-addons-spring-starter google-cloud-gkehub-spring-starter