From f4098d91528d6ff8fad8e67696731a7fa16aa7ac Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 26 May 2026 16:52:34 -0400 Subject: [PATCH 1/7] feat(dataplex): [Dataplex] Add `RequestDataProductAccess` method to request access to `DataAssets` with in a `DataProduct` (#9209) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(dataplex): Add `RequestDataProductAccess` method to request access to `DataAssets` with in a `DataProduct` feat(dataplex): Add `ApprovalWorkflowService` to manage `ChangeRequest` resource feat(dataplex): Add `ModifyEntry` method to `CatalogService` feat(dataplex): Add `UnstructuredDataOptions` message feat(dataplex): Add `Mode` enum in `DataProfileSpec` message feat(dataplex): Add `CancelDataScanJob` method to `DataScanService` feat(dataplex): Add `DataQualityRuleTemplate` message docs: A comment for message `Aspect` is changed docs: A comment for field `view` in message `.google.cloud.dataplex.v1.GetEntryRequest` is changed docs: A comment for field `view` in message `.google.cloud.dataplex.v1.LookupEntryRequest` is changed docs: A comment for field `resources` in message `.google.cloud.dataplex.v1.LookupContextRequest` is changed docs: A comment for field `options` in message `.google.cloud.dataplex.v1.LookupContextRequest` is changed docs: A comment for field `context` in message `.google.cloud.dataplex.v1.LookupContextResponse` is changed docs: A comment for field `data_scan_id` in message `.google.cloud.dataplex.v1.CreateDataScanRequest` is changed docs: A comment for message `DataScan` is changed docs: A comment for field `resource` in message `.google.cloud.dataplex.v1.DataSource` is changed PiperOrigin-RevId: 920743950 Source-Link: https://github.com/googleapis/googleapis/commit/1742af79e7621f80e7843109769b23e30ebfb501 Source-Link: https://github.com/googleapis/googleapis-gen/commit/cd4cc02e97b2d1329b993d2d405342ce8af35810 Copy-Tag: eyJwIjoiRGF0YXBsZXgvLk93bEJvdC55YW1sIiwiaCI6ImNkNGNjMDJlOTdiMmQxMzI5Yjk5M2QyZDQwNTM0MmNlOGFmMzU4MTAifQ== * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- Dataplex/metadata/V1/ApprovalWorkflow.php | 32 + Dataplex/metadata/V1/BusinessGlossary.php | 2 +- Dataplex/metadata/V1/Catalog.php | 2 +- Dataplex/metadata/V1/Cmek.php | 2 +- Dataplex/metadata/V1/DataDiscovery.php | 2 +- Dataplex/metadata/V1/DataDocumentation.php | 3 +- Dataplex/metadata/V1/DataProducts.php | 3 +- Dataplex/metadata/V1/DataProfile.php | 2 +- Dataplex/metadata/V1/DataQuality.php | 3 +- .../metadata/V1/DataQualityRuleTemplate.php | 25 + Dataplex/metadata/V1/DataTaxonomy.php | 2 +- Dataplex/metadata/V1/Datascans.php | 2 +- Dataplex/metadata/V1/Logs.php | 2 +- Dataplex/metadata/V1/Metadata.php | 2 +- Dataplex/metadata/V1/Service.php | 2 +- .../list_locations.php | 20 +- .../CatalogServiceClient/list_locations.php | 20 +- .../CatalogServiceClient/lookup_context.php | 6 +- .../V1/CatalogServiceClient/modify_entry.php | 78 ++ .../V1/CmekServiceClient/list_locations.php | 20 +- .../ContentServiceClient/list_locations.php | 20 +- .../list_locations.php | 20 +- .../request_data_product_access.php | 82 ++ .../cancel_data_scan_job.php | 79 ++ .../create_data_scan.php | 15 +- .../DataScanServiceClient/list_locations.php | 20 +- .../list_locations.php | 20 +- .../DataplexServiceClient/list_locations.php | 20 +- .../MetadataServiceClient/list_locations.php | 20 +- Dataplex/src/V1/Aspect.php | 2 +- Dataplex/src/V1/CancelDataScanJobRequest.php | 96 ++ Dataplex/src/V1/CancelDataScanJobResponse.php | 33 + Dataplex/src/V1/ChangeRequest.php | 1031 +++++++++++++++++ Dataplex/src/V1/ChangeRequest/ChangeType.php | 152 +++ Dataplex/src/V1/ChangeRequest/State.php | 86 ++ .../Client/BusinessGlossaryServiceClient.php | 27 +- .../src/V1/Client/CatalogServiceClient.php | 48 +- Dataplex/src/V1/Client/CmekServiceClient.php | 25 +- .../src/V1/Client/ContentServiceClient.php | 20 +- .../V1/Client/DataProductServiceClient.php | 221 +++- .../src/V1/Client/DataScanServiceClient.php | 80 +- .../V1/Client/DataTaxonomyServiceClient.php | 25 +- .../src/V1/Client/DataplexServiceClient.php | 27 +- .../src/V1/Client/MetadataServiceClient.php | 25 +- Dataplex/src/V1/CreateDataScanRequest.php | 21 +- .../V1/DataDiscoverySpec/StorageConfig.php | 44 + .../StorageConfig/UnstructuredDataOptions.php | 71 ++ Dataplex/src/V1/DataProduct.php | 44 + .../V1/DataProduct/AccessApprovalConfig.php | 75 ++ Dataplex/src/V1/DataProduct/Principal.php | 48 + Dataplex/src/V1/DataProductAccessRequest.php | 216 ++++ Dataplex/src/V1/DataProfileSpec.php | 34 + Dataplex/src/V1/DataProfileSpec/Mode.php | 66 ++ Dataplex/src/V1/DataQualityRule.php | 129 +++ .../src/V1/DataQualityRule/RuleSource.php | 75 ++ .../RuleSource/RulePathElement.php | 118 ++ .../RulePathElement/EntryLinkSource.php | 117 ++ .../RulePathElement/EntrySource.php | 147 +++ .../V1/DataQualityRule/TemplateReference.php | 213 ++++ .../TemplateReference/ParameterValue.php | 67 ++ Dataplex/src/V1/DataQualityRuleTemplate.php | 220 ++++ .../ParameterDescription.php | 115 ++ .../src/V1/DataQualityRuleTemplate/Sql.php | 68 ++ .../V1/DataQualityScanRuleResult/RuleType.php | 8 + Dataplex/src/V1/DataQualitySpec.php | 132 +++ Dataplex/src/V1/DataScan.php | 57 +- Dataplex/src/V1/DataScanJob.php | 34 + Dataplex/src/V1/DataScanJob/State.php | 7 + Dataplex/src/V1/DataSource.php | 21 +- Dataplex/src/V1/ExecutionIdentity.php | 144 +++ .../DataplexServiceAgent.php | 33 + .../V1/ExecutionIdentity/ServiceAccount.php | 83 ++ .../V1/ExecutionIdentity/UserCredential.php | 33 + Dataplex/src/V1/GetEntryRequest.php | 12 + Dataplex/src/V1/LookupContextRequest.php | 86 +- Dataplex/src/V1/LookupContextResponse.php | 12 +- Dataplex/src/V1/LookupEntryRequest.php | 12 + Dataplex/src/V1/ModifyEntryRequest.php | 299 +++++ .../V1/RequestDataProductAccessRequest.php | 175 +++ .../V1/RequestDataProductAccessResponse.php | 75 ++ Dataplex/src/V1/gapic_metadata.json | 15 + ...ss_glossary_service_rest_client_config.php | 28 +- .../catalog_service_client_config.json | 23 +- .../catalog_service_descriptor_config.php | 12 + .../catalog_service_rest_client_config.php | 40 +- .../cmek_service_rest_client_config.php | 28 +- .../content_service_rest_client_config.php | 28 +- .../data_product_service_client_config.json | 5 + ...data_product_service_descriptor_config.php | 19 + ...ata_product_service_rest_client_config.php | 40 +- .../data_scan_service_client_config.json | 5 + .../data_scan_service_descriptor_config.php | 13 + .../data_scan_service_rest_client_config.php | 43 +- ...ta_taxonomy_service_rest_client_config.php | 28 +- .../dataplex_service_rest_client_config.php | 28 +- .../metadata_service_rest_client_config.php | 28 +- .../V1/Client/CatalogServiceClientTest.php | 84 +- .../Client/DataProductServiceClientTest.php | 76 ++ .../V1/Client/DataScanServiceClientTest.php | 165 +-- 99 files changed, 5846 insertions(+), 397 deletions(-) create mode 100644 Dataplex/metadata/V1/ApprovalWorkflow.php create mode 100644 Dataplex/metadata/V1/DataQualityRuleTemplate.php create mode 100644 Dataplex/samples/V1/CatalogServiceClient/modify_entry.php create mode 100644 Dataplex/samples/V1/DataProductServiceClient/request_data_product_access.php create mode 100644 Dataplex/samples/V1/DataScanServiceClient/cancel_data_scan_job.php create mode 100644 Dataplex/src/V1/CancelDataScanJobRequest.php create mode 100644 Dataplex/src/V1/CancelDataScanJobResponse.php create mode 100644 Dataplex/src/V1/ChangeRequest.php create mode 100644 Dataplex/src/V1/ChangeRequest/ChangeType.php create mode 100644 Dataplex/src/V1/ChangeRequest/State.php create mode 100644 Dataplex/src/V1/DataDiscoverySpec/StorageConfig/UnstructuredDataOptions.php create mode 100644 Dataplex/src/V1/DataProduct/AccessApprovalConfig.php create mode 100644 Dataplex/src/V1/DataProductAccessRequest.php create mode 100644 Dataplex/src/V1/DataProfileSpec/Mode.php create mode 100644 Dataplex/src/V1/DataQualityRule/RuleSource.php create mode 100644 Dataplex/src/V1/DataQualityRule/RuleSource/RulePathElement.php create mode 100644 Dataplex/src/V1/DataQualityRule/RuleSource/RulePathElement/EntryLinkSource.php create mode 100644 Dataplex/src/V1/DataQualityRule/RuleSource/RulePathElement/EntrySource.php create mode 100644 Dataplex/src/V1/DataQualityRule/TemplateReference.php create mode 100644 Dataplex/src/V1/DataQualityRule/TemplateReference/ParameterValue.php create mode 100644 Dataplex/src/V1/DataQualityRuleTemplate.php create mode 100644 Dataplex/src/V1/DataQualityRuleTemplate/ParameterDescription.php create mode 100644 Dataplex/src/V1/DataQualityRuleTemplate/Sql.php create mode 100644 Dataplex/src/V1/ExecutionIdentity.php create mode 100644 Dataplex/src/V1/ExecutionIdentity/DataplexServiceAgent.php create mode 100644 Dataplex/src/V1/ExecutionIdentity/ServiceAccount.php create mode 100644 Dataplex/src/V1/ExecutionIdentity/UserCredential.php create mode 100644 Dataplex/src/V1/ModifyEntryRequest.php create mode 100644 Dataplex/src/V1/RequestDataProductAccessRequest.php create mode 100644 Dataplex/src/V1/RequestDataProductAccessResponse.php diff --git a/Dataplex/metadata/V1/ApprovalWorkflow.php b/Dataplex/metadata/V1/ApprovalWorkflow.php new file mode 100644 index 000000000000..57fdbb674317 --- /dev/null +++ b/Dataplex/metadata/V1/ApprovalWorkflow.php @@ -0,0 +1,32 @@ +internalAddGeneratedFile( + "\x0A\x99\x19\x0A0google/cloud/dataplex/v1/approval_workflow.proto\x12\x18google.cloud.dataplex.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x1Bgoogle/api/field_info.proto\x1A\x19google/api/resource.proto\x1A0google/cloud/dataplex/v1/business_glossary.proto\x1A&google/cloud/dataplex/v1/catalog.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"\xAE\x13\x0A\x0DChangeRequest\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12\x18\x0A\x03uid\x18\x02 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x1A\x0A\x0Djustification\x18\x05 \x01(\x09B\x03\xE0A\x01\x12H\x0A\x06labels\x18\x06 \x03(\x0B23.google.cloud.dataplex.v1.ChangeRequest.LabelsEntryB\x03\xE0A\x01\x12\x13\x0A\x06author\x18\x07 \x01(\x09B\x03\xE0A\x03\x12A\x0A\x05state\x18\x08 \x01(\x0E2-.google.cloud.dataplex.v1.ChangeRequest.StateB\x03\xE0A\x03\x12\x1B\x0A\x08resource\x18\x09 \x01(\x09B\x09\xE0A\x03\xFAA\x03\x0A\x01*\x12D\x0A\x0Ccreate_entry\x18\x0A \x01(\x0B2,.google.cloud.dataplex.v1.CreateEntryRequestH\x00\x12D\x0A\x0Cupdate_entry\x18\x0B \x01(\x0B2,.google.cloud.dataplex.v1.UpdateEntryRequestH\x00\x12D\x0A\x0Cdelete_entry\x18\x0C \x01(\x0B2,.google.cloud.dataplex.v1.DeleteEntryRequestH\x00\x12M\x0A\x11create_entry_link\x18\x0D \x01(\x0B20.google.cloud.dataplex.v1.CreateEntryLinkRequestH\x00\x12M\x0A\x11delete_entry_link\x18\x0E \x01(\x0B20.google.cloud.dataplex.v1.DeleteEntryLinkRequestH\x00\x12J\x0A\x0Fcreate_glossary\x18\x14 \x01(\x0B2/.google.cloud.dataplex.v1.CreateGlossaryRequestH\x00\x12J\x0A\x0Fupdate_glossary\x18\x15 \x01(\x0B2/.google.cloud.dataplex.v1.UpdateGlossaryRequestH\x00\x12J\x0A\x0Fdelete_glossary\x18\x16 \x01(\x0B2/.google.cloud.dataplex.v1.DeleteGlossaryRequestH\x00\x12[\x0A\x18create_glossary_category\x18\x17 \x01(\x0B27.google.cloud.dataplex.v1.CreateGlossaryCategoryRequestH\x00\x12[\x0A\x18update_glossary_category\x18\x18 \x01(\x0B27.google.cloud.dataplex.v1.UpdateGlossaryCategoryRequestH\x00\x12[\x0A\x18delete_glossary_category\x18\x1A \x01(\x0B27.google.cloud.dataplex.v1.DeleteGlossaryCategoryRequestH\x00\x12S\x0A\x14create_glossary_term\x18\x1B \x01(\x0B23.google.cloud.dataplex.v1.CreateGlossaryTermRequestH\x00\x12S\x0A\x14update_glossary_term\x18\x1C \x01(\x0B23.google.cloud.dataplex.v1.UpdateGlossaryTermRequestH\x00\x12S\x0A\x14delete_glossary_term\x18\x1E \x01(\x0B23.google.cloud.dataplex.v1.DeleteGlossaryTermRequestH\x00\x12Y\x0A\x1Bdata_product_access_request\x18 \x01(\x0B22.google.cloud.dataplex.v1.DataProductAccessRequestH\x00\x12L\x0A\x0Bchange_type\x18\x13 \x01(\x0E22.google.cloud.dataplex.v1.ChangeRequest.ChangeTypeB\x03\xE0A\x03\x12\x1E\x0A\x11rejection_comment\x18\x10 \x01(\x09B\x03\xE0A\x03\x12\x15\x0A\x08approver\x18\x11 \x01(\x09B\x03\xE0A\x03\x12\x11\x0A\x04etag\x18\x12 \x01(\x09B\x03\xE0A\x01\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"]\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x07\x0A\x03NEW\x10\x01\x12\x0C\x0A\x08APPROVED\x10\x02\x12\x0C\x0A\x08REJECTED\x10\x03\x12\x0B\x0A\x07EXPIRED\x10\x04\x12\x0B\x0A\x07REVOKED\x10\x05\"\x95\x03\x0A\x0AChangeType\x12\x1B\x0A\x17CHANGE_TYPE_UNSPECIFIED\x10\x00\x12\x10\x0A\x0CCREATE_ENTRY\x10\x01\x12\x10\x0A\x0CUPDATE_ENTRY\x10\x02\x12\x10\x0A\x0CDELETE_ENTRY\x10\x03\x12\x15\x0A\x11CREATE_ENTRY_LINK\x10\x04\x12\x15\x0A\x11DELETE_ENTRY_LINK\x10\x05\x12\x13\x0A\x0FCREATE_GLOSSARY\x10\x07\x12\x13\x0A\x0FUPDATE_GLOSSARY\x10\x08\x12\x13\x0A\x0FDELETE_GLOSSARY\x10\x09\x12\x1C\x0A\x18CREATE_GLOSSARY_CATEGORY\x10\x0A\x12\x1C\x0A\x18UPDATE_GLOSSARY_CATEGORY\x10\x0B\x12\x1C\x0A\x18DELETE_GLOSSARY_CATEGORY\x10\x0D\x12\x18\x0A\x14CREATE_GLOSSARY_TERM\x10\x0E\x12\x18\x0A\x14UPDATE_GLOSSARY_TERM\x10\x0F\x12\x18\x0A\x14DELETE_GLOSSARY_TERM\x10\x11\x12\x1F\x0A\x1BREQUEST_DATA_PRODUCT_ACCESS\x10!:\x93\x01\xEAA\x8F\x01\x0A%dataplex.googleapis.com/ChangeRequest\x12Gprojects/{project}/locations/{location}/changeRequests/{change_request}*\x0EchangeRequests2\x0DchangeRequestB\x10\x0A\x0Echange_payload\"\xDC\x01\x0A\x18DataProductAccessRequest\x12;\x0A\x06parent\x18\x01 \x01(\x09B+\xE0A\x02\xFAA%\x0A#dataplex.googleapis.com/DataProduct\x12\x1C\x0A\x0Faccess_group_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12&\x0A\x19access_group_display_name\x18\x04 \x01(\x09B\x03\xE0A\x03\x12%\x0A\x13requested_principal\x18\x03 \x01(\x09B\x03\xE0A\x01H\x00\x88\x01\x01B\x16\x0A\x14_requested_principalB\xC5\x01\x0A\x1Ccom.google.cloud.dataplex.v1B\x15ApprovalWorkflowProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb\xAA\x02\x18Google.Cloud.Dataplex.V1\xCA\x02\x18Google\\Cloud\\Dataplex\\V1\xEA\x02\x1BGoogle::Cloud::Dataplex::V1b\x06proto3" + , true); + + static::$is_initialized = true; + } +} + diff --git a/Dataplex/metadata/V1/BusinessGlossary.php b/Dataplex/metadata/V1/BusinessGlossary.php index dd6b2cfdbe3b..8233d5ce8709 100644 --- a/Dataplex/metadata/V1/BusinessGlossary.php +++ b/Dataplex/metadata/V1/BusinessGlossary.php @@ -25,7 +25,7 @@ public static function initOnce() { \GPBMetadata\Google\Protobuf\FieldMask::initOnce(); \GPBMetadata\Google\Protobuf\Timestamp::initOnce(); $pool->internalAddGeneratedFile( - "\x0A\x80=\x0A0google/cloud/dataplex/v1/business_glossary.proto\x12\x18google.cloud.dataplex.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x1Bgoogle/api/field_info.proto\x1A\x19google/api/resource.proto\x1A&google/cloud/dataplex/v1/service.proto\x1A#google/longrunning/operations.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"\x94\x04\x0A\x08Glossary\x12\x14\x0A\x04name\x18\x01 \x01(\x09B\x06\xE0A\x03\xE0A\x08\x12\x18\x0A\x03uid\x18\x02 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x12\x19\x0A\x0Cdisplay_name\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x18\x0A\x0Bdescription\x18\x04 \x01(\x09B\x03\xE0A\x01\x124\x0A\x0Bcreate_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12C\x0A\x06labels\x18\x07 \x03(\x0B2..google.cloud.dataplex.v1.Glossary.LabelsEntryB\x03\xE0A\x01\x12\x17\x0A\x0Aterm_count\x18\x08 \x01(\x05B\x03\xE0A\x03\x12\x1B\x0A\x0Ecategory_count\x18\x09 \x01(\x05B\x03\xE0A\x03\x12\x11\x0A\x04etag\x18\x0A \x01(\x09B\x03\xE0A\x01\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:z\xEAAw\x0A dataplex.googleapis.com/Glossary\x12=projects/{project}/locations/{location}/glossaries/{glossary}*\x0Aglossaries2\x08glossary\"\x99\x04\x0A\x10GlossaryCategory\x12\x14\x0A\x04name\x18\x01 \x01(\x09B\x06\xE0A\x03\xE0A\x08\x12\x18\x0A\x03uid\x18\x02 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x12\x19\x0A\x0Cdisplay_name\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x18\x0A\x0Bdescription\x18\x04 \x01(\x09B\x03\xE0A\x01\x124\x0A\x0Bcreate_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12K\x0A\x06labels\x18\x07 \x03(\x0B26.google.cloud.dataplex.v1.GlossaryCategory.LabelsEntryB\x03\xE0A\x01\x12\x13\x0A\x06parent\x18\x08 \x01(\x09B\x03\xE0A\x02\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:\xA2\x01\xEAA\x9E\x01\x0A(dataplex.googleapis.com/GlossaryCategory\x12\\projects/{project}/locations/{location}/glossaries/{glossary}/categories/{glossary_category}*\x0Acategories2\x08category\"\xA0\x04\x0A\x0CGlossaryTerm\x12\x14\x0A\x04name\x18\x01 \x01(\x09B\x06\xE0A\x03\xE0A\x08\x12\x18\x0A\x03uid\x18\x02 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x12\x19\x0A\x0Cdisplay_name\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x18\x0A\x0Bdescription\x18\x04 \x01(\x09B\x03\xE0A\x01\x124\x0A\x0Bcreate_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12G\x0A\x06labels\x18\x07 \x03(\x0B22.google.cloud.dataplex.v1.GlossaryTerm.LabelsEntryB\x03\xE0A\x01\x128\x0A\x06parent\x18\x08 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/Glossary\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:\x8C\x01\xEAA\x88\x01\x0A\$dataplex.googleapis.com/GlossaryTerm\x12Sprojects/{project}/locations/{location}/glossaries/{glossary}/terms/{glossary_term}*\x05terms2\x04term\"\xC3\x01\x0A\x15CreateGlossaryRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x18\x0A\x0Bglossary_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x129\x0A\x08glossary\x18\x03 \x01(\x0B2\".google.cloud.dataplex.v1.GlossaryB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\xA4\x01\x0A\x15UpdateGlossaryRequest\x129\x0A\x08glossary\x18\x01 \x01(\x0B2\".google.cloud.dataplex.v1.GlossaryB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"b\x0A\x15DeleteGlossaryRequest\x126\x0A\x04name\x18\x01 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/Glossary\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x01\"L\x0A\x12GetGlossaryRequest\x126\x0A\x04name\x18\x01 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/Glossary\"\xAF\x01\x0A\x15ListGlossariesRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x88\x01\x0A\x16ListGlossariesResponse\x126\x0A\x0Aglossaries\x18\x01 \x03(\x0B2\".google.cloud.dataplex.v1.Glossary\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"\xB6\x01\x0A\x1DCreateGlossaryCategoryRequest\x128\x0A\x06parent\x18\x01 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/Glossary\x12\x18\x0A\x0Bcategory_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12A\x0A\x08category\x18\x03 \x01(\x0B2*.google.cloud.dataplex.v1.GlossaryCategoryB\x03\xE0A\x02\"\x98\x01\x0A\x1DUpdateGlossaryCategoryRequest\x12A\x0A\x08category\x18\x01 \x01(\x0B2*.google.cloud.dataplex.v1.GlossaryCategoryB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\"_\x0A\x1DDeleteGlossaryCategoryRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(dataplex.googleapis.com/GlossaryCategory\"\\\x0A\x1AGetGlossaryCategoryRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(dataplex.googleapis.com/GlossaryCategory\"\xB6\x01\x0A\x1DListGlossaryCategoriesRequest\x128\x0A\x06parent\x18\x01 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/Glossary\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x98\x01\x0A\x1EListGlossaryCategoriesResponse\x12>\x0A\x0Acategories\x18\x01 \x03(\x0B2*.google.cloud.dataplex.v1.GlossaryCategory\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"\xA6\x01\x0A\x19CreateGlossaryTermRequest\x128\x0A\x06parent\x18\x01 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/Glossary\x12\x14\x0A\x07term_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x129\x0A\x04term\x18\x03 \x01(\x0B2&.google.cloud.dataplex.v1.GlossaryTermB\x03\xE0A\x02\"\x8C\x01\x0A\x19UpdateGlossaryTermRequest\x129\x0A\x04term\x18\x01 \x01(\x0B2&.google.cloud.dataplex.v1.GlossaryTermB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\"W\x0A\x19DeleteGlossaryTermRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$dataplex.googleapis.com/GlossaryTerm\"T\x0A\x16GetGlossaryTermRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$dataplex.googleapis.com/GlossaryTerm\"\xB1\x01\x0A\x18ListGlossaryTermsRequest\x128\x0A\x06parent\x18\x01 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/Glossary\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x8A\x01\x0A\x19ListGlossaryTermsResponse\x125\x0A\x05terms\x18\x01 \x03(\x0B2&.google.cloud.dataplex.v1.GlossaryTerm\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x092\xD6\x18\x0A\x17BusinessGlossaryService\x12\xE0\x01\x0A\x0ECreateGlossary\x12/.google.cloud.dataplex.v1.CreateGlossaryRequest\x1A\x1D.google.longrunning.Operation\"~\xCAA\x1D\x0A\x08Glossary\x12\x11OperationMetadata\xDAA\x1Bparent,glossary,glossary_id\x82\xD3\xE4\x93\x02:\"./v1/{parent=projects/*/locations/*}/glossaries:\x08glossary\x12\xE3\x01\x0A\x0EUpdateGlossary\x12/.google.cloud.dataplex.v1.UpdateGlossaryRequest\x1A\x1D.google.longrunning.Operation\"\x80\x01\xCAA\x1D\x0A\x08Glossary\x12\x11OperationMetadata\xDAA\x14glossary,update_mask\x82\xD3\xE4\x93\x02C27/v1/{glossary.name=projects/*/locations/*/glossaries/*}:\x08glossary\x12\xCC\x01\x0A\x0EDeleteGlossary\x12/.google.cloud.dataplex.v1.DeleteGlossaryRequest\x1A\x1D.google.longrunning.Operation\"j\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x020*./v1/{name=projects/*/locations/*/glossaries/*}\x12\x9E\x01\x0A\x0BGetGlossary\x12,.google.cloud.dataplex.v1.GetGlossaryRequest\x1A\".google.cloud.dataplex.v1.Glossary\"=\xDAA\x04name\x82\xD3\xE4\x93\x020\x12./v1/{name=projects/*/locations/*/glossaries/*}\x12\xB4\x01\x0A\x0EListGlossaries\x12/.google.cloud.dataplex.v1.ListGlossariesRequest\x1A0.google.cloud.dataplex.v1.ListGlossariesResponse\"?\xDAA\x06parent\x82\xD3\xE4\x93\x020\x12./v1/{parent=projects/*/locations/*}/glossaries\x12\xEA\x01\x0A\x16CreateGlossaryCategory\x127.google.cloud.dataplex.v1.CreateGlossaryCategoryRequest\x1A*.google.cloud.dataplex.v1.GlossaryCategory\"k\xDAA\x1Bparent,category,category_id\x82\xD3\xE4\x93\x02G\";/v1/{parent=projects/*/locations/*/glossaries/*}/categories:\x08category\x12\xEC\x01\x0A\x16UpdateGlossaryCategory\x127.google.cloud.dataplex.v1.UpdateGlossaryCategoryRequest\x1A*.google.cloud.dataplex.v1.GlossaryCategory\"m\xDAA\x14category,update_mask\x82\xD3\xE4\x93\x02P2D/v1/{category.name=projects/*/locations/*/glossaries/*/categories/*}:\x08category\x12\xB5\x01\x0A\x16DeleteGlossaryCategory\x127.google.cloud.dataplex.v1.DeleteGlossaryCategoryRequest\x1A\x16.google.protobuf.Empty\"J\xDAA\x04name\x82\xD3\xE4\x93\x02=*;/v1/{name=projects/*/locations/*/glossaries/*/categories/*}\x12\xC3\x01\x0A\x13GetGlossaryCategory\x124.google.cloud.dataplex.v1.GetGlossaryCategoryRequest\x1A*.google.cloud.dataplex.v1.GlossaryCategory\"J\xDAA\x04name\x82\xD3\xE4\x93\x02=\x12;/v1/{name=projects/*/locations/*/glossaries/*/categories/*}\x12\xD9\x01\x0A\x16ListGlossaryCategories\x127.google.cloud.dataplex.v1.ListGlossaryCategoriesRequest\x1A8.google.cloud.dataplex.v1.ListGlossaryCategoriesResponse\"L\xDAA\x06parent\x82\xD3\xE4\x93\x02=\x12;/v1/{parent=projects/*/locations/*/glossaries/*}/categories\x12\xCD\x01\x0A\x12CreateGlossaryTerm\x123.google.cloud.dataplex.v1.CreateGlossaryTermRequest\x1A&.google.cloud.dataplex.v1.GlossaryTerm\"Z\xDAA\x13parent,term,term_id\x82\xD3\xE4\x93\x02>\"6/v1/{parent=projects/*/locations/*/glossaries/*}/terms:\x04term\x12\xCF\x01\x0A\x12UpdateGlossaryTerm\x123.google.cloud.dataplex.v1.UpdateGlossaryTermRequest\x1A&.google.cloud.dataplex.v1.GlossaryTerm\"\\\xDAA\x10term,update_mask\x82\xD3\xE4\x93\x02C2;/v1/{term.name=projects/*/locations/*/glossaries/*/terms/*}:\x04term\x12\xA8\x01\x0A\x12DeleteGlossaryTerm\x123.google.cloud.dataplex.v1.DeleteGlossaryTermRequest\x1A\x16.google.protobuf.Empty\"E\xDAA\x04name\x82\xD3\xE4\x93\x028*6/v1/{name=projects/*/locations/*/glossaries/*/terms/*}\x12\xB2\x01\x0A\x0FGetGlossaryTerm\x120.google.cloud.dataplex.v1.GetGlossaryTermRequest\x1A&.google.cloud.dataplex.v1.GlossaryTerm\"E\xDAA\x04name\x82\xD3\xE4\x93\x028\x126/v1/{name=projects/*/locations/*/glossaries/*/terms/*}\x12\xC5\x01\x0A\x11ListGlossaryTerms\x122.google.cloud.dataplex.v1.ListGlossaryTermsRequest\x1A3.google.cloud.dataplex.v1.ListGlossaryTermsResponse\"G\xDAA\x06parent\x82\xD3\xE4\x93\x028\x126/v1/{parent=projects/*/locations/*/glossaries/*}/terms\x1AK\xCAA\x17dataplex.googleapis.com\xD2A.https://www.googleapis.com/auth/cloud-platformBq\x0A\x1Ccom.google.cloud.dataplex.v1B\x15BusinessGlossaryProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" + "\x0A\xA1>\x0A0google/cloud/dataplex/v1/business_glossary.proto\x12\x18google.cloud.dataplex.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x1Bgoogle/api/field_info.proto\x1A\x19google/api/resource.proto\x1A&google/cloud/dataplex/v1/service.proto\x1A#google/longrunning/operations.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"\x94\x04\x0A\x08Glossary\x12\x14\x0A\x04name\x18\x01 \x01(\x09B\x06\xE0A\x03\xE0A\x08\x12\x18\x0A\x03uid\x18\x02 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x12\x19\x0A\x0Cdisplay_name\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x18\x0A\x0Bdescription\x18\x04 \x01(\x09B\x03\xE0A\x01\x124\x0A\x0Bcreate_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12C\x0A\x06labels\x18\x07 \x03(\x0B2..google.cloud.dataplex.v1.Glossary.LabelsEntryB\x03\xE0A\x01\x12\x17\x0A\x0Aterm_count\x18\x08 \x01(\x05B\x03\xE0A\x03\x12\x1B\x0A\x0Ecategory_count\x18\x09 \x01(\x05B\x03\xE0A\x03\x12\x11\x0A\x04etag\x18\x0A \x01(\x09B\x03\xE0A\x01\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:z\xEAAw\x0A dataplex.googleapis.com/Glossary\x12=projects/{project}/locations/{location}/glossaries/{glossary}*\x0Aglossaries2\x08glossary\"\x99\x04\x0A\x10GlossaryCategory\x12\x14\x0A\x04name\x18\x01 \x01(\x09B\x06\xE0A\x03\xE0A\x08\x12\x18\x0A\x03uid\x18\x02 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x12\x19\x0A\x0Cdisplay_name\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x18\x0A\x0Bdescription\x18\x04 \x01(\x09B\x03\xE0A\x01\x124\x0A\x0Bcreate_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12K\x0A\x06labels\x18\x07 \x03(\x0B26.google.cloud.dataplex.v1.GlossaryCategory.LabelsEntryB\x03\xE0A\x01\x12\x13\x0A\x06parent\x18\x08 \x01(\x09B\x03\xE0A\x02\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:\xA2\x01\xEAA\x9E\x01\x0A(dataplex.googleapis.com/GlossaryCategory\x12\\projects/{project}/locations/{location}/glossaries/{glossary}/categories/{glossary_category}*\x0Acategories2\x08category\"\xA0\x04\x0A\x0CGlossaryTerm\x12\x14\x0A\x04name\x18\x01 \x01(\x09B\x06\xE0A\x03\xE0A\x08\x12\x18\x0A\x03uid\x18\x02 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x12\x19\x0A\x0Cdisplay_name\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x18\x0A\x0Bdescription\x18\x04 \x01(\x09B\x03\xE0A\x01\x124\x0A\x0Bcreate_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12G\x0A\x06labels\x18\x07 \x03(\x0B22.google.cloud.dataplex.v1.GlossaryTerm.LabelsEntryB\x03\xE0A\x01\x128\x0A\x06parent\x18\x08 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/Glossary\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:\x8C\x01\xEAA\x88\x01\x0A\$dataplex.googleapis.com/GlossaryTerm\x12Sprojects/{project}/locations/{location}/glossaries/{glossary}/terms/{glossary_term}*\x05terms2\x04term\"\xC3\x01\x0A\x15CreateGlossaryRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x18\x0A\x0Bglossary_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x129\x0A\x08glossary\x18\x03 \x01(\x0B2\".google.cloud.dataplex.v1.GlossaryB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\xA4\x01\x0A\x15UpdateGlossaryRequest\x129\x0A\x08glossary\x18\x01 \x01(\x0B2\".google.cloud.dataplex.v1.GlossaryB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"b\x0A\x15DeleteGlossaryRequest\x126\x0A\x04name\x18\x01 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/Glossary\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x01\"L\x0A\x12GetGlossaryRequest\x126\x0A\x04name\x18\x01 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/Glossary\"\xAF\x01\x0A\x15ListGlossariesRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x88\x01\x0A\x16ListGlossariesResponse\x126\x0A\x0Aglossaries\x18\x01 \x03(\x0B2\".google.cloud.dataplex.v1.Glossary\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"\xB6\x01\x0A\x1DCreateGlossaryCategoryRequest\x128\x0A\x06parent\x18\x01 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/Glossary\x12\x18\x0A\x0Bcategory_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12A\x0A\x08category\x18\x03 \x01(\x0B2*.google.cloud.dataplex.v1.GlossaryCategoryB\x03\xE0A\x02\"\x98\x01\x0A\x1DUpdateGlossaryCategoryRequest\x12A\x0A\x08category\x18\x01 \x01(\x0B2*.google.cloud.dataplex.v1.GlossaryCategoryB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\"_\x0A\x1DDeleteGlossaryCategoryRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(dataplex.googleapis.com/GlossaryCategory\"\\\x0A\x1AGetGlossaryCategoryRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(dataplex.googleapis.com/GlossaryCategory\"\xB6\x01\x0A\x1DListGlossaryCategoriesRequest\x128\x0A\x06parent\x18\x01 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/Glossary\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x98\x01\x0A\x1EListGlossaryCategoriesResponse\x12>\x0A\x0Acategories\x18\x01 \x03(\x0B2*.google.cloud.dataplex.v1.GlossaryCategory\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"\xA6\x01\x0A\x19CreateGlossaryTermRequest\x128\x0A\x06parent\x18\x01 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/Glossary\x12\x14\x0A\x07term_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x129\x0A\x04term\x18\x03 \x01(\x0B2&.google.cloud.dataplex.v1.GlossaryTermB\x03\xE0A\x02\"\x8C\x01\x0A\x19UpdateGlossaryTermRequest\x129\x0A\x04term\x18\x01 \x01(\x0B2&.google.cloud.dataplex.v1.GlossaryTermB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\"W\x0A\x19DeleteGlossaryTermRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$dataplex.googleapis.com/GlossaryTerm\"T\x0A\x16GetGlossaryTermRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$dataplex.googleapis.com/GlossaryTerm\"\xB1\x01\x0A\x18ListGlossaryTermsRequest\x128\x0A\x06parent\x18\x01 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/Glossary\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x8A\x01\x0A\x19ListGlossaryTermsResponse\x125\x0A\x05terms\x18\x01 \x03(\x0B2&.google.cloud.dataplex.v1.GlossaryTerm\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x092\xF7\x19\x0A\x17BusinessGlossaryService\x12\xE0\x01\x0A\x0ECreateGlossary\x12/.google.cloud.dataplex.v1.CreateGlossaryRequest\x1A\x1D.google.longrunning.Operation\"~\xCAA\x1D\x0A\x08Glossary\x12\x11OperationMetadata\xDAA\x1Bparent,glossary,glossary_id\x82\xD3\xE4\x93\x02:\"./v1/{parent=projects/*/locations/*}/glossaries:\x08glossary\x12\xE3\x01\x0A\x0EUpdateGlossary\x12/.google.cloud.dataplex.v1.UpdateGlossaryRequest\x1A\x1D.google.longrunning.Operation\"\x80\x01\xCAA\x1D\x0A\x08Glossary\x12\x11OperationMetadata\xDAA\x14glossary,update_mask\x82\xD3\xE4\x93\x02C27/v1/{glossary.name=projects/*/locations/*/glossaries/*}:\x08glossary\x12\xCC\x01\x0A\x0EDeleteGlossary\x12/.google.cloud.dataplex.v1.DeleteGlossaryRequest\x1A\x1D.google.longrunning.Operation\"j\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x020*./v1/{name=projects/*/locations/*/glossaries/*}\x12\x9E\x01\x0A\x0BGetGlossary\x12,.google.cloud.dataplex.v1.GetGlossaryRequest\x1A\".google.cloud.dataplex.v1.Glossary\"=\xDAA\x04name\x82\xD3\xE4\x93\x020\x12./v1/{name=projects/*/locations/*/glossaries/*}\x12\xB4\x01\x0A\x0EListGlossaries\x12/.google.cloud.dataplex.v1.ListGlossariesRequest\x1A0.google.cloud.dataplex.v1.ListGlossariesResponse\"?\xDAA\x06parent\x82\xD3\xE4\x93\x020\x12./v1/{parent=projects/*/locations/*}/glossaries\x12\xEA\x01\x0A\x16CreateGlossaryCategory\x127.google.cloud.dataplex.v1.CreateGlossaryCategoryRequest\x1A*.google.cloud.dataplex.v1.GlossaryCategory\"k\xDAA\x1Bparent,category,category_id\x82\xD3\xE4\x93\x02G\";/v1/{parent=projects/*/locations/*/glossaries/*}/categories:\x08category\x12\xEC\x01\x0A\x16UpdateGlossaryCategory\x127.google.cloud.dataplex.v1.UpdateGlossaryCategoryRequest\x1A*.google.cloud.dataplex.v1.GlossaryCategory\"m\xDAA\x14category,update_mask\x82\xD3\xE4\x93\x02P2D/v1/{category.name=projects/*/locations/*/glossaries/*/categories/*}:\x08category\x12\xB5\x01\x0A\x16DeleteGlossaryCategory\x127.google.cloud.dataplex.v1.DeleteGlossaryCategoryRequest\x1A\x16.google.protobuf.Empty\"J\xDAA\x04name\x82\xD3\xE4\x93\x02=*;/v1/{name=projects/*/locations/*/glossaries/*/categories/*}\x12\xC3\x01\x0A\x13GetGlossaryCategory\x124.google.cloud.dataplex.v1.GetGlossaryCategoryRequest\x1A*.google.cloud.dataplex.v1.GlossaryCategory\"J\xDAA\x04name\x82\xD3\xE4\x93\x02=\x12;/v1/{name=projects/*/locations/*/glossaries/*/categories/*}\x12\xD9\x01\x0A\x16ListGlossaryCategories\x127.google.cloud.dataplex.v1.ListGlossaryCategoriesRequest\x1A8.google.cloud.dataplex.v1.ListGlossaryCategoriesResponse\"L\xDAA\x06parent\x82\xD3\xE4\x93\x02=\x12;/v1/{parent=projects/*/locations/*/glossaries/*}/categories\x12\xCD\x01\x0A\x12CreateGlossaryTerm\x123.google.cloud.dataplex.v1.CreateGlossaryTermRequest\x1A&.google.cloud.dataplex.v1.GlossaryTerm\"Z\xDAA\x13parent,term,term_id\x82\xD3\xE4\x93\x02>\"6/v1/{parent=projects/*/locations/*/glossaries/*}/terms:\x04term\x12\xCF\x01\x0A\x12UpdateGlossaryTerm\x123.google.cloud.dataplex.v1.UpdateGlossaryTermRequest\x1A&.google.cloud.dataplex.v1.GlossaryTerm\"\\\xDAA\x10term,update_mask\x82\xD3\xE4\x93\x02C2;/v1/{term.name=projects/*/locations/*/glossaries/*/terms/*}:\x04term\x12\xA8\x01\x0A\x12DeleteGlossaryTerm\x123.google.cloud.dataplex.v1.DeleteGlossaryTermRequest\x1A\x16.google.protobuf.Empty\"E\xDAA\x04name\x82\xD3\xE4\x93\x028*6/v1/{name=projects/*/locations/*/glossaries/*/terms/*}\x12\xB2\x01\x0A\x0FGetGlossaryTerm\x120.google.cloud.dataplex.v1.GetGlossaryTermRequest\x1A&.google.cloud.dataplex.v1.GlossaryTerm\"E\xDAA\x04name\x82\xD3\xE4\x93\x028\x126/v1/{name=projects/*/locations/*/glossaries/*/terms/*}\x12\xC5\x01\x0A\x11ListGlossaryTerms\x122.google.cloud.dataplex.v1.ListGlossaryTermsRequest\x1A3.google.cloud.dataplex.v1.ListGlossaryTermsResponse\"G\xDAA\x06parent\x82\xD3\xE4\x93\x028\x126/v1/{parent=projects/*/locations/*/glossaries/*}/terms\x1A\xEB\x01\xCAA\x17dataplex.googleapis.com\xD2A\xCD\x01https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloud-platform.read-only,https://www.googleapis.com/auth/dataplex.read-write,https://www.googleapis.com/auth/dataplex.readonlyBq\x0A\x1Ccom.google.cloud.dataplex.v1B\x15BusinessGlossaryProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" , true); static::$is_initialized = true; diff --git a/Dataplex/metadata/V1/Catalog.php b/Dataplex/metadata/V1/Catalog.php index dc582d62c217..f9d69ad3e373 100644 --- a/Dataplex/metadata/V1/Catalog.php +++ b/Dataplex/metadata/V1/Catalog.php @@ -26,7 +26,7 @@ public static function initOnce() { \GPBMetadata\Google\Protobuf\Struct::initOnce(); \GPBMetadata\Google\Protobuf\Timestamp::initOnce(); $pool->internalAddGeneratedFile( - "\x0A\xAA\xC8\x01\x0A&google/cloud/dataplex/v1/catalog.proto\x12\x18google.cloud.dataplex.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x1Bgoogle/api/field_info.proto\x1A\x19google/api/resource.proto\x1A&google/cloud/dataplex/v1/service.proto\x1A#google/longrunning/operations.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Cgoogle/protobuf/struct.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"\x83\x0F\x0A\x0AAspectType\x128\x0A\x04name\x18\x01 \x01(\x09B*\xE0A\x03\xFAA\$\x0A\"dataplex.googleapis.com/AspectType\x12\x10\x0A\x03uid\x18\x02 \x01(\x09B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x18\x0A\x0Bdescription\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Cdisplay_name\x18\x06 \x01(\x09B\x03\xE0A\x01\x12E\x0A\x06labels\x18\x07 \x03(\x0B20.google.cloud.dataplex.v1.AspectType.LabelsEntryB\x03\xE0A\x01\x12\x0C\x0A\x04etag\x18\x08 \x01(\x09\x12\\\x0A\x13data_classification\x18\x09 \x01(\x0E27.google.cloud.dataplex.v1.AspectType.DataClassificationB\x06\xE0A\x01\xE0A\x05\x12N\x0A\x0Dauthorization\x184 \x01(\x0B22.google.cloud.dataplex.v1.AspectType.AuthorizationB\x03\xE0A\x05\x12U\x0A\x11metadata_template\x185 \x01(\x0B25.google.cloud.dataplex.v1.AspectType.MetadataTemplateB\x03\xE0A\x02\x12G\x0A\x0Ftransfer_status\x18\xCA\x01 \x01(\x0E2(.google.cloud.dataplex.v1.TransferStatusB\x03\xE0A\x03\x1A6\x0A\x0DAuthorization\x12%\x0A\x18alternate_use_permission\x18\x01 \x01(\x09B\x03\xE0A\x05\x1A\xA4\x07\x0A\x10MetadataTemplate\x12\x12\x0A\x05index\x18\x01 \x01(\x05B\x03\xE0A\x01\x12\x11\x0A\x04name\x18\x02 \x01(\x09B\x03\xE0A\x02\x12\x11\x0A\x04type\x18\x05 \x01(\x09B\x03\xE0A\x02\x12Q\x0A\x0Drecord_fields\x18\x06 \x03(\x0B25.google.cloud.dataplex.v1.AspectType.MetadataTemplateB\x03\xE0A\x01\x12Y\x0A\x0Benum_values\x18\x08 \x03(\x0B2?.google.cloud.dataplex.v1.AspectType.MetadataTemplate.EnumValueB\x03\xE0A\x01\x12M\x0A\x09map_items\x18\x0A \x01(\x0B25.google.cloud.dataplex.v1.AspectType.MetadataTemplateB\x03\xE0A\x01\x12O\x0A\x0Barray_items\x18\x0B \x01(\x0B25.google.cloud.dataplex.v1.AspectType.MetadataTemplateB\x03\xE0A\x01\x12\x14\x0A\x07type_id\x18\x0C \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08type_ref\x18\x0D \x01(\x09B\x03\xE0A\x01\x12[\x0A\x0Bconstraints\x182 \x01(\x0B2A.google.cloud.dataplex.v1.AspectType.MetadataTemplate.ConstraintsB\x03\xE0A\x01\x12[\x0A\x0Bannotations\x183 \x01(\x0B2A.google.cloud.dataplex.v1.AspectType.MetadataTemplate.AnnotationsB\x03\xE0A\x01\x1AK\x0A\x09EnumValue\x12\x12\x0A\x05index\x18\x01 \x01(\x05B\x03\xE0A\x02\x12\x11\x0A\x04name\x18\x02 \x01(\x09B\x03\xE0A\x02\x12\x17\x0A\x0Adeprecated\x18\x03 \x01(\x09B\x03\xE0A\x01\x1A\$\x0A\x0BConstraints\x12\x15\x0A\x08required\x18\x01 \x01(\x08B\x03\xE0A\x01\x1A\xAD\x01\x0A\x0BAnnotations\x12\x17\x0A\x0Adeprecated\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Cdisplay_name\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x18\x0A\x0Bdescription\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x1A\x0A\x0Ddisplay_order\x18\x04 \x01(\x05B\x03\xE0A\x01\x12\x18\x0A\x0Bstring_type\x18\x06 \x01(\x09B\x03\xE0A\x01\x12\x1A\x0A\x0Dstring_values\x18\x07 \x03(\x09B\x03\xE0A\x01\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"P\x0A\x12DataClassification\x12#\x0A\x1FDATA_CLASSIFICATION_UNSPECIFIED\x10\x00\x12\x15\x0A\x11METADATA_AND_DATA\x10\x01:\x84\x01\xEAA\x80\x01\x0A\"dataplex.googleapis.com/AspectType\x12Aprojects/{project}/locations/{location}/aspectTypes/{aspect_type}*\x0BaspectTypes2\x0AaspectType\"\xCD\x04\x0A\x0AEntryGroup\x128\x0A\x04name\x18\x01 \x01(\x09B*\xE0A\x03\xFAA\$\x0A\"dataplex.googleapis.com/EntryGroup\x12\x10\x0A\x03uid\x18\x02 \x01(\x09B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x18\x0A\x0Bdescription\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Cdisplay_name\x18\x06 \x01(\x09B\x03\xE0A\x01\x12E\x0A\x06labels\x18\x07 \x03(\x0B20.google.cloud.dataplex.v1.EntryGroup.LabelsEntryB\x03\xE0A\x01\x12\x0C\x0A\x04etag\x18\x08 \x01(\x09\x12G\x0A\x0Ftransfer_status\x18\xCA\x01 \x01(\x0E2(.google.cloud.dataplex.v1.TransferStatusB\x03\xE0A\x03\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:\x84\x01\xEAA\x80\x01\x0A\"dataplex.googleapis.com/EntryGroup\x12Aprojects/{project}/locations/{location}/entryGroups/{entry_group}*\x0BentryGroups2\x0AentryGroup\"\xDC\x06\x0A\x09EntryType\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x03\xFAA#\x0A!dataplex.googleapis.com/EntryType\x12\x10\x0A\x03uid\x18\x02 \x01(\x09B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x18\x0A\x0Bdescription\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Cdisplay_name\x18\x06 \x01(\x09B\x03\xE0A\x01\x12D\x0A\x06labels\x18\x07 \x03(\x0B2/.google.cloud.dataplex.v1.EntryType.LabelsEntryB\x03\xE0A\x01\x12\x11\x0A\x04etag\x18\x08 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Ctype_aliases\x18\x09 \x03(\x09B\x03\xE0A\x01\x12\x15\x0A\x08platform\x18\x0A \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06system\x18\x0B \x01(\x09B\x03\xE0A\x01\x12H\x0A\x10required_aspects\x182 \x03(\x0B2..google.cloud.dataplex.v1.EntryType.AspectInfo\x12M\x0A\x0Dauthorization\x183 \x01(\x0B21.google.cloud.dataplex.v1.EntryType.AuthorizationB\x03\xE0A\x05\x1AC\x0A\x0AAspectInfo\x125\x0A\x04type\x18\x01 \x01(\x09B'\xFAA\$\x0A\"dataplex.googleapis.com/AspectType\x1A6\x0A\x0DAuthorization\x12%\x0A\x18alternate_use_permission\x18\x01 \x01(\x09B\x03\xE0A\x05\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:~\xEAA{\x0A!dataplex.googleapis.com/EntryType\x12?projects/{project}/locations/{location}/entryTypes/{entry_type}*\x0AentryTypes2\x09entryType\"\x91\x02\x0A\x06Aspect\x12\x18\x0A\x0Baspect_type\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x11\x0A\x04path\x18\x02 \x01(\x09B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12*\x0A\x04data\x18\x08 \x01(\x0B2\x17.google.protobuf.StructB\x03\xE0A\x02\x12B\x0A\x0Daspect_source\x18\x09 \x01(\x0B2&.google.cloud.dataplex.v1.AspectSourceB\x03\xE0A\x01\"\x86\x01\x0A\x0CAspectSource\x12/\x0A\x0Bcreate_time\x18\x0A \x01(\x0B2\x1A.google.protobuf.Timestamp\x12/\x0A\x0Bupdate_time\x18\x0B \x01(\x0B2\x1A.google.protobuf.Timestamp\x12\x14\x0A\x0Cdata_version\x18\x0C \x01(\x09\"\xC4\x04\x0A\x05Entry\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12\x1A\x0A\x0Aentry_type\x18\x04 \x01(\x09B\x06\xE0A\x02\xE0A\x05\x124\x0A\x0Bcreate_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12B\x0A\x07aspects\x18\x09 \x03(\x0B2,.google.cloud.dataplex.v1.Entry.AspectsEntryB\x03\xE0A\x01\x12\x1C\x0A\x0Cparent_entry\x18\x0A \x01(\x09B\x06\xE0A\x01\xE0A\x05\x12!\x0A\x14fully_qualified_name\x18\x0C \x01(\x09B\x03\xE0A\x01\x12@\x0A\x0Centry_source\x18\x0F \x01(\x0B2%.google.cloud.dataplex.v1.EntrySourceB\x03\xE0A\x01\x1AP\x0A\x0CAspectsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12/\x0A\x05value\x18\x02 \x01(\x0B2 .google.cloud.dataplex.v1.Aspect:\x028\x01:\x86\x01\xEAA\x82\x01\x0A\x1Ddataplex.googleapis.com/Entry\x12Qprojects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}*\x07entries2\x05entry\"\xD1\x03\x0A\x0BEntrySource\x12\x10\x0A\x08resource\x18\x01 \x01(\x09\x12\x0E\x0A\x06system\x18\x02 \x01(\x09\x12\x10\x0A\x08platform\x18\x03 \x01(\x09\x12\x14\x0A\x0Cdisplay_name\x18\x05 \x01(\x09\x12\x13\x0A\x0Bdescription\x18\x06 \x01(\x09\x12A\x0A\x06labels\x18\x07 \x03(\x0B21.google.cloud.dataplex.v1.EntrySource.LabelsEntry\x12F\x0A\x09ancestors\x18\x09 \x03(\x0B2..google.cloud.dataplex.v1.EntrySource.AncestorB\x03\xE0A\x05\x12/\x0A\x0Bcreate_time\x18\x0A \x01(\x0B2\x1A.google.protobuf.Timestamp\x12/\x0A\x0Bupdate_time\x18\x0B \x01(\x0B2\x1A.google.protobuf.Timestamp\x12\x15\x0A\x08location\x18\x0C \x01(\x09B\x03\xE0A\x03\x1A0\x0A\x08Ancestor\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x11\x0A\x04type\x18\x02 \x01(\x09B\x03\xE0A\x01\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"\xCD\x01\x0A\x17CreateEntryGroupRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x1B\x0A\x0Eentry_group_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12>\x0A\x0Bentry_group\x18\x03 \x01(\x0B2\$.google.cloud.dataplex.v1.EntryGroupB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\xAB\x01\x0A\x17UpdateEntryGroupRequest\x12>\x0A\x0Bentry_group\x18\x01 \x01(\x0B2\$.google.cloud.dataplex.v1.EntryGroupB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"f\x0A\x17DeleteEntryGroupRequest\x128\x0A\x04name\x18\x01 \x01(\x09B*\xE0A\x02\xFAA\$\x0A\"dataplex.googleapis.com/EntryGroup\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x01\"\xB0\x01\x0A\x16ListEntryGroupsRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x8D\x01\x0A\x17ListEntryGroupsResponse\x12:\x0A\x0Centry_groups\x18\x01 \x03(\x0B2\$.google.cloud.dataplex.v1.EntryGroup\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"P\x0A\x14GetEntryGroupRequest\x128\x0A\x04name\x18\x01 \x01(\x09B*\xE0A\x02\xFAA\$\x0A\"dataplex.googleapis.com/EntryGroup\"\xC9\x01\x0A\x16CreateEntryTypeRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x1A\x0A\x0Dentry_type_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12<\x0A\x0Aentry_type\x18\x03 \x01(\x0B2#.google.cloud.dataplex.v1.EntryTypeB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\xA8\x01\x0A\x16UpdateEntryTypeRequest\x12<\x0A\x0Aentry_type\x18\x01 \x01(\x0B2#.google.cloud.dataplex.v1.EntryTypeB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"d\x0A\x16DeleteEntryTypeRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!dataplex.googleapis.com/EntryType\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x01\"\xAF\x01\x0A\x15ListEntryTypesRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x8A\x01\x0A\x16ListEntryTypesResponse\x128\x0A\x0Bentry_types\x18\x01 \x03(\x0B2#.google.cloud.dataplex.v1.EntryType\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"N\x0A\x13GetEntryTypeRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!dataplex.googleapis.com/EntryType\"\xCD\x01\x0A\x17CreateAspectTypeRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x1B\x0A\x0Easpect_type_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12>\x0A\x0Baspect_type\x18\x03 \x01(\x0B2\$.google.cloud.dataplex.v1.AspectTypeB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\xAB\x01\x0A\x17UpdateAspectTypeRequest\x12>\x0A\x0Baspect_type\x18\x01 \x01(\x0B2\$.google.cloud.dataplex.v1.AspectTypeB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"f\x0A\x17DeleteAspectTypeRequest\x128\x0A\x04name\x18\x01 \x01(\x09B*\xE0A\x02\xFAA\$\x0A\"dataplex.googleapis.com/AspectType\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x01\"\xB0\x01\x0A\x16ListAspectTypesRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x8D\x01\x0A\x17ListAspectTypesResponse\x12:\x0A\x0Caspect_types\x18\x01 \x03(\x0B2\$.google.cloud.dataplex.v1.AspectType\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"P\x0A\x14GetAspectTypeRequest\x128\x0A\x04name\x18\x01 \x01(\x09B*\xE0A\x02\xFAA\$\x0A\"dataplex.googleapis.com/AspectType\"\x9C\x01\x0A\x12CreateEntryRequest\x12:\x0A\x06parent\x18\x01 \x01(\x09B*\xE0A\x02\xFAA\$\x0A\"dataplex.googleapis.com/EntryGroup\x12\x15\x0A\x08entry_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x123\x0A\x05entry\x18\x03 \x01(\x0B2\x1F.google.cloud.dataplex.v1.EntryB\x03\xE0A\x02\"\xDA\x01\x0A\x12UpdateEntryRequest\x123\x0A\x05entry\x18\x01 \x01(\x0B2\x1F.google.cloud.dataplex.v1.EntryB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x01\x12\x1A\x0A\x0Dallow_missing\x18\x03 \x01(\x08B\x03\xE0A\x01\x12#\x0A\x16delete_missing_aspects\x18\x04 \x01(\x08B\x03\xE0A\x01\x12\x18\x0A\x0Baspect_keys\x18\x05 \x03(\x09B\x03\xE0A\x01\"I\x0A\x12DeleteEntryRequest\x123\x0A\x04name\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Ddataplex.googleapis.com/Entry\"\x96\x01\x0A\x12ListEntriesRequest\x12:\x0A\x06parent\x18\x01 \x01(\x09B*\xE0A\x02\xFAA\$\x0A\"dataplex.googleapis.com/EntryGroup\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\"`\x0A\x13ListEntriesResponse\x120\x0A\x07entries\x18\x01 \x03(\x0B2\x1F.google.cloud.dataplex.v1.Entry\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"\xAD\x01\x0A\x0FGetEntryRequest\x123\x0A\x04name\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Ddataplex.googleapis.com/Entry\x126\x0A\x04view\x18\x02 \x01(\x0E2#.google.cloud.dataplex.v1.EntryViewB\x03\xE0A\x01\x12\x19\x0A\x0Caspect_types\x18\x03 \x03(\x09B\x03\xE0A\x01\x12\x12\x0A\x05paths\x18\x04 \x03(\x09B\x03\xE0A\x01\"\xC4\x01\x0A\x12LookupEntryRequest\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x02\x126\x0A\x04view\x18\x02 \x01(\x0E2#.google.cloud.dataplex.v1.EntryViewB\x03\xE0A\x01\x12\x19\x0A\x0Caspect_types\x18\x03 \x03(\x09B\x03\xE0A\x01\x12\x12\x0A\x05paths\x18\x04 \x03(\x09B\x03\xE0A\x01\x124\x0A\x05entry\x18\x05 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Ddataplex.googleapis.com/Entry\"\xE6\x01\x0A\x14LookupContextRequest\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x02\x128\x0A\x09resources\x18\x02 \x03(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Ddataplex.googleapis.com/Entry\x12Q\x0A\x07options\x18\x04 \x03(\x0B2;.google.cloud.dataplex.v1.LookupContextRequest.OptionsEntryB\x03\xE0A\x01\x1A.\x0A\x0COptionsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"(\x0A\x15LookupContextResponse\x12\x0F\x0A\x07context\x18\x01 \x01(\x09\"\xDD\x01\x0A\x14SearchEntriesRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x12\x0A\x05query\x18\x02 \x01(\x09B\x03\xE0A\x02\x12\x16\x0A\x09page_size\x18\x03 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x12\x0A\x05scope\x18\x07 \x01(\x09B\x03\xE0A\x01\x12\x1C\x0A\x0Fsemantic_search\x18\x0B \x01(\x08B\x03\xE0A\x01\"\x86\x02\x0A\x13SearchEntriesResult\x12\x1B\x0A\x0Flinked_resource\x18\x08 \x01(\x09B\x02\x18\x01\x127\x0A\x0Edataplex_entry\x18\x09 \x01(\x0B2\x1F.google.cloud.dataplex.v1.Entry\x12L\x0A\x08snippets\x18\x0C \x01(\x0B26.google.cloud.dataplex.v1.SearchEntriesResult.SnippetsB\x02\x18\x01\x1AK\x0A\x08Snippets\x12;\x0A\x0Edataplex_entry\x18\x01 \x01(\x0B2\x1F.google.cloud.dataplex.v1.EntryB\x02\x18\x01:\x02\x18\x01\"\x99\x01\x0A\x15SearchEntriesResponse\x12>\x0A\x07results\x18\x01 \x03(\x0B2-.google.cloud.dataplex.v1.SearchEntriesResult\x12\x12\x0A\x0Atotal_size\x18\x02 \x01(\x05\x12\x17\x0A\x0Fnext_page_token\x18\x03 \x01(\x09\x12\x13\x0A\x0Bunreachable\x18\x04 \x03(\x09\"\xBB\x01\x0A\x0AImportItem\x12.\x0A\x05entry\x18\x01 \x01(\x0B2\x1F.google.cloud.dataplex.v1.Entry\x127\x0A\x0Aentry_link\x18\x04 \x01(\x0B2#.google.cloud.dataplex.v1.EntryLink\x12/\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMask\x12\x13\x0A\x0Baspect_keys\x18\x03 \x03(\x09\"\xD1\x01\x0A\x18CreateMetadataJobRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12@\x0A\x0Cmetadata_job\x18\x02 \x01(\x0B2%.google.cloud.dataplex.v1.MetadataJobB\x03\xE0A\x02\x12\x1C\x0A\x0Fmetadata_job_id\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"R\x0A\x15GetMetadataJobRequest\x129\x0A\x04name\x18\x01 \x01(\x09B+\xE0A\x02\xFAA%\x0A#dataplex.googleapis.com/MetadataJob\"\xB1\x01\x0A\x17ListMetadataJobsRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x90\x01\x0A\x18ListMetadataJobsResponse\x12<\x0A\x0Dmetadata_jobs\x18\x01 \x03(\x0B2%.google.cloud.dataplex.v1.MetadataJob\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"U\x0A\x18CancelMetadataJobRequest\x129\x0A\x04name\x18\x01 \x01(\x09B+\xE0A\x02\xFAA%\x0A#dataplex.googleapis.com/MetadataJob\"\xEE\x17\x0A\x0BMetadataJob\x12\x14\x0A\x04name\x18\x01 \x01(\x09B\x06\xE0A\x03\xE0A\x08\x12\x18\x0A\x03uid\x18\x02 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12F\x0A\x06labels\x18\x05 \x03(\x0B21.google.cloud.dataplex.v1.MetadataJob.LabelsEntryB\x03\xE0A\x01\x12=\x0A\x04type\x18\x06 \x01(\x0E2*.google.cloud.dataplex.v1.MetadataJob.TypeB\x03\xE0A\x02\x12J\x0A\x0Bimport_spec\x18d \x01(\x0B23.google.cloud.dataplex.v1.MetadataJob.ImportJobSpecH\x00\x12J\x0A\x0Bexport_spec\x18e \x01(\x0B23.google.cloud.dataplex.v1.MetadataJob.ExportJobSpecH\x00\x12T\x0A\x0Dimport_result\x18\xC8\x01 \x01(\x0B25.google.cloud.dataplex.v1.MetadataJob.ImportJobResultB\x03\xE0A\x03H\x01\x12T\x0A\x0Dexport_result\x18\xC9\x01 \x01(\x0B25.google.cloud.dataplex.v1.MetadataJob.ExportJobResultB\x03\xE0A\x03H\x01\x12A\x0A\x06status\x18\x07 \x01(\x0B2,.google.cloud.dataplex.v1.MetadataJob.StatusB\x03\xE0A\x03\x1A\xC9\x02\x0A\x0FImportJobResult\x12\x1C\x0A\x0Fdeleted_entries\x18\x01 \x01(\x03B\x03\xE0A\x03\x12\x1C\x0A\x0Fupdated_entries\x18\x02 \x01(\x03B\x03\xE0A\x03\x12\x1C\x0A\x0Fcreated_entries\x18\x03 \x01(\x03B\x03\xE0A\x03\x12\x1E\x0A\x11unchanged_entries\x18\x04 \x01(\x03B\x03\xE0A\x03\x12\x1E\x0A\x11recreated_entries\x18\x06 \x01(\x03B\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12 \x0A\x13deleted_entry_links\x18\x07 \x01(\x03B\x03\xE0A\x03\x12 \x0A\x13created_entry_links\x18\x08 \x01(\x03B\x03\xE0A\x03\x12\"\x0A\x15unchanged_entry_links\x18\x09 \x01(\x03B\x03\xE0A\x03\x1AL\x0A\x0FExportJobResult\x12\x1D\x0A\x10exported_entries\x18\x01 \x01(\x03B\x03\xE0A\x03\x12\x1A\x0A\x0Derror_message\x18\x02 \x01(\x09B\x03\xE0A\x03\x1A\xB6\x07\x0A\x0DImportJobSpec\x12\x1F\x0A\x12source_storage_uri\x18\x01 \x01(\x09B\x03\xE0A\x01\x12;\x0A\x12source_create_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\x12V\x0A\x05scope\x18\x02 \x01(\x0B2B.google.cloud.dataplex.v1.MetadataJob.ImportJobSpec.ImportJobScopeB\x03\xE0A\x02\x12Z\x0A\x0Fentry_sync_mode\x18\x03 \x01(\x0E2<.google.cloud.dataplex.v1.MetadataJob.ImportJobSpec.SyncModeB\x03\xE0A\x02\x12[\x0A\x10aspect_sync_mode\x18\x04 \x01(\x0E2<.google.cloud.dataplex.v1.MetadataJob.ImportJobSpec.SyncModeB\x03\xE0A\x02\x12T\x0A\x09log_level\x18\x06 \x01(\x0E2<.google.cloud.dataplex.v1.MetadataJob.ImportJobSpec.LogLevelB\x03\xE0A\x01\x1A\xD7\x02\x0A\x0EImportJobScope\x12@\x0A\x0Centry_groups\x18\x01 \x03(\x09B*\xE0A\x02\xFAA\$\x0A\"dataplex.googleapis.com/EntryGroup\x12>\x0A\x0Bentry_types\x18\x02 \x03(\x09B)\xE0A\x02\xFAA#\x0A!dataplex.googleapis.com/EntryType\x12@\x0A\x0Caspect_types\x18\x03 \x03(\x09B*\xE0A\x01\xFAA\$\x0A\"dataplex.googleapis.com/AspectType\x12<\x0A\x0Aglossaries\x18\x04 \x03(\x09B(\xE0A\x01\xFAA\"\x0A dataplex.googleapis.com/Glossary\x12\x1D\x0A\x10entry_link_types\x18\x05 \x03(\x09B\x03\xE0A\x01\x12\$\x0A\x17referenced_entry_scopes\x18\x06 \x03(\x09B\x03\xE0A\x01\"J\x0A\x08SyncMode\x12\x19\x0A\x15SYNC_MODE_UNSPECIFIED\x10\x00\x12\x08\x0A\x04FULL\x10\x01\x12\x0F\x0A\x0BINCREMENTAL\x10\x02\x12\x08\x0A\x04NONE\x10\x03\":\x0A\x08LogLevel\x12\x19\x0A\x15LOG_LEVEL_UNSPECIFIED\x10\x00\x12\x09\x0A\x05DEBUG\x10\x01\x12\x08\x0A\x04INFO\x10\x02\x1A\xAF\x03\x0A\x0DExportJobSpec\x12V\x0A\x05scope\x18\x02 \x01(\x0B2B.google.cloud.dataplex.v1.MetadataJob.ExportJobSpec.ExportJobScopeB\x03\xE0A\x02\x12\x18\x0A\x0Boutput_path\x18\x03 \x01(\x09B\x03\xE0A\x02\x1A\xAB\x02\x0A\x0EExportJobScope\x12\x1A\x0A\x12organization_level\x18\x01 \x01(\x08\x12B\x0A\x08projects\x18\x02 \x03(\x09B0\xFAA-\x0A+cloudresourcemanager.googleapis.com/Project\x12=\x0A\x0Centry_groups\x18\x03 \x03(\x09B'\xFAA\$\x0A\"dataplex.googleapis.com/EntryGroup\x12;\x0A\x0Bentry_types\x18\x04 \x03(\x09B&\xFAA#\x0A!dataplex.googleapis.com/EntryType\x12=\x0A\x0Caspect_types\x18\x05 \x03(\x09B'\xFAA\$\x0A\"dataplex.googleapis.com/AspectType\x1A\xCA\x02\x0A\x06Status\x12F\x0A\x05state\x18\x01 \x01(\x0E22.google.cloud.dataplex.v1.MetadataJob.Status.StateB\x03\xE0A\x03\x12\x14\x0A\x07message\x18\x02 \x01(\x09B\x03\xE0A\x03\x12\x1F\x0A\x12completion_percent\x18\x03 \x01(\x05B\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\"\x8A\x01\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06QUEUED\x10\x01\x12\x0B\x0A\x07RUNNING\x10\x02\x12\x0D\x0A\x09CANCELING\x10\x03\x12\x0C\x0A\x08CANCELED\x10\x04\x12\x0D\x0A\x09SUCCEEDED\x10\x05\x12\x0A\x0A\x06FAILED\x10\x06\x12\x19\x0A\x15SUCCEEDED_WITH_ERRORS\x10\x07\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"4\x0A\x04Type\x12\x14\x0A\x10TYPE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06IMPORT\x10\x01\x12\x0A\x0A\x06EXPORT\x10\x02:l\xEAAi\x0A#dataplex.googleapis.com/MetadataJob\x12Bprojects/{project}/locations/{location}/metadataJobs/{metadataJob}B\x06\x0A\x04specB\x08\x0A\x06result\"\x9F\x06\x0A\x09EntryLink\x12=\x0A\x04name\x18\x01 \x01(\x09B/\xE0A\x03\xE0A\x05\xE0A\x08\xFAA#\x0A!dataplex.googleapis.com/EntryLink\x12\x1F\x0A\x0Fentry_link_type\x18\x02 \x01(\x09B\x06\xE0A\x02\xE0A\x05\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12F\x0A\x07aspects\x18\x06 \x03(\x0B20.google.cloud.dataplex.v1.EntryLink.AspectsEntryB\x03\xE0A\x01\x12T\x0A\x10entry_references\x18\x0A \x03(\x0B22.google.cloud.dataplex.v1.EntryLink.EntryReferenceB\x06\xE0A\x02\xE0A\x05\x1A\xB9\x01\x0A\x0EEntryReference\x12\x14\x0A\x04name\x18\x01 \x01(\x09B\x06\xE0A\x02\xE0A\x05\x12\x11\x0A\x04path\x18\x02 \x01(\x09B\x03\xE0A\x05\x12M\x0A\x04type\x18\x03 \x01(\x0E27.google.cloud.dataplex.v1.EntryLink.EntryReference.TypeB\x06\xE0A\x02\xE0A\x05\"/\x0A\x04Type\x12\x0F\x0A\x0BUNSPECIFIED\x10\x00\x12\x0A\x0A\x06SOURCE\x10\x02\x12\x0A\x0A\x06TARGET\x10\x03\x1AP\x0A\x0CAspectsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12/\x0A\x05value\x18\x02 \x01(\x0B2 .google.cloud.dataplex.v1.Aspect:\x028\x01:\x99\x01\xEAA\x95\x01\x0A!dataplex.googleapis.com/EntryLink\x12Yprojects/{project}/locations/{location}/entryGroups/{entry_group}/entryLinks/{entry_link}*\x0AentryLinks2\x09entryLink\"\xAE\x01\x0A\x16CreateEntryLinkRequest\x12:\x0A\x06parent\x18\x01 \x01(\x09B*\xE0A\x02\xFAA\$\x0A\"dataplex.googleapis.com/EntryGroup\x12\x1A\x0A\x0Dentry_link_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12<\x0A\x0Aentry_link\x18\x03 \x01(\x0B2#.google.cloud.dataplex.v1.EntryLinkB\x03\xE0A\x02\"\x8C\x01\x0A\x16UpdateEntryLinkRequest\x12<\x0A\x0Aentry_link\x18\x01 \x01(\x0B2#.google.cloud.dataplex.v1.EntryLinkB\x03\xE0A\x02\x12\x1A\x0A\x0Dallow_missing\x18\x03 \x01(\x08B\x03\xE0A\x01\x12\x18\x0A\x0Baspect_keys\x18\x05 \x03(\x09B\x03\xE0A\x01\"Q\x0A\x16DeleteEntryLinkRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!dataplex.googleapis.com/EntryLink\"\xB5\x02\x0A\x17LookupEntryLinksRequest\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x02\x124\x0A\x05entry\x18\x02 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Ddataplex.googleapis.com/Entry\x12O\x0A\x0Aentry_mode\x18\x03 \x01(\x0E2;.google.cloud.dataplex.v1.LookupEntryLinksRequest.EntryMode\x12\x18\x0A\x10entry_link_types\x18\x04 \x03(\x09\x12\x11\x0A\x09page_size\x18\x05 \x01(\x05\x12\x12\x0A\x0Apage_token\x18\x06 \x01(\x09\"?\x0A\x09EntryMode\x12\x1A\x0A\x16ENTRY_MODE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06SOURCE\x10\x01\x12\x0A\x0A\x06TARGET\x10\x02\"m\x0A\x18LookupEntryLinksResponse\x128\x0A\x0Bentry_links\x18\x01 \x03(\x0B2#.google.cloud.dataplex.v1.EntryLink\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"N\x0A\x13GetEntryLinkRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!dataplex.googleapis.com/EntryLink\"\xC8\x08\x0A\x0CMetadataFeed\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12\x18\x0A\x03uid\x18\x02 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x12@\x0A\x05scope\x18\x03 \x01(\x0B2,.google.cloud.dataplex.v1.MetadataFeed.ScopeB\x03\xE0A\x02\x12D\x0A\x07filters\x18\x04 \x01(\x0B2..google.cloud.dataplex.v1.MetadataFeed.FiltersB\x03\xE0A\x01\x124\x0A\x0Bcreate_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x07 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12G\x0A\x06labels\x18\x08 \x03(\x0B22.google.cloud.dataplex.v1.MetadataFeed.LabelsEntryB\x03\xE0A\x01\x12\x1B\x0A\x0Cpubsub_topic\x18d \x01(\x09B\x03\xE0A\x01H\x00\x1A\xB1\x01\x0A\x05Scope\x12\x1F\x0A\x12organization_level\x18\x01 \x01(\x08B\x03\xE0A\x01\x12E\x0A\x08projects\x18\x02 \x03(\x09B3\xE0A\x01\xFAA-\x0A+cloudresourcemanager.googleapis.com/Project\x12@\x0A\x0Centry_groups\x18\x03 \x03(\x09B*\xE0A\x01\xFAA\$\x0A\"dataplex.googleapis.com/EntryGroup\x1A\xB0\x02\x0A\x07Filters\x12>\x0A\x0Bentry_types\x18\x01 \x03(\x09B)\xE0A\x01\xFAA#\x0A!dataplex.googleapis.com/EntryType\x12@\x0A\x0Caspect_types\x18\x02 \x03(\x09B*\xE0A\x01\xFAA\$\x0A\"dataplex.googleapis.com/AspectType\x12T\x0A\x0Cchange_types\x18\x03 \x03(\x0E29.google.cloud.dataplex.v1.MetadataFeed.Filters.ChangeTypeB\x03\xE0A\x01\"M\x0A\x0AChangeType\x12\x1B\x0A\x17CHANGE_TYPE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06CREATE\x10\x01\x12\x0A\x0A\x06UPDATE\x10\x02\x12\x0A\x0A\x06DELETE\x10\x03\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:\x8E\x01\xEAA\x8A\x01\x0A\$dataplex.googleapis.com/MetadataFeed\x12Eprojects/{project}/locations/{location}/metadataFeeds/{metadata_feed}*\x0DmetadataFeeds2\x0CmetadataFeedB\x0A\x0A\x08endpoint\"\xD5\x01\x0A\x19CreateMetadataFeedRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12B\x0A\x0Dmetadata_feed\x18\x02 \x01(\x0B2&.google.cloud.dataplex.v1.MetadataFeedB\x03\xE0A\x02\x12\x1D\x0A\x10metadata_feed_id\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"T\x0A\x16GetMetadataFeedRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$dataplex.googleapis.com/MetadataFeed\"\xB2\x01\x0A\x18ListMetadataFeedsRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x8E\x01\x0A\x19ListMetadataFeedsResponse\x12>\x0A\x0Emetadata_feeds\x18\x01 \x03(\x0B2&.google.cloud.dataplex.v1.MetadataFeed\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x18\x0A\x0Bunreachable\x18\x03 \x03(\x09B\x03\xE0A\x06\"W\x0A\x19DeleteMetadataFeedRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$dataplex.googleapis.com/MetadataFeed\"\xB1\x01\x0A\x19UpdateMetadataFeedRequest\x12B\x0A\x0Dmetadata_feed\x18\x01 \x01(\x0B2&.google.cloud.dataplex.v1.MetadataFeedB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x01\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01*Q\x0A\x09EntryView\x12\x1A\x0A\x16ENTRY_VIEW_UNSPECIFIED\x10\x00\x12\x09\x0A\x05BASIC\x10\x01\x12\x08\x0A\x04FULL\x10\x02\x12\x0A\x0A\x06CUSTOM\x10\x03\x12\x07\x0A\x03ALL\x10\x04*p\x0A\x0ETransferStatus\x12\x1F\x0A\x1BTRANSFER_STATUS_UNSPECIFIED\x10\x00\x12\x1C\x0A\x18TRANSFER_STATUS_MIGRATED\x10\x01\x12\x1F\x0A\x1BTRANSFER_STATUS_TRANSFERRED\x10\x022\x8F<\x0A\x0ECatalogService\x12\xEA\x01\x0A\x0FCreateEntryType\x120.google.cloud.dataplex.v1.CreateEntryTypeRequest\x1A\x1D.google.longrunning.Operation\"\x85\x01\xCAA\x1E\x0A\x09EntryType\x12\x11OperationMetadata\xDAA\x1Fparent,entry_type,entry_type_id\x82\xD3\xE4\x93\x02<\"./v1/{parent=projects/*/locations/*}/entryTypes:\x0Aentry_type\x12\xEC\x01\x0A\x0FUpdateEntryType\x120.google.cloud.dataplex.v1.UpdateEntryTypeRequest\x1A\x1D.google.longrunning.Operation\"\x87\x01\xCAA\x1E\x0A\x09EntryType\x12\x11OperationMetadata\xDAA\x16entry_type,update_mask\x82\xD3\xE4\x93\x02G29/v1/{entry_type.name=projects/*/locations/*/entryTypes/*}:\x0Aentry_type\x12\xCE\x01\x0A\x0FDeleteEntryType\x120.google.cloud.dataplex.v1.DeleteEntryTypeRequest\x1A\x1D.google.longrunning.Operation\"j\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x020*./v1/{name=projects/*/locations/*/entryTypes/*}\x12\xB4\x01\x0A\x0EListEntryTypes\x12/.google.cloud.dataplex.v1.ListEntryTypesRequest\x1A0.google.cloud.dataplex.v1.ListEntryTypesResponse\"?\xDAA\x06parent\x82\xD3\xE4\x93\x020\x12./v1/{parent=projects/*/locations/*}/entryTypes\x12\xA1\x01\x0A\x0CGetEntryType\x12-.google.cloud.dataplex.v1.GetEntryTypeRequest\x1A#.google.cloud.dataplex.v1.EntryType\"=\xDAA\x04name\x82\xD3\xE4\x93\x020\x12./v1/{name=projects/*/locations/*/entryTypes/*}\x12\xF1\x01\x0A\x10CreateAspectType\x121.google.cloud.dataplex.v1.CreateAspectTypeRequest\x1A\x1D.google.longrunning.Operation\"\x8A\x01\xCAA\x1F\x0A\x0AAspectType\x12\x11OperationMetadata\xDAA!parent,aspect_type,aspect_type_id\x82\xD3\xE4\x93\x02>\"//v1/{parent=projects/*/locations/*}/aspectTypes:\x0Baspect_type\x12\xF3\x01\x0A\x10UpdateAspectType\x121.google.cloud.dataplex.v1.UpdateAspectTypeRequest\x1A\x1D.google.longrunning.Operation\"\x8C\x01\xCAA\x1F\x0A\x0AAspectType\x12\x11OperationMetadata\xDAA\x17aspect_type,update_mask\x82\xD3\xE4\x93\x02J2;/v1/{aspect_type.name=projects/*/locations/*/aspectTypes/*}:\x0Baspect_type\x12\xD1\x01\x0A\x10DeleteAspectType\x121.google.cloud.dataplex.v1.DeleteAspectTypeRequest\x1A\x1D.google.longrunning.Operation\"k\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x021*//v1/{name=projects/*/locations/*/aspectTypes/*}\x12\xB8\x01\x0A\x0FListAspectTypes\x120.google.cloud.dataplex.v1.ListAspectTypesRequest\x1A1.google.cloud.dataplex.v1.ListAspectTypesResponse\"@\xDAA\x06parent\x82\xD3\xE4\x93\x021\x12//v1/{parent=projects/*/locations/*}/aspectTypes\x12\xA5\x01\x0A\x0DGetAspectType\x12..google.cloud.dataplex.v1.GetAspectTypeRequest\x1A\$.google.cloud.dataplex.v1.AspectType\">\xDAA\x04name\x82\xD3\xE4\x93\x021\x12//v1/{name=projects/*/locations/*/aspectTypes/*}\x12\xF1\x01\x0A\x10CreateEntryGroup\x121.google.cloud.dataplex.v1.CreateEntryGroupRequest\x1A\x1D.google.longrunning.Operation\"\x8A\x01\xCAA\x1F\x0A\x0AEntryGroup\x12\x11OperationMetadata\xDAA!parent,entry_group,entry_group_id\x82\xD3\xE4\x93\x02>\"//v1/{parent=projects/*/locations/*}/entryGroups:\x0Bentry_group\x12\xF3\x01\x0A\x10UpdateEntryGroup\x121.google.cloud.dataplex.v1.UpdateEntryGroupRequest\x1A\x1D.google.longrunning.Operation\"\x8C\x01\xCAA\x1F\x0A\x0AEntryGroup\x12\x11OperationMetadata\xDAA\x17entry_group,update_mask\x82\xD3\xE4\x93\x02J2;/v1/{entry_group.name=projects/*/locations/*/entryGroups/*}:\x0Bentry_group\x12\xD1\x01\x0A\x10DeleteEntryGroup\x121.google.cloud.dataplex.v1.DeleteEntryGroupRequest\x1A\x1D.google.longrunning.Operation\"k\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x021*//v1/{name=projects/*/locations/*/entryGroups/*}\x12\xB8\x01\x0A\x0FListEntryGroups\x120.google.cloud.dataplex.v1.ListEntryGroupsRequest\x1A1.google.cloud.dataplex.v1.ListEntryGroupsResponse\"@\xDAA\x06parent\x82\xD3\xE4\x93\x021\x12//v1/{parent=projects/*/locations/*}/entryGroups\x12\xA5\x01\x0A\x0DGetEntryGroup\x12..google.cloud.dataplex.v1.GetEntryGroupRequest\x1A\$.google.cloud.dataplex.v1.EntryGroup\">\xDAA\x04name\x82\xD3\xE4\x93\x021\x12//v1/{name=projects/*/locations/*/entryGroups/*}\x12\xBE\x01\x0A\x0BCreateEntry\x12,.google.cloud.dataplex.v1.CreateEntryRequest\x1A\x1F.google.cloud.dataplex.v1.Entry\"`\xDAA\x15parent,entry,entry_id\x82\xD3\xE4\x93\x02B\"9/v1/{parent=projects/*/locations/*/entryGroups/*}/entries:\x05entry\x12\xC1\x01\x0A\x0BUpdateEntry\x12,.google.cloud.dataplex.v1.UpdateEntryRequest\x1A\x1F.google.cloud.dataplex.v1.Entry\"c\xDAA\x11entry,update_mask\x82\xD3\xE4\x93\x02I2@/v1/{entry.name=projects/*/locations/*/entryGroups/*/entries/**}:\x05entry\x12\xA7\x01\x0A\x0BDeleteEntry\x12,.google.cloud.dataplex.v1.DeleteEntryRequest\x1A\x1F.google.cloud.dataplex.v1.Entry\"I\xDAA\x04name\x82\xD3\xE4\x93\x02<*:/v1/{name=projects/*/locations/*/entryGroups/*/entries/**}\x12\xB6\x01\x0A\x0BListEntries\x12,.google.cloud.dataplex.v1.ListEntriesRequest\x1A-.google.cloud.dataplex.v1.ListEntriesResponse\"J\xDAA\x06parent\x82\xD3\xE4\x93\x02;\x129/v1/{parent=projects/*/locations/*/entryGroups/*}/entries\x12\xA1\x01\x0A\x08GetEntry\x12).google.cloud.dataplex.v1.GetEntryRequest\x1A\x1F.google.cloud.dataplex.v1.Entry\"I\xDAA\x04name\x82\xD3\xE4\x93\x02<\x12:/v1/{name=projects/*/locations/*/entryGroups/*/entries/**}\x12\x93\x01\x0A\x0BLookupEntry\x12,.google.cloud.dataplex.v1.LookupEntryRequest\x1A\x1F.google.cloud.dataplex.v1.Entry\"5\x82\xD3\xE4\x93\x02/\x12-/v1/{name=projects/*/locations/*}:lookupEntry\x12\xB6\x01\x0A\x0DSearchEntries\x12..google.cloud.dataplex.v1.SearchEntriesRequest\x1A/.google.cloud.dataplex.v1.SearchEntriesResponse\"D\xDAA\x0Aname,query\x82\xD3\xE4\x93\x021\"//v1/{name=projects/*/locations/*}:searchEntries\x12\xF8\x01\x0A\x11CreateMetadataJob\x122.google.cloud.dataplex.v1.CreateMetadataJobRequest\x1A\x1D.google.longrunning.Operation\"\x8F\x01\xCAA \x0A\x0BMetadataJob\x12\x11OperationMetadata\xDAA#parent,metadata_job,metadata_job_id\x82\xD3\xE4\x93\x02@\"0/v1/{parent=projects/*/locations/*}/metadataJobs:\x0Cmetadata_job\x12\xA9\x01\x0A\x0EGetMetadataJob\x12/.google.cloud.dataplex.v1.GetMetadataJobRequest\x1A%.google.cloud.dataplex.v1.MetadataJob\"?\xDAA\x04name\x82\xD3\xE4\x93\x022\x120/v1/{name=projects/*/locations/*/metadataJobs/*}\x12\xBC\x01\x0A\x10ListMetadataJobs\x121.google.cloud.dataplex.v1.ListMetadataJobsRequest\x1A2.google.cloud.dataplex.v1.ListMetadataJobsResponse\"A\xDAA\x06parent\x82\xD3\xE4\x93\x022\x120/v1/{parent=projects/*/locations/*}/metadataJobs\x12\xAA\x01\x0A\x11CancelMetadataJob\x122.google.cloud.dataplex.v1.CancelMetadataJobRequest\x1A\x16.google.protobuf.Empty\"I\xDAA\x04name\x82\xD3\xE4\x93\x02<\"7/v1/{name=projects/*/locations/*/metadataJobs/*}:cancel:\x01*\x12\xDC\x01\x0A\x0FCreateEntryLink\x120.google.cloud.dataplex.v1.CreateEntryLinkRequest\x1A#.google.cloud.dataplex.v1.EntryLink\"r\xDAA\x1Fparent,entry_link,entry_link_id\x82\xD3\xE4\x93\x02J\"*\x12\x0A\x0Bentry_group\x18\x03 \x01(\x0B2\$.google.cloud.dataplex.v1.EntryGroupB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\xAB\x01\x0A\x17UpdateEntryGroupRequest\x12>\x0A\x0Bentry_group\x18\x01 \x01(\x0B2\$.google.cloud.dataplex.v1.EntryGroupB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"f\x0A\x17DeleteEntryGroupRequest\x128\x0A\x04name\x18\x01 \x01(\x09B*\xE0A\x02\xFAA\$\x0A\"dataplex.googleapis.com/EntryGroup\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x01\"\xB0\x01\x0A\x16ListEntryGroupsRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x8D\x01\x0A\x17ListEntryGroupsResponse\x12:\x0A\x0Centry_groups\x18\x01 \x03(\x0B2\$.google.cloud.dataplex.v1.EntryGroup\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"P\x0A\x14GetEntryGroupRequest\x128\x0A\x04name\x18\x01 \x01(\x09B*\xE0A\x02\xFAA\$\x0A\"dataplex.googleapis.com/EntryGroup\"\xC9\x01\x0A\x16CreateEntryTypeRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x1A\x0A\x0Dentry_type_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12<\x0A\x0Aentry_type\x18\x03 \x01(\x0B2#.google.cloud.dataplex.v1.EntryTypeB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\xA8\x01\x0A\x16UpdateEntryTypeRequest\x12<\x0A\x0Aentry_type\x18\x01 \x01(\x0B2#.google.cloud.dataplex.v1.EntryTypeB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"d\x0A\x16DeleteEntryTypeRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!dataplex.googleapis.com/EntryType\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x01\"\xAF\x01\x0A\x15ListEntryTypesRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x8A\x01\x0A\x16ListEntryTypesResponse\x128\x0A\x0Bentry_types\x18\x01 \x03(\x0B2#.google.cloud.dataplex.v1.EntryType\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"N\x0A\x13GetEntryTypeRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!dataplex.googleapis.com/EntryType\"\xCD\x01\x0A\x17CreateAspectTypeRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x1B\x0A\x0Easpect_type_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12>\x0A\x0Baspect_type\x18\x03 \x01(\x0B2\$.google.cloud.dataplex.v1.AspectTypeB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\xAB\x01\x0A\x17UpdateAspectTypeRequest\x12>\x0A\x0Baspect_type\x18\x01 \x01(\x0B2\$.google.cloud.dataplex.v1.AspectTypeB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"f\x0A\x17DeleteAspectTypeRequest\x128\x0A\x04name\x18\x01 \x01(\x09B*\xE0A\x02\xFAA\$\x0A\"dataplex.googleapis.com/AspectType\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x01\"\xB0\x01\x0A\x16ListAspectTypesRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x8D\x01\x0A\x17ListAspectTypesResponse\x12:\x0A\x0Caspect_types\x18\x01 \x03(\x0B2\$.google.cloud.dataplex.v1.AspectType\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"P\x0A\x14GetAspectTypeRequest\x128\x0A\x04name\x18\x01 \x01(\x09B*\xE0A\x02\xFAA\$\x0A\"dataplex.googleapis.com/AspectType\"\x9C\x01\x0A\x12CreateEntryRequest\x12:\x0A\x06parent\x18\x01 \x01(\x09B*\xE0A\x02\xFAA\$\x0A\"dataplex.googleapis.com/EntryGroup\x12\x15\x0A\x08entry_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x123\x0A\x05entry\x18\x03 \x01(\x0B2\x1F.google.cloud.dataplex.v1.EntryB\x03\xE0A\x02\"\xDA\x01\x0A\x12UpdateEntryRequest\x123\x0A\x05entry\x18\x01 \x01(\x0B2\x1F.google.cloud.dataplex.v1.EntryB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x01\x12\x1A\x0A\x0Dallow_missing\x18\x03 \x01(\x08B\x03\xE0A\x01\x12#\x0A\x16delete_missing_aspects\x18\x04 \x01(\x08B\x03\xE0A\x01\x12\x18\x0A\x0Baspect_keys\x18\x05 \x03(\x09B\x03\xE0A\x01\"I\x0A\x12DeleteEntryRequest\x123\x0A\x04name\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Ddataplex.googleapis.com/Entry\"\x96\x01\x0A\x12ListEntriesRequest\x12:\x0A\x06parent\x18\x01 \x01(\x09B*\xE0A\x02\xFAA\$\x0A\"dataplex.googleapis.com/EntryGroup\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\"`\x0A\x13ListEntriesResponse\x120\x0A\x07entries\x18\x01 \x03(\x0B2\x1F.google.cloud.dataplex.v1.Entry\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"\xAD\x01\x0A\x0FGetEntryRequest\x123\x0A\x04name\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Ddataplex.googleapis.com/Entry\x126\x0A\x04view\x18\x02 \x01(\x0E2#.google.cloud.dataplex.v1.EntryViewB\x03\xE0A\x01\x12\x19\x0A\x0Caspect_types\x18\x03 \x03(\x09B\x03\xE0A\x01\x12\x12\x0A\x05paths\x18\x04 \x03(\x09B\x03\xE0A\x01\"\xC4\x01\x0A\x12LookupEntryRequest\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x02\x126\x0A\x04view\x18\x02 \x01(\x0E2#.google.cloud.dataplex.v1.EntryViewB\x03\xE0A\x01\x12\x19\x0A\x0Caspect_types\x18\x03 \x03(\x09B\x03\xE0A\x01\x12\x12\x0A\x05paths\x18\x04 \x03(\x09B\x03\xE0A\x01\x124\x0A\x05entry\x18\x05 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Ddataplex.googleapis.com/Entry\"\xFC\x01\x0A\x14LookupContextRequest\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x02\x128\x0A\x09resources\x18\x02 \x03(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Ddataplex.googleapis.com/Entry\x12\x14\x0A\x07context\x18\x03 \x01(\x09B\x03\xE0A\x01\x12Q\x0A\x07options\x18\x04 \x03(\x0B2;.google.cloud.dataplex.v1.LookupContextRequest.OptionsEntryB\x03\xE0A\x01\x1A.\x0A\x0COptionsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"\xD1\x01\x0A\x12ModifyEntryRequest\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x02\x123\x0A\x05entry\x18\x02 \x01(\x0B2\x1F.google.cloud.dataplex.v1.EntryB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x03 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x01\x12#\x0A\x16delete_missing_aspects\x18\x04 \x01(\x08B\x03\xE0A\x01\x12\x18\x0A\x0Baspect_keys\x18\x05 \x03(\x09B\x03\xE0A\x01\"(\x0A\x15LookupContextResponse\x12\x0F\x0A\x07context\x18\x01 \x01(\x09\"\xDD\x01\x0A\x14SearchEntriesRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x12\x0A\x05query\x18\x02 \x01(\x09B\x03\xE0A\x02\x12\x16\x0A\x09page_size\x18\x03 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x12\x0A\x05scope\x18\x07 \x01(\x09B\x03\xE0A\x01\x12\x1C\x0A\x0Fsemantic_search\x18\x0B \x01(\x08B\x03\xE0A\x01\"\x86\x02\x0A\x13SearchEntriesResult\x12\x1B\x0A\x0Flinked_resource\x18\x08 \x01(\x09B\x02\x18\x01\x127\x0A\x0Edataplex_entry\x18\x09 \x01(\x0B2\x1F.google.cloud.dataplex.v1.Entry\x12L\x0A\x08snippets\x18\x0C \x01(\x0B26.google.cloud.dataplex.v1.SearchEntriesResult.SnippetsB\x02\x18\x01\x1AK\x0A\x08Snippets\x12;\x0A\x0Edataplex_entry\x18\x01 \x01(\x0B2\x1F.google.cloud.dataplex.v1.EntryB\x02\x18\x01:\x02\x18\x01\"\x99\x01\x0A\x15SearchEntriesResponse\x12>\x0A\x07results\x18\x01 \x03(\x0B2-.google.cloud.dataplex.v1.SearchEntriesResult\x12\x12\x0A\x0Atotal_size\x18\x02 \x01(\x05\x12\x17\x0A\x0Fnext_page_token\x18\x03 \x01(\x09\x12\x13\x0A\x0Bunreachable\x18\x04 \x03(\x09\"\xBB\x01\x0A\x0AImportItem\x12.\x0A\x05entry\x18\x01 \x01(\x0B2\x1F.google.cloud.dataplex.v1.Entry\x127\x0A\x0Aentry_link\x18\x04 \x01(\x0B2#.google.cloud.dataplex.v1.EntryLink\x12/\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMask\x12\x13\x0A\x0Baspect_keys\x18\x03 \x03(\x09\"\xD1\x01\x0A\x18CreateMetadataJobRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12@\x0A\x0Cmetadata_job\x18\x02 \x01(\x0B2%.google.cloud.dataplex.v1.MetadataJobB\x03\xE0A\x02\x12\x1C\x0A\x0Fmetadata_job_id\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"R\x0A\x15GetMetadataJobRequest\x129\x0A\x04name\x18\x01 \x01(\x09B+\xE0A\x02\xFAA%\x0A#dataplex.googleapis.com/MetadataJob\"\xB1\x01\x0A\x17ListMetadataJobsRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x90\x01\x0A\x18ListMetadataJobsResponse\x12<\x0A\x0Dmetadata_jobs\x18\x01 \x03(\x0B2%.google.cloud.dataplex.v1.MetadataJob\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"U\x0A\x18CancelMetadataJobRequest\x129\x0A\x04name\x18\x01 \x01(\x09B+\xE0A\x02\xFAA%\x0A#dataplex.googleapis.com/MetadataJob\"\xEE\x17\x0A\x0BMetadataJob\x12\x14\x0A\x04name\x18\x01 \x01(\x09B\x06\xE0A\x03\xE0A\x08\x12\x18\x0A\x03uid\x18\x02 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12F\x0A\x06labels\x18\x05 \x03(\x0B21.google.cloud.dataplex.v1.MetadataJob.LabelsEntryB\x03\xE0A\x01\x12=\x0A\x04type\x18\x06 \x01(\x0E2*.google.cloud.dataplex.v1.MetadataJob.TypeB\x03\xE0A\x02\x12J\x0A\x0Bimport_spec\x18d \x01(\x0B23.google.cloud.dataplex.v1.MetadataJob.ImportJobSpecH\x00\x12J\x0A\x0Bexport_spec\x18e \x01(\x0B23.google.cloud.dataplex.v1.MetadataJob.ExportJobSpecH\x00\x12T\x0A\x0Dimport_result\x18\xC8\x01 \x01(\x0B25.google.cloud.dataplex.v1.MetadataJob.ImportJobResultB\x03\xE0A\x03H\x01\x12T\x0A\x0Dexport_result\x18\xC9\x01 \x01(\x0B25.google.cloud.dataplex.v1.MetadataJob.ExportJobResultB\x03\xE0A\x03H\x01\x12A\x0A\x06status\x18\x07 \x01(\x0B2,.google.cloud.dataplex.v1.MetadataJob.StatusB\x03\xE0A\x03\x1A\xC9\x02\x0A\x0FImportJobResult\x12\x1C\x0A\x0Fdeleted_entries\x18\x01 \x01(\x03B\x03\xE0A\x03\x12\x1C\x0A\x0Fupdated_entries\x18\x02 \x01(\x03B\x03\xE0A\x03\x12\x1C\x0A\x0Fcreated_entries\x18\x03 \x01(\x03B\x03\xE0A\x03\x12\x1E\x0A\x11unchanged_entries\x18\x04 \x01(\x03B\x03\xE0A\x03\x12\x1E\x0A\x11recreated_entries\x18\x06 \x01(\x03B\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12 \x0A\x13deleted_entry_links\x18\x07 \x01(\x03B\x03\xE0A\x03\x12 \x0A\x13created_entry_links\x18\x08 \x01(\x03B\x03\xE0A\x03\x12\"\x0A\x15unchanged_entry_links\x18\x09 \x01(\x03B\x03\xE0A\x03\x1AL\x0A\x0FExportJobResult\x12\x1D\x0A\x10exported_entries\x18\x01 \x01(\x03B\x03\xE0A\x03\x12\x1A\x0A\x0Derror_message\x18\x02 \x01(\x09B\x03\xE0A\x03\x1A\xB6\x07\x0A\x0DImportJobSpec\x12\x1F\x0A\x12source_storage_uri\x18\x01 \x01(\x09B\x03\xE0A\x01\x12;\x0A\x12source_create_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\x12V\x0A\x05scope\x18\x02 \x01(\x0B2B.google.cloud.dataplex.v1.MetadataJob.ImportJobSpec.ImportJobScopeB\x03\xE0A\x02\x12Z\x0A\x0Fentry_sync_mode\x18\x03 \x01(\x0E2<.google.cloud.dataplex.v1.MetadataJob.ImportJobSpec.SyncModeB\x03\xE0A\x02\x12[\x0A\x10aspect_sync_mode\x18\x04 \x01(\x0E2<.google.cloud.dataplex.v1.MetadataJob.ImportJobSpec.SyncModeB\x03\xE0A\x02\x12T\x0A\x09log_level\x18\x06 \x01(\x0E2<.google.cloud.dataplex.v1.MetadataJob.ImportJobSpec.LogLevelB\x03\xE0A\x01\x1A\xD7\x02\x0A\x0EImportJobScope\x12@\x0A\x0Centry_groups\x18\x01 \x03(\x09B*\xE0A\x02\xFAA\$\x0A\"dataplex.googleapis.com/EntryGroup\x12>\x0A\x0Bentry_types\x18\x02 \x03(\x09B)\xE0A\x02\xFAA#\x0A!dataplex.googleapis.com/EntryType\x12@\x0A\x0Caspect_types\x18\x03 \x03(\x09B*\xE0A\x01\xFAA\$\x0A\"dataplex.googleapis.com/AspectType\x12<\x0A\x0Aglossaries\x18\x04 \x03(\x09B(\xE0A\x01\xFAA\"\x0A dataplex.googleapis.com/Glossary\x12\x1D\x0A\x10entry_link_types\x18\x05 \x03(\x09B\x03\xE0A\x01\x12\$\x0A\x17referenced_entry_scopes\x18\x06 \x03(\x09B\x03\xE0A\x01\"J\x0A\x08SyncMode\x12\x19\x0A\x15SYNC_MODE_UNSPECIFIED\x10\x00\x12\x08\x0A\x04FULL\x10\x01\x12\x0F\x0A\x0BINCREMENTAL\x10\x02\x12\x08\x0A\x04NONE\x10\x03\":\x0A\x08LogLevel\x12\x19\x0A\x15LOG_LEVEL_UNSPECIFIED\x10\x00\x12\x09\x0A\x05DEBUG\x10\x01\x12\x08\x0A\x04INFO\x10\x02\x1A\xAF\x03\x0A\x0DExportJobSpec\x12V\x0A\x05scope\x18\x02 \x01(\x0B2B.google.cloud.dataplex.v1.MetadataJob.ExportJobSpec.ExportJobScopeB\x03\xE0A\x02\x12\x18\x0A\x0Boutput_path\x18\x03 \x01(\x09B\x03\xE0A\x02\x1A\xAB\x02\x0A\x0EExportJobScope\x12\x1A\x0A\x12organization_level\x18\x01 \x01(\x08\x12B\x0A\x08projects\x18\x02 \x03(\x09B0\xFAA-\x0A+cloudresourcemanager.googleapis.com/Project\x12=\x0A\x0Centry_groups\x18\x03 \x03(\x09B'\xFAA\$\x0A\"dataplex.googleapis.com/EntryGroup\x12;\x0A\x0Bentry_types\x18\x04 \x03(\x09B&\xFAA#\x0A!dataplex.googleapis.com/EntryType\x12=\x0A\x0Caspect_types\x18\x05 \x03(\x09B'\xFAA\$\x0A\"dataplex.googleapis.com/AspectType\x1A\xCA\x02\x0A\x06Status\x12F\x0A\x05state\x18\x01 \x01(\x0E22.google.cloud.dataplex.v1.MetadataJob.Status.StateB\x03\xE0A\x03\x12\x14\x0A\x07message\x18\x02 \x01(\x09B\x03\xE0A\x03\x12\x1F\x0A\x12completion_percent\x18\x03 \x01(\x05B\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\"\x8A\x01\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06QUEUED\x10\x01\x12\x0B\x0A\x07RUNNING\x10\x02\x12\x0D\x0A\x09CANCELING\x10\x03\x12\x0C\x0A\x08CANCELED\x10\x04\x12\x0D\x0A\x09SUCCEEDED\x10\x05\x12\x0A\x0A\x06FAILED\x10\x06\x12\x19\x0A\x15SUCCEEDED_WITH_ERRORS\x10\x07\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"4\x0A\x04Type\x12\x14\x0A\x10TYPE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06IMPORT\x10\x01\x12\x0A\x0A\x06EXPORT\x10\x02:l\xEAAi\x0A#dataplex.googleapis.com/MetadataJob\x12Bprojects/{project}/locations/{location}/metadataJobs/{metadataJob}B\x06\x0A\x04specB\x08\x0A\x06result\"\x9F\x06\x0A\x09EntryLink\x12=\x0A\x04name\x18\x01 \x01(\x09B/\xE0A\x03\xE0A\x05\xE0A\x08\xFAA#\x0A!dataplex.googleapis.com/EntryLink\x12\x1F\x0A\x0Fentry_link_type\x18\x02 \x01(\x09B\x06\xE0A\x02\xE0A\x05\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12F\x0A\x07aspects\x18\x06 \x03(\x0B20.google.cloud.dataplex.v1.EntryLink.AspectsEntryB\x03\xE0A\x01\x12T\x0A\x10entry_references\x18\x0A \x03(\x0B22.google.cloud.dataplex.v1.EntryLink.EntryReferenceB\x06\xE0A\x02\xE0A\x05\x1A\xB9\x01\x0A\x0EEntryReference\x12\x14\x0A\x04name\x18\x01 \x01(\x09B\x06\xE0A\x02\xE0A\x05\x12\x11\x0A\x04path\x18\x02 \x01(\x09B\x03\xE0A\x05\x12M\x0A\x04type\x18\x03 \x01(\x0E27.google.cloud.dataplex.v1.EntryLink.EntryReference.TypeB\x06\xE0A\x02\xE0A\x05\"/\x0A\x04Type\x12\x0F\x0A\x0BUNSPECIFIED\x10\x00\x12\x0A\x0A\x06SOURCE\x10\x02\x12\x0A\x0A\x06TARGET\x10\x03\x1AP\x0A\x0CAspectsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12/\x0A\x05value\x18\x02 \x01(\x0B2 .google.cloud.dataplex.v1.Aspect:\x028\x01:\x99\x01\xEAA\x95\x01\x0A!dataplex.googleapis.com/EntryLink\x12Yprojects/{project}/locations/{location}/entryGroups/{entry_group}/entryLinks/{entry_link}*\x0AentryLinks2\x09entryLink\"\xAE\x01\x0A\x16CreateEntryLinkRequest\x12:\x0A\x06parent\x18\x01 \x01(\x09B*\xE0A\x02\xFAA\$\x0A\"dataplex.googleapis.com/EntryGroup\x12\x1A\x0A\x0Dentry_link_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12<\x0A\x0Aentry_link\x18\x03 \x01(\x0B2#.google.cloud.dataplex.v1.EntryLinkB\x03\xE0A\x02\"\x8C\x01\x0A\x16UpdateEntryLinkRequest\x12<\x0A\x0Aentry_link\x18\x01 \x01(\x0B2#.google.cloud.dataplex.v1.EntryLinkB\x03\xE0A\x02\x12\x1A\x0A\x0Dallow_missing\x18\x03 \x01(\x08B\x03\xE0A\x01\x12\x18\x0A\x0Baspect_keys\x18\x05 \x03(\x09B\x03\xE0A\x01\"Q\x0A\x16DeleteEntryLinkRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!dataplex.googleapis.com/EntryLink\"\xB5\x02\x0A\x17LookupEntryLinksRequest\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x02\x124\x0A\x05entry\x18\x02 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Ddataplex.googleapis.com/Entry\x12O\x0A\x0Aentry_mode\x18\x03 \x01(\x0E2;.google.cloud.dataplex.v1.LookupEntryLinksRequest.EntryMode\x12\x18\x0A\x10entry_link_types\x18\x04 \x03(\x09\x12\x11\x0A\x09page_size\x18\x05 \x01(\x05\x12\x12\x0A\x0Apage_token\x18\x06 \x01(\x09\"?\x0A\x09EntryMode\x12\x1A\x0A\x16ENTRY_MODE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06SOURCE\x10\x01\x12\x0A\x0A\x06TARGET\x10\x02\"m\x0A\x18LookupEntryLinksResponse\x128\x0A\x0Bentry_links\x18\x01 \x03(\x0B2#.google.cloud.dataplex.v1.EntryLink\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"N\x0A\x13GetEntryLinkRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!dataplex.googleapis.com/EntryLink\"\xC8\x08\x0A\x0CMetadataFeed\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12\x18\x0A\x03uid\x18\x02 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x12@\x0A\x05scope\x18\x03 \x01(\x0B2,.google.cloud.dataplex.v1.MetadataFeed.ScopeB\x03\xE0A\x02\x12D\x0A\x07filters\x18\x04 \x01(\x0B2..google.cloud.dataplex.v1.MetadataFeed.FiltersB\x03\xE0A\x01\x124\x0A\x0Bcreate_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x07 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12G\x0A\x06labels\x18\x08 \x03(\x0B22.google.cloud.dataplex.v1.MetadataFeed.LabelsEntryB\x03\xE0A\x01\x12\x1B\x0A\x0Cpubsub_topic\x18d \x01(\x09B\x03\xE0A\x01H\x00\x1A\xB1\x01\x0A\x05Scope\x12\x1F\x0A\x12organization_level\x18\x01 \x01(\x08B\x03\xE0A\x01\x12E\x0A\x08projects\x18\x02 \x03(\x09B3\xE0A\x01\xFAA-\x0A+cloudresourcemanager.googleapis.com/Project\x12@\x0A\x0Centry_groups\x18\x03 \x03(\x09B*\xE0A\x01\xFAA\$\x0A\"dataplex.googleapis.com/EntryGroup\x1A\xB0\x02\x0A\x07Filters\x12>\x0A\x0Bentry_types\x18\x01 \x03(\x09B)\xE0A\x01\xFAA#\x0A!dataplex.googleapis.com/EntryType\x12@\x0A\x0Caspect_types\x18\x02 \x03(\x09B*\xE0A\x01\xFAA\$\x0A\"dataplex.googleapis.com/AspectType\x12T\x0A\x0Cchange_types\x18\x03 \x03(\x0E29.google.cloud.dataplex.v1.MetadataFeed.Filters.ChangeTypeB\x03\xE0A\x01\"M\x0A\x0AChangeType\x12\x1B\x0A\x17CHANGE_TYPE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06CREATE\x10\x01\x12\x0A\x0A\x06UPDATE\x10\x02\x12\x0A\x0A\x06DELETE\x10\x03\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:\x8E\x01\xEAA\x8A\x01\x0A\$dataplex.googleapis.com/MetadataFeed\x12Eprojects/{project}/locations/{location}/metadataFeeds/{metadata_feed}*\x0DmetadataFeeds2\x0CmetadataFeedB\x0A\x0A\x08endpoint\"\xD5\x01\x0A\x19CreateMetadataFeedRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12B\x0A\x0Dmetadata_feed\x18\x02 \x01(\x0B2&.google.cloud.dataplex.v1.MetadataFeedB\x03\xE0A\x02\x12\x1D\x0A\x10metadata_feed_id\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"T\x0A\x16GetMetadataFeedRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$dataplex.googleapis.com/MetadataFeed\"\xB2\x01\x0A\x18ListMetadataFeedsRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x8E\x01\x0A\x19ListMetadataFeedsResponse\x12>\x0A\x0Emetadata_feeds\x18\x01 \x03(\x0B2&.google.cloud.dataplex.v1.MetadataFeed\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x18\x0A\x0Bunreachable\x18\x03 \x03(\x09B\x03\xE0A\x06\"W\x0A\x19DeleteMetadataFeedRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$dataplex.googleapis.com/MetadataFeed\"\xB1\x01\x0A\x19UpdateMetadataFeedRequest\x12B\x0A\x0Dmetadata_feed\x18\x01 \x01(\x0B2&.google.cloud.dataplex.v1.MetadataFeedB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x01\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01*Q\x0A\x09EntryView\x12\x1A\x0A\x16ENTRY_VIEW_UNSPECIFIED\x10\x00\x12\x09\x0A\x05BASIC\x10\x01\x12\x08\x0A\x04FULL\x10\x02\x12\x0A\x0A\x06CUSTOM\x10\x03\x12\x07\x0A\x03ALL\x10\x04*p\x0A\x0ETransferStatus\x12\x1F\x0A\x1BTRANSFER_STATUS_UNSPECIFIED\x10\x00\x12\x1C\x0A\x18TRANSFER_STATUS_MIGRATED\x10\x01\x12\x1F\x0A\x1BTRANSFER_STATUS_TRANSFERRED\x10\x022\xA8=\x0A\x0ECatalogService\x12\xEA\x01\x0A\x0FCreateEntryType\x120.google.cloud.dataplex.v1.CreateEntryTypeRequest\x1A\x1D.google.longrunning.Operation\"\x85\x01\xCAA\x1E\x0A\x09EntryType\x12\x11OperationMetadata\xDAA\x1Fparent,entry_type,entry_type_id\x82\xD3\xE4\x93\x02<\"./v1/{parent=projects/*/locations/*}/entryTypes:\x0Aentry_type\x12\xEC\x01\x0A\x0FUpdateEntryType\x120.google.cloud.dataplex.v1.UpdateEntryTypeRequest\x1A\x1D.google.longrunning.Operation\"\x87\x01\xCAA\x1E\x0A\x09EntryType\x12\x11OperationMetadata\xDAA\x16entry_type,update_mask\x82\xD3\xE4\x93\x02G29/v1/{entry_type.name=projects/*/locations/*/entryTypes/*}:\x0Aentry_type\x12\xCE\x01\x0A\x0FDeleteEntryType\x120.google.cloud.dataplex.v1.DeleteEntryTypeRequest\x1A\x1D.google.longrunning.Operation\"j\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x020*./v1/{name=projects/*/locations/*/entryTypes/*}\x12\xB4\x01\x0A\x0EListEntryTypes\x12/.google.cloud.dataplex.v1.ListEntryTypesRequest\x1A0.google.cloud.dataplex.v1.ListEntryTypesResponse\"?\xDAA\x06parent\x82\xD3\xE4\x93\x020\x12./v1/{parent=projects/*/locations/*}/entryTypes\x12\xA1\x01\x0A\x0CGetEntryType\x12-.google.cloud.dataplex.v1.GetEntryTypeRequest\x1A#.google.cloud.dataplex.v1.EntryType\"=\xDAA\x04name\x82\xD3\xE4\x93\x020\x12./v1/{name=projects/*/locations/*/entryTypes/*}\x12\xF1\x01\x0A\x10CreateAspectType\x121.google.cloud.dataplex.v1.CreateAspectTypeRequest\x1A\x1D.google.longrunning.Operation\"\x8A\x01\xCAA\x1F\x0A\x0AAspectType\x12\x11OperationMetadata\xDAA!parent,aspect_type,aspect_type_id\x82\xD3\xE4\x93\x02>\"//v1/{parent=projects/*/locations/*}/aspectTypes:\x0Baspect_type\x12\xF3\x01\x0A\x10UpdateAspectType\x121.google.cloud.dataplex.v1.UpdateAspectTypeRequest\x1A\x1D.google.longrunning.Operation\"\x8C\x01\xCAA\x1F\x0A\x0AAspectType\x12\x11OperationMetadata\xDAA\x17aspect_type,update_mask\x82\xD3\xE4\x93\x02J2;/v1/{aspect_type.name=projects/*/locations/*/aspectTypes/*}:\x0Baspect_type\x12\xD1\x01\x0A\x10DeleteAspectType\x121.google.cloud.dataplex.v1.DeleteAspectTypeRequest\x1A\x1D.google.longrunning.Operation\"k\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x021*//v1/{name=projects/*/locations/*/aspectTypes/*}\x12\xB8\x01\x0A\x0FListAspectTypes\x120.google.cloud.dataplex.v1.ListAspectTypesRequest\x1A1.google.cloud.dataplex.v1.ListAspectTypesResponse\"@\xDAA\x06parent\x82\xD3\xE4\x93\x021\x12//v1/{parent=projects/*/locations/*}/aspectTypes\x12\xA5\x01\x0A\x0DGetAspectType\x12..google.cloud.dataplex.v1.GetAspectTypeRequest\x1A\$.google.cloud.dataplex.v1.AspectType\">\xDAA\x04name\x82\xD3\xE4\x93\x021\x12//v1/{name=projects/*/locations/*/aspectTypes/*}\x12\xF1\x01\x0A\x10CreateEntryGroup\x121.google.cloud.dataplex.v1.CreateEntryGroupRequest\x1A\x1D.google.longrunning.Operation\"\x8A\x01\xCAA\x1F\x0A\x0AEntryGroup\x12\x11OperationMetadata\xDAA!parent,entry_group,entry_group_id\x82\xD3\xE4\x93\x02>\"//v1/{parent=projects/*/locations/*}/entryGroups:\x0Bentry_group\x12\xF3\x01\x0A\x10UpdateEntryGroup\x121.google.cloud.dataplex.v1.UpdateEntryGroupRequest\x1A\x1D.google.longrunning.Operation\"\x8C\x01\xCAA\x1F\x0A\x0AEntryGroup\x12\x11OperationMetadata\xDAA\x17entry_group,update_mask\x82\xD3\xE4\x93\x02J2;/v1/{entry_group.name=projects/*/locations/*/entryGroups/*}:\x0Bentry_group\x12\xD1\x01\x0A\x10DeleteEntryGroup\x121.google.cloud.dataplex.v1.DeleteEntryGroupRequest\x1A\x1D.google.longrunning.Operation\"k\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x021*//v1/{name=projects/*/locations/*/entryGroups/*}\x12\xB8\x01\x0A\x0FListEntryGroups\x120.google.cloud.dataplex.v1.ListEntryGroupsRequest\x1A1.google.cloud.dataplex.v1.ListEntryGroupsResponse\"@\xDAA\x06parent\x82\xD3\xE4\x93\x021\x12//v1/{parent=projects/*/locations/*}/entryGroups\x12\xA5\x01\x0A\x0DGetEntryGroup\x12..google.cloud.dataplex.v1.GetEntryGroupRequest\x1A\$.google.cloud.dataplex.v1.EntryGroup\">\xDAA\x04name\x82\xD3\xE4\x93\x021\x12//v1/{name=projects/*/locations/*/entryGroups/*}\x12\xBE\x01\x0A\x0BCreateEntry\x12,.google.cloud.dataplex.v1.CreateEntryRequest\x1A\x1F.google.cloud.dataplex.v1.Entry\"`\xDAA\x15parent,entry,entry_id\x82\xD3\xE4\x93\x02B\"9/v1/{parent=projects/*/locations/*/entryGroups/*}/entries:\x05entry\x12\xC1\x01\x0A\x0BUpdateEntry\x12,.google.cloud.dataplex.v1.UpdateEntryRequest\x1A\x1F.google.cloud.dataplex.v1.Entry\"c\xDAA\x11entry,update_mask\x82\xD3\xE4\x93\x02I2@/v1/{entry.name=projects/*/locations/*/entryGroups/*/entries/**}:\x05entry\x12\xA7\x01\x0A\x0BDeleteEntry\x12,.google.cloud.dataplex.v1.DeleteEntryRequest\x1A\x1F.google.cloud.dataplex.v1.Entry\"I\xDAA\x04name\x82\xD3\xE4\x93\x02<*:/v1/{name=projects/*/locations/*/entryGroups/*/entries/**}\x12\xB6\x01\x0A\x0BListEntries\x12,.google.cloud.dataplex.v1.ListEntriesRequest\x1A-.google.cloud.dataplex.v1.ListEntriesResponse\"J\xDAA\x06parent\x82\xD3\xE4\x93\x02;\x129/v1/{parent=projects/*/locations/*/entryGroups/*}/entries\x12\xA1\x01\x0A\x08GetEntry\x12).google.cloud.dataplex.v1.GetEntryRequest\x1A\x1F.google.cloud.dataplex.v1.Entry\"I\xDAA\x04name\x82\xD3\xE4\x93\x02<\x12:/v1/{name=projects/*/locations/*/entryGroups/*/entries/**}\x12\x93\x01\x0A\x0BLookupEntry\x12,.google.cloud.dataplex.v1.LookupEntryRequest\x1A\x1F.google.cloud.dataplex.v1.Entry\"5\x82\xD3\xE4\x93\x02/\x12-/v1/{name=projects/*/locations/*}:lookupEntry\x12\x96\x01\x0A\x0BModifyEntry\x12,.google.cloud.dataplex.v1.ModifyEntryRequest\x1A\x1F.google.cloud.dataplex.v1.Entry\"8\x82\xD3\xE4\x93\x022\"-/v1/{name=projects/*/locations/*}:modifyEntry:\x01*\x12\xB6\x01\x0A\x0DSearchEntries\x12..google.cloud.dataplex.v1.SearchEntriesRequest\x1A/.google.cloud.dataplex.v1.SearchEntriesResponse\"D\xDAA\x0Aname,query\x82\xD3\xE4\x93\x021\"//v1/{name=projects/*/locations/*}:searchEntries\x12\xF8\x01\x0A\x11CreateMetadataJob\x122.google.cloud.dataplex.v1.CreateMetadataJobRequest\x1A\x1D.google.longrunning.Operation\"\x8F\x01\xCAA \x0A\x0BMetadataJob\x12\x11OperationMetadata\xDAA#parent,metadata_job,metadata_job_id\x82\xD3\xE4\x93\x02@\"0/v1/{parent=projects/*/locations/*}/metadataJobs:\x0Cmetadata_job\x12\xA9\x01\x0A\x0EGetMetadataJob\x12/.google.cloud.dataplex.v1.GetMetadataJobRequest\x1A%.google.cloud.dataplex.v1.MetadataJob\"?\xDAA\x04name\x82\xD3\xE4\x93\x022\x120/v1/{name=projects/*/locations/*/metadataJobs/*}\x12\xBC\x01\x0A\x10ListMetadataJobs\x121.google.cloud.dataplex.v1.ListMetadataJobsRequest\x1A2.google.cloud.dataplex.v1.ListMetadataJobsResponse\"A\xDAA\x06parent\x82\xD3\xE4\x93\x022\x120/v1/{parent=projects/*/locations/*}/metadataJobs\x12\xAA\x01\x0A\x11CancelMetadataJob\x122.google.cloud.dataplex.v1.CancelMetadataJobRequest\x1A\x16.google.protobuf.Empty\"I\xDAA\x04name\x82\xD3\xE4\x93\x02<\"7/v1/{name=projects/*/locations/*/metadataJobs/*}:cancel:\x01*\x12\xDC\x01\x0A\x0FCreateEntryLink\x120.google.cloud.dataplex.v1.CreateEntryLinkRequest\x1A#.google.cloud.dataplex.v1.EntryLink\"r\xDAA\x1Fparent,entry_link,entry_link_id\x82\xD3\xE4\x93\x02J\"*\x12internalAddGeneratedFile( - "\x0A\xEA\x1D\x0A#google/cloud/dataplex/v1/cmek.proto\x12\x18google.cloud.dataplex.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x19google/api/resource.proto\x1A&google/cloud/dataplex/v1/service.proto\x1A#google/longrunning/operations.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"\xFA\x06\x0A\x10EncryptionConfig\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x08\xFAA*\x0A(dataplex.googleapis.com/EncryptionConfig\x12\x10\x0A\x03key\x18\x02 \x01(\x09B\x03\xE0A\x01\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12Y\x0A\x10encryption_state\x18\x05 \x01(\x0E2:.google.cloud.dataplex.v1.EncryptionConfig.EncryptionStateB\x03\xE0A\x03\x12\x0C\x0A\x04etag\x18\x06 \x01(\x09\x12W\x0A\x0Ffailure_details\x18\x07 \x01(\x0B29.google.cloud.dataplex.v1.EncryptionConfig.FailureDetailsB\x03\xE0A\x03\x12(\x0A\x1Benable_metastore_encryption\x18\x08 \x01(\x08B\x03\xE0A\x01\x1A\xD1\x01\x0A\x0EFailureDetails\x12\\\x0A\x0Aerror_code\x18\x01 \x01(\x0E2C.google.cloud.dataplex.v1.EncryptionConfig.FailureDetails.ErrorCodeB\x03\xE0A\x03\x12\x1A\x0A\x0Derror_message\x18\x02 \x01(\x09B\x03\xE0A\x03\"E\x0A\x09ErrorCode\x12\x0B\x0A\x07UNKNOWN\x10\x00\x12\x12\x0A\x0EINTERNAL_ERROR\x10\x01\x12\x17\x0A\x13REQUIRE_USER_ACTION\x10\x02\"^\x0A\x0FEncryptionState\x12 \x0A\x1CENCRYPTION_STATE_UNSPECIFIED\x10\x00\x12\x0E\x0A\x0AENCRYPTING\x10\x01\x12\x0D\x0A\x09COMPLETED\x10\x02\x12\x0A\x0A\x06FAILED\x10\x03:\x87\x01\xEAA\x83\x01\x0A(dataplex.googleapis.com/EncryptionConfig\x12Worganizations/{organization}/locations/{location}/encryptionConfigs/{encryption_config}\"\xD4\x01\x0A\x1DCreateEncryptionConfigRequest\x12D\x0A\x06parent\x18\x01 \x01(\x09B4\xE0A\x02\xFAA.\x0A,dataplex.googleapis.com/OrganizationLocation\x12!\x0A\x14encryption_config_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12J\x0A\x11encryption_config\x18\x03 \x01(\x0B2*.google.cloud.dataplex.v1.EncryptionConfigB\x03\xE0A\x02\"\\\x0A\x1AGetEncryptionConfigRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(dataplex.googleapis.com/EncryptionConfig\"\xA1\x01\x0A\x1DUpdateEncryptionConfigRequest\x12J\x0A\x11encryption_config\x18\x01 \x01(\x0B2*.google.cloud.dataplex.v1.EncryptionConfigB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x01\"r\x0A\x1DDeleteEncryptionConfigRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(dataplex.googleapis.com/EncryptionConfig\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x01\"\xBD\x01\x0A\x1CListEncryptionConfigsRequest\x12@\x0A\x06parent\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x12(dataplex.googleapis.com/EncryptionConfig\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\xC7\x01\x0A\x1DListEncryptionConfigsResponse\x12F\x0A\x12encryption_configs\x18\x01 \x03(\x0B2*.google.cloud.dataplex.v1.EncryptionConfig\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12E\x0A\x15unreachable_locations\x18\x03 \x03(\x09B&\xFAA#\x0A!locations.googleapis.com/Location2\xAA\x0A\x0A\x0BCmekService\x12\xA0\x02\x0A\x16CreateEncryptionConfig\x127.google.cloud.dataplex.v1.CreateEncryptionConfigRequest\x1A\x1D.google.longrunning.Operation\"\xAD\x01\xCAA%\x0A\x10EncryptionConfig\x12\x11OperationMetadata\xDAA-parent,encryption_config,encryption_config_id\x82\xD3\xE4\x93\x02O\":/v1/{parent=organizations/*/locations/*}/encryptionConfigs:\x11encryption_config\x12\xA2\x02\x0A\x16UpdateEncryptionConfig\x127.google.cloud.dataplex.v1.UpdateEncryptionConfigRequest\x1A\x1D.google.longrunning.Operation\"\xAF\x01\xCAA%\x0A\x10EncryptionConfig\x12\x11OperationMetadata\xDAA\x1Dencryption_config,update_mask\x82\xD3\xE4\x93\x02a2L/v1/{encryption_config.name=organizations/*/locations/*/encryptionConfigs/*}:\x11encryption_config\x12\xE8\x01\x0A\x16DeleteEncryptionConfig\x127.google.cloud.dataplex.v1.DeleteEncryptionConfigRequest\x1A\x1D.google.longrunning.Operation\"v\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x02<*:/v1/{name=organizations/*/locations/*/encryptionConfigs/*}\x12\xD5\x01\x0A\x15ListEncryptionConfigs\x126.google.cloud.dataplex.v1.ListEncryptionConfigsRequest\x1A7.google.cloud.dataplex.v1.ListEncryptionConfigsResponse\"K\xDAA\x06parent\x82\xD3\xE4\x93\x02<\x12:/v1/{parent=organizations/*/locations/*}/encryptionConfigs\x12\xC2\x01\x0A\x13GetEncryptionConfig\x124.google.cloud.dataplex.v1.GetEncryptionConfigRequest\x1A*.google.cloud.dataplex.v1.EncryptionConfig\"I\xDAA\x04name\x82\xD3\xE4\x93\x02<\x12:/v1/{name=organizations/*/locations/*/encryptionConfigs/*}\x1AK\xCAA\x17dataplex.googleapis.com\xD2A.https://www.googleapis.com/auth/cloud-platformB\x9D\x02\x0A\x1Ccom.google.cloud.dataplex.v1B\x09CmekProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb\xAA\x02\x18Google.Cloud.Dataplex.V1\xCA\x02\x18Google\\Cloud\\Dataplex\\V1\xEA\x02\x1BGoogle::Cloud::Dataplex::V1\xEAAa\x0A,dataplex.googleapis.com/OrganizationLocation\x121organizations/{organization}/locations/{location}b\x06proto3" + "\x0A\x9E\x1E\x0A#google/cloud/dataplex/v1/cmek.proto\x12\x18google.cloud.dataplex.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x19google/api/resource.proto\x1A&google/cloud/dataplex/v1/service.proto\x1A#google/longrunning/operations.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"\xFA\x06\x0A\x10EncryptionConfig\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x08\xFAA*\x0A(dataplex.googleapis.com/EncryptionConfig\x12\x10\x0A\x03key\x18\x02 \x01(\x09B\x03\xE0A\x01\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12Y\x0A\x10encryption_state\x18\x05 \x01(\x0E2:.google.cloud.dataplex.v1.EncryptionConfig.EncryptionStateB\x03\xE0A\x03\x12\x0C\x0A\x04etag\x18\x06 \x01(\x09\x12W\x0A\x0Ffailure_details\x18\x07 \x01(\x0B29.google.cloud.dataplex.v1.EncryptionConfig.FailureDetailsB\x03\xE0A\x03\x12(\x0A\x1Benable_metastore_encryption\x18\x08 \x01(\x08B\x03\xE0A\x01\x1A\xD1\x01\x0A\x0EFailureDetails\x12\\\x0A\x0Aerror_code\x18\x01 \x01(\x0E2C.google.cloud.dataplex.v1.EncryptionConfig.FailureDetails.ErrorCodeB\x03\xE0A\x03\x12\x1A\x0A\x0Derror_message\x18\x02 \x01(\x09B\x03\xE0A\x03\"E\x0A\x09ErrorCode\x12\x0B\x0A\x07UNKNOWN\x10\x00\x12\x12\x0A\x0EINTERNAL_ERROR\x10\x01\x12\x17\x0A\x13REQUIRE_USER_ACTION\x10\x02\"^\x0A\x0FEncryptionState\x12 \x0A\x1CENCRYPTION_STATE_UNSPECIFIED\x10\x00\x12\x0E\x0A\x0AENCRYPTING\x10\x01\x12\x0D\x0A\x09COMPLETED\x10\x02\x12\x0A\x0A\x06FAILED\x10\x03:\x87\x01\xEAA\x83\x01\x0A(dataplex.googleapis.com/EncryptionConfig\x12Worganizations/{organization}/locations/{location}/encryptionConfigs/{encryption_config}\"\xD4\x01\x0A\x1DCreateEncryptionConfigRequest\x12D\x0A\x06parent\x18\x01 \x01(\x09B4\xE0A\x02\xFAA.\x0A,dataplex.googleapis.com/OrganizationLocation\x12!\x0A\x14encryption_config_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12J\x0A\x11encryption_config\x18\x03 \x01(\x0B2*.google.cloud.dataplex.v1.EncryptionConfigB\x03\xE0A\x02\"\\\x0A\x1AGetEncryptionConfigRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(dataplex.googleapis.com/EncryptionConfig\"\xA1\x01\x0A\x1DUpdateEncryptionConfigRequest\x12J\x0A\x11encryption_config\x18\x01 \x01(\x0B2*.google.cloud.dataplex.v1.EncryptionConfigB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x01\"r\x0A\x1DDeleteEncryptionConfigRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(dataplex.googleapis.com/EncryptionConfig\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x01\"\xBD\x01\x0A\x1CListEncryptionConfigsRequest\x12@\x0A\x06parent\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x12(dataplex.googleapis.com/EncryptionConfig\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\xC7\x01\x0A\x1DListEncryptionConfigsResponse\x12F\x0A\x12encryption_configs\x18\x01 \x03(\x0B2*.google.cloud.dataplex.v1.EncryptionConfig\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12E\x0A\x15unreachable_locations\x18\x03 \x03(\x09B&\xFAA#\x0A!locations.googleapis.com/Location2\xDE\x0A\x0A\x0BCmekService\x12\xA0\x02\x0A\x16CreateEncryptionConfig\x127.google.cloud.dataplex.v1.CreateEncryptionConfigRequest\x1A\x1D.google.longrunning.Operation\"\xAD\x01\xCAA%\x0A\x10EncryptionConfig\x12\x11OperationMetadata\xDAA-parent,encryption_config,encryption_config_id\x82\xD3\xE4\x93\x02O\":/v1/{parent=organizations/*/locations/*}/encryptionConfigs:\x11encryption_config\x12\xA2\x02\x0A\x16UpdateEncryptionConfig\x127.google.cloud.dataplex.v1.UpdateEncryptionConfigRequest\x1A\x1D.google.longrunning.Operation\"\xAF\x01\xCAA%\x0A\x10EncryptionConfig\x12\x11OperationMetadata\xDAA\x1Dencryption_config,update_mask\x82\xD3\xE4\x93\x02a2L/v1/{encryption_config.name=organizations/*/locations/*/encryptionConfigs/*}:\x11encryption_config\x12\xE8\x01\x0A\x16DeleteEncryptionConfig\x127.google.cloud.dataplex.v1.DeleteEncryptionConfigRequest\x1A\x1D.google.longrunning.Operation\"v\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x02<*:/v1/{name=organizations/*/locations/*/encryptionConfigs/*}\x12\xD5\x01\x0A\x15ListEncryptionConfigs\x126.google.cloud.dataplex.v1.ListEncryptionConfigsRequest\x1A7.google.cloud.dataplex.v1.ListEncryptionConfigsResponse\"K\xDAA\x06parent\x82\xD3\xE4\x93\x02<\x12:/v1/{parent=organizations/*/locations/*}/encryptionConfigs\x12\xC2\x01\x0A\x13GetEncryptionConfig\x124.google.cloud.dataplex.v1.GetEncryptionConfigRequest\x1A*.google.cloud.dataplex.v1.EncryptionConfig\"I\xDAA\x04name\x82\xD3\xE4\x93\x02<\x12:/v1/{name=organizations/*/locations/*/encryptionConfigs/*}\x1A\x7F\xCAA\x17dataplex.googleapis.com\xD2Abhttps://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/dataplex.read-writeB\x9D\x02\x0A\x1Ccom.google.cloud.dataplex.v1B\x09CmekProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb\xAA\x02\x18Google.Cloud.Dataplex.V1\xCA\x02\x18Google\\Cloud\\Dataplex\\V1\xEA\x02\x1BGoogle::Cloud::Dataplex::V1\xEAAa\x0A,dataplex.googleapis.com/OrganizationLocation\x121organizations/{organization}/locations/{location}b\x06proto3" , true); static::$is_initialized = true; diff --git a/Dataplex/metadata/V1/DataDiscovery.php b/Dataplex/metadata/V1/DataDiscovery.php index 8fc55fa4a120..130e48189d1f 100644 --- a/Dataplex/metadata/V1/DataDiscovery.php +++ b/Dataplex/metadata/V1/DataDiscovery.php @@ -17,7 +17,7 @@ public static function initOnce() { \GPBMetadata\Google\Api\FieldBehavior::initOnce(); \GPBMetadata\Google\Api\Resource::initOnce(); $pool->internalAddGeneratedFile( - "\x0A\xA3\x10\x0A-google/cloud/dataplex/v1/data_discovery.proto\x12\x18google.cloud.dataplex.v1\x1A\x19google/api/resource.proto\"\xCB\x08\x0A\x11DataDiscoverySpec\x12m\x0A\x1Abigquery_publishing_config\x18\x01 \x01(\x0B2D.google.cloud.dataplex.v1.DataDiscoverySpec.BigQueryPublishingConfigB\x03\xE0A\x01\x12S\x0A\x0Estorage_config\x18d \x01(\x0B29.google.cloud.dataplex.v1.DataDiscoverySpec.StorageConfigH\x00\x1A\xEE\x02\x0A\x18BigQueryPublishingConfig\x12g\x0A\x0Atable_type\x18\x02 \x01(\x0E2N.google.cloud.dataplex.v1.DataDiscoverySpec.BigQueryPublishingConfig.TableTypeB\x03\xE0A\x01\x12H\x0A\x0Aconnection\x18\x03 \x01(\x09B4\xE0A\x01\xFAA.\x0A,bigqueryconnection.googleapis.com/Connection\x12\x15\x0A\x08location\x18\x04 \x01(\x09B\x03\xE0A\x01\x12D\x0A\x07project\x18\x05 \x01(\x09B3\xE0A\x01\xFAA-\x0A+cloudresourcemanager.googleapis.com/Project\"B\x0A\x09TableType\x12\x1A\x0A\x16TABLE_TYPE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08EXTERNAL\x10\x01\x12\x0B\x0A\x07BIGLAKE\x10\x02\x1A\xED\x03\x0A\x0DStorageConfig\x12\x1D\x0A\x10include_patterns\x18\x01 \x03(\x09B\x03\xE0A\x01\x12\x1D\x0A\x10exclude_patterns\x18\x02 \x03(\x09B\x03\xE0A\x01\x12^\x0A\x0Bcsv_options\x18\x03 \x01(\x0B2D.google.cloud.dataplex.v1.DataDiscoverySpec.StorageConfig.CsvOptionsB\x03\xE0A\x01\x12`\x0A\x0Cjson_options\x18\x04 \x01(\x0B2E.google.cloud.dataplex.v1.DataDiscoverySpec.StorageConfig.JsonOptionsB\x03\xE0A\x01\x1A\x8F\x01\x0A\x0ACsvOptions\x12\x18\x0A\x0Bheader_rows\x18\x01 \x01(\x05B\x03\xE0A\x01\x12\x16\x0A\x09delimiter\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08encoding\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\$\x0A\x17type_inference_disabled\x18\x04 \x01(\x08B\x03\xE0A\x01\x12\x12\x0A\x05quote\x18\x05 \x01(\x09B\x03\xE0A\x01\x1AJ\x0A\x0BJsonOptions\x12\x15\x0A\x08encoding\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\$\x0A\x17type_inference_disabled\x18\x02 \x01(\x08B\x03\xE0A\x01B\x11\x0A\x0Fresource_config\"\xB7\x04\x0A\x13DataDiscoveryResult\x12b\x0A\x13bigquery_publishing\x18\x01 \x01(\x0B2@.google.cloud.dataplex.v1.DataDiscoveryResult.BigQueryPublishingB\x03\xE0A\x03\x12Z\x0A\x0Fscan_statistics\x18\x02 \x01(\x0B2<.google.cloud.dataplex.v1.DataDiscoveryResult.ScanStatisticsB\x03\xE0A\x03\x1Ae\x0A\x12BigQueryPublishing\x128\x0A\x07dataset\x18\x01 \x01(\x09B'\xE0A\x03\xFAA!\x0A\x1Fbigquery.googleapis.com/Dataset\x12\x15\x0A\x08location\x18\x02 \x01(\x09B\x03\xE0A\x03\x1A\xF8\x01\x0A\x0EScanStatistics\x12\x1A\x0A\x12scanned_file_count\x18\x01 \x01(\x05\x12\x1C\x0A\x14data_processed_bytes\x18\x02 \x01(\x03\x12\x16\x0A\x0Efiles_excluded\x18\x03 \x01(\x05\x12\x16\x0A\x0Etables_created\x18\x04 \x01(\x05\x12\x16\x0A\x0Etables_deleted\x18\x05 \x01(\x05\x12\x16\x0A\x0Etables_updated\x18\x06 \x01(\x05\x12\x18\x0A\x10filesets_created\x18\x07 \x01(\x05\x12\x18\x0A\x10filesets_deleted\x18\x08 \x01(\x05\x12\x18\x0A\x10filesets_updated\x18\x09 \x01(\x05B\xAC\x02\x0A\x1Ccom.google.cloud.dataplex.v1B\x12DataDiscoveryProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb\xEAAH\x0A\x1Fbigquery.googleapis.com/Dataset\x12%projects/{project}/datasets/{dataset}\xEAAp\x0A,bigqueryconnection.googleapis.com/Connection\x12@projects/{project}/locations/{location}/connections/{connection}b\x06proto3" + "\x0A\xE2\x11\x0A-google/cloud/dataplex/v1/data_discovery.proto\x12\x18google.cloud.dataplex.v1\x1A\x19google/api/resource.proto\"\x8A\x0A\x0A\x11DataDiscoverySpec\x12m\x0A\x1Abigquery_publishing_config\x18\x01 \x01(\x0B2D.google.cloud.dataplex.v1.DataDiscoverySpec.BigQueryPublishingConfigB\x03\xE0A\x01\x12S\x0A\x0Estorage_config\x18d \x01(\x0B29.google.cloud.dataplex.v1.DataDiscoverySpec.StorageConfigH\x00\x1A\xEE\x02\x0A\x18BigQueryPublishingConfig\x12g\x0A\x0Atable_type\x18\x02 \x01(\x0E2N.google.cloud.dataplex.v1.DataDiscoverySpec.BigQueryPublishingConfig.TableTypeB\x03\xE0A\x01\x12H\x0A\x0Aconnection\x18\x03 \x01(\x09B4\xE0A\x01\xFAA.\x0A,bigqueryconnection.googleapis.com/Connection\x12\x15\x0A\x08location\x18\x04 \x01(\x09B\x03\xE0A\x01\x12D\x0A\x07project\x18\x05 \x01(\x09B3\xE0A\x01\xFAA-\x0A+cloudresourcemanager.googleapis.com/Project\"B\x0A\x09TableType\x12\x1A\x0A\x16TABLE_TYPE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08EXTERNAL\x10\x01\x12\x0B\x0A\x07BIGLAKE\x10\x02\x1A\xAC\x05\x0A\x0DStorageConfig\x12\x1D\x0A\x10include_patterns\x18\x01 \x03(\x09B\x03\xE0A\x01\x12\x1D\x0A\x10exclude_patterns\x18\x02 \x03(\x09B\x03\xE0A\x01\x12^\x0A\x0Bcsv_options\x18\x03 \x01(\x0B2D.google.cloud.dataplex.v1.DataDiscoverySpec.StorageConfig.CsvOptionsB\x03\xE0A\x01\x12`\x0A\x0Cjson_options\x18\x04 \x01(\x0B2E.google.cloud.dataplex.v1.DataDiscoverySpec.StorageConfig.JsonOptionsB\x03\xE0A\x01\x12y\x0A\x19unstructured_data_options\x18\x05 \x01(\x0B2Q.google.cloud.dataplex.v1.DataDiscoverySpec.StorageConfig.UnstructuredDataOptionsB\x03\xE0A\x01\x1A\x8F\x01\x0A\x0ACsvOptions\x12\x18\x0A\x0Bheader_rows\x18\x01 \x01(\x05B\x03\xE0A\x01\x12\x16\x0A\x09delimiter\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08encoding\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\$\x0A\x17type_inference_disabled\x18\x04 \x01(\x08B\x03\xE0A\x01\x12\x12\x0A\x05quote\x18\x05 \x01(\x09B\x03\xE0A\x01\x1AJ\x0A\x0BJsonOptions\x12\x15\x0A\x08encoding\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\$\x0A\x17type_inference_disabled\x18\x02 \x01(\x08B\x03\xE0A\x01\x1AB\x0A\x17UnstructuredDataOptions\x12'\x0A\x1Asemantic_inference_enabled\x18\x02 \x01(\x08B\x03\xE0A\x01B\x11\x0A\x0Fresource_config\"\xB7\x04\x0A\x13DataDiscoveryResult\x12b\x0A\x13bigquery_publishing\x18\x01 \x01(\x0B2@.google.cloud.dataplex.v1.DataDiscoveryResult.BigQueryPublishingB\x03\xE0A\x03\x12Z\x0A\x0Fscan_statistics\x18\x02 \x01(\x0B2<.google.cloud.dataplex.v1.DataDiscoveryResult.ScanStatisticsB\x03\xE0A\x03\x1Ae\x0A\x12BigQueryPublishing\x128\x0A\x07dataset\x18\x01 \x01(\x09B'\xE0A\x03\xFAA!\x0A\x1Fbigquery.googleapis.com/Dataset\x12\x15\x0A\x08location\x18\x02 \x01(\x09B\x03\xE0A\x03\x1A\xF8\x01\x0A\x0EScanStatistics\x12\x1A\x0A\x12scanned_file_count\x18\x01 \x01(\x05\x12\x1C\x0A\x14data_processed_bytes\x18\x02 \x01(\x03\x12\x16\x0A\x0Efiles_excluded\x18\x03 \x01(\x05\x12\x16\x0A\x0Etables_created\x18\x04 \x01(\x05\x12\x16\x0A\x0Etables_deleted\x18\x05 \x01(\x05\x12\x16\x0A\x0Etables_updated\x18\x06 \x01(\x05\x12\x18\x0A\x10filesets_created\x18\x07 \x01(\x05\x12\x18\x0A\x10filesets_deleted\x18\x08 \x01(\x05\x12\x18\x0A\x10filesets_updated\x18\x09 \x01(\x05B\xAC\x02\x0A\x1Ccom.google.cloud.dataplex.v1B\x12DataDiscoveryProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb\xEAAH\x0A\x1Fbigquery.googleapis.com/Dataset\x12%projects/{project}/datasets/{dataset}\xEAAp\x0A,bigqueryconnection.googleapis.com/Connection\x12@projects/{project}/locations/{location}/connections/{connection}b\x06proto3" , true); static::$is_initialized = true; diff --git a/Dataplex/metadata/V1/DataDocumentation.php b/Dataplex/metadata/V1/DataDocumentation.php index 4db1a091bb45..826eb9bc6041 100644 --- a/Dataplex/metadata/V1/DataDocumentation.php +++ b/Dataplex/metadata/V1/DataDocumentation.php @@ -15,8 +15,9 @@ public static function initOnce() { return; } \GPBMetadata\Google\Api\FieldBehavior::initOnce(); + \GPBMetadata\Google\Api\Resource::initOnce(); $pool->internalAddGeneratedFile( - "\x0A\x8A\x10\x0A1google/cloud/dataplex/v1/data_documentation.proto\x12\x18google.cloud.dataplex.v1\"\x93\x02\x0A\x15DataDocumentationSpec\x12'\x0A\x1Acatalog_publishing_enabled\x18\x02 \x01(\x08B\x03\xE0A\x01\x12_\x0A\x11generation_scopes\x18\x03 \x03(\x0E2?.google.cloud.dataplex.v1.DataDocumentationSpec.GenerationScopeB\x03\xE0A\x01\"p\x0A\x0FGenerationScope\x12 \x0A\x1CGENERATION_SCOPE_UNSPECIFIED\x10\x00\x12\x07\x0A\x03ALL\x10\x01\x12!\x0A\x1DTABLE_AND_COLUMN_DESCRIPTIONS\x10\x02\x12\x0F\x0A\x0BSQL_QUERIES\x10\x03\"\xA8\x0C\x0A\x17DataDocumentationResult\x12^\x0A\x0Edataset_result\x18\x07 \x01(\x0B2?.google.cloud.dataplex.v1.DataDocumentationResult.DatasetResultB\x03\xE0A\x03H\x00\x12Z\x0A\x0Ctable_result\x18\x08 \x01(\x0B2=.google.cloud.dataplex.v1.DataDocumentationResult.TableResultB\x03\xE0A\x03H\x00\x1A\xDE\x01\x0A\x0DDatasetResult\x12\x15\x0A\x08overview\x18\x01 \x01(\x09B\x03\xE0A\x03\x12g\x0A\x14schema_relationships\x18\x03 \x03(\x0B2D.google.cloud.dataplex.v1.DataDocumentationResult.SchemaRelationshipB\x03\xE0A\x03\x12M\x0A\x07queries\x18\x04 \x03(\x0B27.google.cloud.dataplex.v1.DataDocumentationResult.QueryB\x03\xE0A\x03\x1A\xD5\x01\x0A\x0BTableResult\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x15\x0A\x08overview\x18\x02 \x01(\x09B\x03\xE0A\x03\x12M\x0A\x06schema\x18\x03 \x01(\x0B28.google.cloud.dataplex.v1.DataDocumentationResult.SchemaB\x03\xE0A\x03\x12M\x0A\x07queries\x18\x04 \x03(\x0B27.google.cloud.dataplex.v1.DataDocumentationResult.QueryB\x03\xE0A\x03\x1A\xFB\x04\x0A\x12SchemaRelationship\x12p\x0A\x11left_schema_paths\x18\x01 \x01(\x0B2P.google.cloud.dataplex.v1.DataDocumentationResult.SchemaRelationship.SchemaPathsB\x03\xE0A\x03\x12q\x0A\x12right_schema_paths\x18\x02 \x01(\x0B2P.google.cloud.dataplex.v1.DataDocumentationResult.SchemaRelationship.SchemaPathsB\x03\xE0A\x03\x12a\x0A\x07sources\x18\x04 \x03(\x0E2K.google.cloud.dataplex.v1.DataDocumentationResult.SchemaRelationship.SourceB\x03\xE0A\x03\x12\\\x0A\x04type\x18\x06 \x01(\x0E2I.google.cloud.dataplex.v1.DataDocumentationResult.SchemaRelationship.TypeB\x03\xE0A\x03\x1A9\x0A\x0BSchemaPaths\x12\x16\x0A\x09table_fqn\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x12\x0A\x05paths\x18\x02 \x03(\x09B\x03\xE0A\x03\"U\x0A\x06Source\x12\x16\x0A\x12SOURCE_UNSPECIFIED\x10\x00\x12\x09\x0A\x05AGENT\x10\x04\x12\x11\x0A\x0DQUERY_HISTORY\x10\x05\x12\x15\x0A\x11TABLE_CONSTRAINTS\x10\x06\"-\x0A\x04Type\x12\x14\x0A\x10TYPE_UNSPECIFIED\x10\x00\x12\x0F\x0A\x0BSCHEMA_JOIN\x10\x01\x1A3\x0A\x05Query\x12\x10\x0A\x03sql\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x18\x0A\x0Bdescription\x18\x02 \x01(\x09B\x03\xE0A\x03\x1AV\x0A\x06Schema\x12L\x0A\x06fields\x18\x01 \x03(\x0B27.google.cloud.dataplex.v1.DataDocumentationResult.FieldB\x03\xE0A\x03\x1A\x82\x01\x0A\x05Field\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x18\x0A\x0Bdescription\x18\x02 \x01(\x09B\x03\xE0A\x03\x12L\x0A\x06fields\x18\x03 \x03(\x0B27.google.cloud.dataplex.v1.DataDocumentationResult.FieldB\x03\xE0A\x03B\x08\x0A\x06resultBr\x0A\x1Ccom.google.cloud.dataplex.v1B\x16DataDocumentationProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" + "\x0A\xA5\x10\x0A1google/cloud/dataplex/v1/data_documentation.proto\x12\x18google.cloud.dataplex.v1\x1A\x19google/api/resource.proto\"\x93\x02\x0A\x15DataDocumentationSpec\x12'\x0A\x1Acatalog_publishing_enabled\x18\x02 \x01(\x08B\x03\xE0A\x01\x12_\x0A\x11generation_scopes\x18\x03 \x03(\x0E2?.google.cloud.dataplex.v1.DataDocumentationSpec.GenerationScopeB\x03\xE0A\x01\"p\x0A\x0FGenerationScope\x12 \x0A\x1CGENERATION_SCOPE_UNSPECIFIED\x10\x00\x12\x07\x0A\x03ALL\x10\x01\x12!\x0A\x1DTABLE_AND_COLUMN_DESCRIPTIONS\x10\x02\x12\x0F\x0A\x0BSQL_QUERIES\x10\x03\"\xA8\x0C\x0A\x17DataDocumentationResult\x12^\x0A\x0Edataset_result\x18\x07 \x01(\x0B2?.google.cloud.dataplex.v1.DataDocumentationResult.DatasetResultB\x03\xE0A\x03H\x00\x12Z\x0A\x0Ctable_result\x18\x08 \x01(\x0B2=.google.cloud.dataplex.v1.DataDocumentationResult.TableResultB\x03\xE0A\x03H\x00\x1A\xDE\x01\x0A\x0DDatasetResult\x12\x15\x0A\x08overview\x18\x01 \x01(\x09B\x03\xE0A\x03\x12g\x0A\x14schema_relationships\x18\x03 \x03(\x0B2D.google.cloud.dataplex.v1.DataDocumentationResult.SchemaRelationshipB\x03\xE0A\x03\x12M\x0A\x07queries\x18\x04 \x03(\x0B27.google.cloud.dataplex.v1.DataDocumentationResult.QueryB\x03\xE0A\x03\x1A\xD5\x01\x0A\x0BTableResult\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x15\x0A\x08overview\x18\x02 \x01(\x09B\x03\xE0A\x03\x12M\x0A\x06schema\x18\x03 \x01(\x0B28.google.cloud.dataplex.v1.DataDocumentationResult.SchemaB\x03\xE0A\x03\x12M\x0A\x07queries\x18\x04 \x03(\x0B27.google.cloud.dataplex.v1.DataDocumentationResult.QueryB\x03\xE0A\x03\x1A\xFB\x04\x0A\x12SchemaRelationship\x12p\x0A\x11left_schema_paths\x18\x01 \x01(\x0B2P.google.cloud.dataplex.v1.DataDocumentationResult.SchemaRelationship.SchemaPathsB\x03\xE0A\x03\x12q\x0A\x12right_schema_paths\x18\x02 \x01(\x0B2P.google.cloud.dataplex.v1.DataDocumentationResult.SchemaRelationship.SchemaPathsB\x03\xE0A\x03\x12a\x0A\x07sources\x18\x04 \x03(\x0E2K.google.cloud.dataplex.v1.DataDocumentationResult.SchemaRelationship.SourceB\x03\xE0A\x03\x12\\\x0A\x04type\x18\x06 \x01(\x0E2I.google.cloud.dataplex.v1.DataDocumentationResult.SchemaRelationship.TypeB\x03\xE0A\x03\x1A9\x0A\x0BSchemaPaths\x12\x16\x0A\x09table_fqn\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x12\x0A\x05paths\x18\x02 \x03(\x09B\x03\xE0A\x03\"U\x0A\x06Source\x12\x16\x0A\x12SOURCE_UNSPECIFIED\x10\x00\x12\x09\x0A\x05AGENT\x10\x04\x12\x11\x0A\x0DQUERY_HISTORY\x10\x05\x12\x15\x0A\x11TABLE_CONSTRAINTS\x10\x06\"-\x0A\x04Type\x12\x14\x0A\x10TYPE_UNSPECIFIED\x10\x00\x12\x0F\x0A\x0BSCHEMA_JOIN\x10\x01\x1A3\x0A\x05Query\x12\x10\x0A\x03sql\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x18\x0A\x0Bdescription\x18\x02 \x01(\x09B\x03\xE0A\x03\x1AV\x0A\x06Schema\x12L\x0A\x06fields\x18\x01 \x03(\x0B27.google.cloud.dataplex.v1.DataDocumentationResult.FieldB\x03\xE0A\x03\x1A\x82\x01\x0A\x05Field\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x18\x0A\x0Bdescription\x18\x02 \x01(\x09B\x03\xE0A\x03\x12L\x0A\x06fields\x18\x03 \x03(\x0B27.google.cloud.dataplex.v1.DataDocumentationResult.FieldB\x03\xE0A\x03B\x08\x0A\x06resultBr\x0A\x1Ccom.google.cloud.dataplex.v1B\x16DataDocumentationProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" , true); static::$is_initialized = true; diff --git a/Dataplex/metadata/V1/DataProducts.php b/Dataplex/metadata/V1/DataProducts.php index 529a21f42042..2d38053965d6 100644 --- a/Dataplex/metadata/V1/DataProducts.php +++ b/Dataplex/metadata/V1/DataProducts.php @@ -19,13 +19,14 @@ public static function initOnce() { \GPBMetadata\Google\Api\FieldBehavior::initOnce(); \GPBMetadata\Google\Api\FieldInfo::initOnce(); \GPBMetadata\Google\Api\Resource::initOnce(); + \GPBMetadata\Google\Cloud\Dataplex\V1\ApprovalWorkflow::initOnce(); \GPBMetadata\Google\Cloud\Dataplex\V1\Service::initOnce(); \GPBMetadata\Google\Longrunning\Operations::initOnce(); \GPBMetadata\Google\Protobuf\GPBEmpty::initOnce(); \GPBMetadata\Google\Protobuf\FieldMask::initOnce(); \GPBMetadata\Google\Protobuf\Timestamp::initOnce(); $pool->internalAddGeneratedFile( - "\x0A\x8E1\x0A,google/cloud/dataplex/v1/data_products.proto\x12\x18google.cloud.dataplex.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x1Bgoogle/api/field_info.proto\x1A\x19google/api/resource.proto\x1A&google/cloud/dataplex/v1/service.proto\x1A#google/longrunning/operations.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"\xC7\x07\x0A\x0BDataProduct\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12\x18\x0A\x03uid\x18\x02 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x12\x19\x0A\x0Cdisplay_name\x18\x03 \x01(\x09B\x03\xE0A\x02\x124\x0A\x0Bcreate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x11\x0A\x04etag\x18\x06 \x01(\x09B\x03\xE0A\x01\x12F\x0A\x06labels\x18\x07 \x03(\x0B21.google.cloud.dataplex.v1.DataProduct.LabelsEntryB\x03\xE0A\x01\x12\x18\x0A\x0Bdescription\x18\x08 \x01(\x09B\x03\xE0A\x01\x12\x11\x0A\x04icon\x18\x0A \x01(\x0CB\x03\xE0A\x01\x12\x19\x0A\x0Cowner_emails\x18\x0B \x03(\x09B\x03\xE0A\x02\x12\x18\x0A\x0Basset_count\x18\x0D \x01(\x05B\x03\xE0A\x03\x12S\x0A\x0Daccess_groups\x18\x0E \x03(\x0B27.google.cloud.dataplex.v1.DataProduct.AccessGroupsEntryB\x03\xE0A\x01\x1A0\x0A\x09Principal\x12\x1B\x0A\x0Cgoogle_group\x18\x01 \x01(\x09B\x03\xE0A\x01H\x00B\x06\x0A\x04type\x1A\x9C\x01\x0A\x0BAccessGroup\x12\x0F\x0A\x02id\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x19\x0A\x0Cdisplay_name\x18\x02 \x01(\x09B\x03\xE0A\x02\x12\x18\x0A\x0Bdescription\x18\x03 \x01(\x09B\x03\xE0A\x01\x12G\x0A\x09principal\x18\x04 \x01(\x0B2/.google.cloud.dataplex.v1.DataProduct.PrincipalB\x03\xE0A\x02\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\x1Af\x0A\x11AccessGroupsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12@\x0A\x05value\x18\x02 \x01(\x0B21.google.cloud.dataplex.v1.DataProduct.AccessGroup:\x028\x01:\x89\x01\xEAA\x85\x01\x0A#dataplex.googleapis.com/DataProduct\x12Cprojects/{project}/locations/{location}/dataProducts/{data_product}*\x0CdataProducts2\x0BdataProduct\"\xE3\x05\x0A\x09DataAsset\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12\x18\x0A\x03uid\x18\x02 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x11\x0A\x04etag\x18\x05 \x01(\x09B\x03\xE0A\x01\x12D\x0A\x06labels\x18\x06 \x03(\x0B2/.google.cloud.dataplex.v1.DataAsset.LabelsEntryB\x03\xE0A\x01\x12\x18\x0A\x08resource\x18\x07 \x01(\x09B\x06\xE0A\x05\xE0A\x02\x12^\x0A\x14access_group_configs\x18\x09 \x03(\x0B2;.google.cloud.dataplex.v1.DataAsset.AccessGroupConfigsEntryB\x03\xE0A\x01\x1A+\x0A\x11AccessGroupConfig\x12\x16\x0A\x09iam_roles\x18\x01 \x03(\x09B\x03\xE0A\x01\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\x1Ap\x0A\x17AccessGroupConfigsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12D\x0A\x05value\x18\x02 \x01(\x0B25.google.cloud.dataplex.v1.DataAsset.AccessGroupConfig:\x028\x01:\x9B\x01\xEAA\x97\x01\x0A!dataplex.googleapis.com/DataAsset\x12[projects/{project}/locations/{location}/dataProducts/{data_product}/dataAssets/{data_asset}*\x0AdataAssets2\x09dataAsset\"\xD1\x01\x0A\x18CreateDataProductRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x1C\x0A\x0Fdata_product_id\x18\x02 \x01(\x09B\x03\xE0A\x01\x12@\x0A\x0Cdata_product\x18\x03 \x01(\x0B2%.google.cloud.dataplex.v1.DataProductB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\x84\x01\x0A\x18DeleteDataProductRequest\x129\x0A\x04name\x18\x01 \x01(\x09B+\xE0A\x02\xFAA%\x0A#dataplex.googleapis.com/DataProduct\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"R\x0A\x15GetDataProductRequest\x129\x0A\x04name\x18\x01 \x01(\x09B+\xE0A\x02\xFAA%\x0A#dataplex.googleapis.com/DataProduct\"\xB1\x01\x0A\x17ListDataProductsRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x13\x0A\x06filter\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x16\x0A\x09page_size\x18\x03 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x8B\x01\x0A\x18ListDataProductsResponse\x12<\x0A\x0Ddata_products\x18\x01 \x03(\x0B2%.google.cloud.dataplex.v1.DataProduct\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x18\x0A\x0Bunreachable\x18\x03 \x03(\x09B\x03\xE0A\x06\"\xAE\x01\x0A\x18UpdateDataProductRequest\x12@\x0A\x0Cdata_product\x18\x01 \x01(\x0B2%.google.cloud.dataplex.v1.DataProductB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x01\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"\xCB\x01\x0A\x16CreateDataAssetRequest\x12;\x0A\x06parent\x18\x01 \x01(\x09B+\xE0A\x02\xFAA%\x0A#dataplex.googleapis.com/DataProduct\x12\x1A\x0A\x0Ddata_asset_id\x18\x02 \x01(\x09B\x03\xE0A\x01\x12<\x0A\x0Adata_asset\x18\x03 \x01(\x0B2#.google.cloud.dataplex.v1.DataAssetB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\xA8\x01\x0A\x16UpdateDataAssetRequest\x12<\x0A\x0Adata_asset\x18\x01 \x01(\x0B2#.google.cloud.dataplex.v1.DataAssetB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x01\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"\x80\x01\x0A\x16DeleteDataAssetRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!dataplex.googleapis.com/DataAsset\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"N\x0A\x13GetDataAssetRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!dataplex.googleapis.com/DataAsset\"\xB1\x01\x0A\x15ListDataAssetsRequest\x12;\x0A\x06parent\x18\x01 \x01(\x09B+\xE0A\x02\xFAA%\x0A#dataplex.googleapis.com/DataProduct\x12\x13\x0A\x06filter\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x16\x0A\x09page_size\x18\x04 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x05 \x01(\x09B\x03\xE0A\x01\"k\x0A\x16ListDataAssetsResponse\x128\x0A\x0Bdata_assets\x18\x01 \x03(\x0B2#.google.cloud.dataplex.v1.DataAsset\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x092\xEE\x11\x0A\x12DataProductService\x12\xF8\x01\x0A\x11CreateDataProduct\x122.google.cloud.dataplex.v1.CreateDataProductRequest\x1A\x1D.google.longrunning.Operation\"\x8F\x01\xCAA \x0A\x0BDataProduct\x12\x11OperationMetadata\xDAA#parent,data_product,data_product_id\x82\xD3\xE4\x93\x02@\"0/v1/{parent=projects/*/locations/*}/dataProducts:\x0Cdata_product\x12\xD4\x01\x0A\x11DeleteDataProduct\x122.google.cloud.dataplex.v1.DeleteDataProductRequest\x1A\x1D.google.longrunning.Operation\"l\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x022*0/v1/{name=projects/*/locations/*/dataProducts/*}\x12\xA9\x01\x0A\x0EGetDataProduct\x12/.google.cloud.dataplex.v1.GetDataProductRequest\x1A%.google.cloud.dataplex.v1.DataProduct\"?\xDAA\x04name\x82\xD3\xE4\x93\x022\x120/v1/{name=projects/*/locations/*/dataProducts/*}\x12\xBC\x01\x0A\x10ListDataProducts\x121.google.cloud.dataplex.v1.ListDataProductsRequest\x1A2.google.cloud.dataplex.v1.ListDataProductsResponse\"A\xDAA\x06parent\x82\xD3\xE4\x93\x022\x120/v1/{parent=projects/*/locations/*}/dataProducts\x12\xFA\x01\x0A\x11UpdateDataProduct\x122.google.cloud.dataplex.v1.UpdateDataProductRequest\x1A\x1D.google.longrunning.Operation\"\x91\x01\xCAA \x0A\x0BDataProduct\x12\x11OperationMetadata\xDAA\x18data_product,update_mask\x82\xD3\xE4\x93\x02M2=/v1/{data_product.name=projects/*/locations/*/dataProducts/*}:\x0Cdata_product\x12\xF9\x01\x0A\x0FCreateDataAsset\x120.google.cloud.dataplex.v1.CreateDataAssetRequest\x1A\x1D.google.longrunning.Operation\"\x94\x01\xCAA\x1E\x0A\x09DataAsset\x12\x11OperationMetadata\xDAA\x1Fparent,data_asset,data_asset_id\x82\xD3\xE4\x93\x02K\"=/v1/{parent=projects/*/locations/*/dataProducts/*}/dataAssets:\x0Adata_asset\x12\xFB\x01\x0A\x0FUpdateDataAsset\x120.google.cloud.dataplex.v1.UpdateDataAssetRequest\x1A\x1D.google.longrunning.Operation\"\x96\x01\xCAA\x1E\x0A\x09DataAsset\x12\x11OperationMetadata\xDAA\x16data_asset,update_mask\x82\xD3\xE4\x93\x02V2H/v1/{data_asset.name=projects/*/locations/*/dataProducts/*/dataAssets/*}:\x0Adata_asset\x12\xDD\x01\x0A\x0FDeleteDataAsset\x120.google.cloud.dataplex.v1.DeleteDataAssetRequest\x1A\x1D.google.longrunning.Operation\"y\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x02?*=/v1/{name=projects/*/locations/*/dataProducts/*/dataAssets/*}\x12\xB0\x01\x0A\x0CGetDataAsset\x12-.google.cloud.dataplex.v1.GetDataAssetRequest\x1A#.google.cloud.dataplex.v1.DataAsset\"L\xDAA\x04name\x82\xD3\xE4\x93\x02?\x12=/v1/{name=projects/*/locations/*/dataProducts/*/dataAssets/*}\x12\xC3\x01\x0A\x0EListDataAssets\x12/.google.cloud.dataplex.v1.ListDataAssetsRequest\x1A0.google.cloud.dataplex.v1.ListDataAssetsResponse\"N\xDAA\x06parent\x82\xD3\xE4\x93\x02?\x12=/v1/{parent=projects/*/locations/*/dataProducts/*}/dataAssets\x1AK\xCAA\x17dataplex.googleapis.com\xD2A.https://www.googleapis.com/auth/cloud-platformBm\x0A\x1Ccom.google.cloud.dataplex.v1B\x11DataProductsProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" + "\x0A\xF88\x0A,google/cloud/dataplex/v1/data_products.proto\x12\x18google.cloud.dataplex.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x1Bgoogle/api/field_info.proto\x1A\x19google/api/resource.proto\x1A0google/cloud/dataplex/v1/approval_workflow.proto\x1A&google/cloud/dataplex/v1/service.proto\x1A#google/longrunning/operations.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"\xB5\x09\x0A\x0BDataProduct\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12\x18\x0A\x03uid\x18\x02 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x12\x19\x0A\x0Cdisplay_name\x18\x03 \x01(\x09B\x03\xE0A\x02\x124\x0A\x0Bcreate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x11\x0A\x04etag\x18\x06 \x01(\x09B\x03\xE0A\x01\x12F\x0A\x06labels\x18\x07 \x03(\x0B21.google.cloud.dataplex.v1.DataProduct.LabelsEntryB\x03\xE0A\x01\x12\x18\x0A\x0Bdescription\x18\x08 \x01(\x09B\x03\xE0A\x01\x12\x11\x0A\x04icon\x18\x0A \x01(\x0CB\x03\xE0A\x01\x12\x19\x0A\x0Cowner_emails\x18\x0B \x03(\x09B\x03\xE0A\x02\x12\x18\x0A\x0Basset_count\x18\x0D \x01(\x05B\x03\xE0A\x03\x12S\x0A\x0Daccess_groups\x18\x0E \x03(\x0B27.google.cloud.dataplex.v1.DataProduct.AccessGroupsEntryB\x03\xE0A\x01\x12d\x0A\x16access_approval_config\x18\x0F \x01(\x0B2:.google.cloud.dataplex.v1.DataProduct.AccessApprovalConfigB\x03\xE0A\x01H\x00\x88\x01\x01\x1Ag\x0A\x09Principal\x12\x1B\x0A\x0Cgoogle_group\x18\x01 \x01(\x09B\x03\xE0A\x01H\x00\x12!\x0A\x0Fservice_account\x18\x02 \x01(\x09B\x03\xE0A\x01H\x01\x88\x01\x01B\x06\x0A\x04typeB\x12\x0A\x10_service_account\x1A\x9C\x01\x0A\x0BAccessGroup\x12\x0F\x0A\x02id\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x19\x0A\x0Cdisplay_name\x18\x02 \x01(\x09B\x03\xE0A\x02\x12\x18\x0A\x0Bdescription\x18\x03 \x01(\x09B\x03\xE0A\x01\x12G\x0A\x09principal\x18\x04 \x01(\x0B2/.google.cloud.dataplex.v1.DataProduct.PrincipalB\x03\xE0A\x02\x1A4\x0A\x14AccessApprovalConfig\x12\x1C\x0A\x0Fapprover_emails\x18\x02 \x03(\x09B\x03\xE0A\x01\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\x1Af\x0A\x11AccessGroupsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12@\x0A\x05value\x18\x02 \x01(\x0B21.google.cloud.dataplex.v1.DataProduct.AccessGroup:\x028\x01:\x89\x01\xEAA\x85\x01\x0A#dataplex.googleapis.com/DataProduct\x12Cprojects/{project}/locations/{location}/dataProducts/{data_product}*\x0CdataProducts2\x0BdataProductB\x19\x0A\x17_access_approval_config\"\xE3\x05\x0A\x09DataAsset\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12\x18\x0A\x03uid\x18\x02 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x11\x0A\x04etag\x18\x05 \x01(\x09B\x03\xE0A\x01\x12D\x0A\x06labels\x18\x06 \x03(\x0B2/.google.cloud.dataplex.v1.DataAsset.LabelsEntryB\x03\xE0A\x01\x12\x18\x0A\x08resource\x18\x07 \x01(\x09B\x06\xE0A\x05\xE0A\x02\x12^\x0A\x14access_group_configs\x18\x09 \x03(\x0B2;.google.cloud.dataplex.v1.DataAsset.AccessGroupConfigsEntryB\x03\xE0A\x01\x1A+\x0A\x11AccessGroupConfig\x12\x16\x0A\x09iam_roles\x18\x01 \x03(\x09B\x03\xE0A\x01\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\x1Ap\x0A\x17AccessGroupConfigsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12D\x0A\x05value\x18\x02 \x01(\x0B25.google.cloud.dataplex.v1.DataAsset.AccessGroupConfig:\x028\x01:\x9B\x01\xEAA\x97\x01\x0A!dataplex.googleapis.com/DataAsset\x12[projects/{project}/locations/{location}/dataProducts/{data_product}/dataAssets/{data_asset}*\x0AdataAssets2\x09dataAsset\"\xD1\x01\x0A\x18CreateDataProductRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x1C\x0A\x0Fdata_product_id\x18\x02 \x01(\x09B\x03\xE0A\x01\x12@\x0A\x0Cdata_product\x18\x03 \x01(\x0B2%.google.cloud.dataplex.v1.DataProductB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\x84\x01\x0A\x18DeleteDataProductRequest\x129\x0A\x04name\x18\x01 \x01(\x09B+\xE0A\x02\xFAA%\x0A#dataplex.googleapis.com/DataProduct\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"R\x0A\x15GetDataProductRequest\x129\x0A\x04name\x18\x01 \x01(\x09B+\xE0A\x02\xFAA%\x0A#dataplex.googleapis.com/DataProduct\"\xB1\x01\x0A\x17ListDataProductsRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x13\x0A\x06filter\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x16\x0A\x09page_size\x18\x03 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x8B\x01\x0A\x18ListDataProductsResponse\x12<\x0A\x0Ddata_products\x18\x01 \x03(\x0B2%.google.cloud.dataplex.v1.DataProduct\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x18\x0A\x0Bunreachable\x18\x03 \x03(\x09B\x03\xE0A\x06\"\xAE\x01\x0A\x18UpdateDataProductRequest\x12@\x0A\x0Cdata_product\x18\x01 \x01(\x0B2%.google.cloud.dataplex.v1.DataProductB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x01\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"\xC0\x01\x0A\x1FRequestDataProductAccessRequest\x12;\x0A\x06parent\x18\x01 \x01(\x09B+\xE0A\x02\xFAA%\x0A#dataplex.googleapis.com/DataProduct\x12D\x0A\x0Echange_request\x18\x02 \x01(\x0B2'.google.cloud.dataplex.v1.ChangeRequestB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"k\x0A RequestDataProductAccessResponse\x12G\x0A\x13change_request_name\x18\x01 \x01(\x09B*\xFAA'\x0A%dataplex.googleapis.com/ChangeRequest\"\xCB\x01\x0A\x16CreateDataAssetRequest\x12;\x0A\x06parent\x18\x01 \x01(\x09B+\xE0A\x02\xFAA%\x0A#dataplex.googleapis.com/DataProduct\x12\x1A\x0A\x0Ddata_asset_id\x18\x02 \x01(\x09B\x03\xE0A\x01\x12<\x0A\x0Adata_asset\x18\x03 \x01(\x0B2#.google.cloud.dataplex.v1.DataAssetB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\xA8\x01\x0A\x16UpdateDataAssetRequest\x12<\x0A\x0Adata_asset\x18\x01 \x01(\x0B2#.google.cloud.dataplex.v1.DataAssetB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x01\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"\x80\x01\x0A\x16DeleteDataAssetRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!dataplex.googleapis.com/DataAsset\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"N\x0A\x13GetDataAssetRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!dataplex.googleapis.com/DataAsset\"\xB1\x01\x0A\x15ListDataAssetsRequest\x12;\x0A\x06parent\x18\x01 \x01(\x09B+\xE0A\x02\xFAA%\x0A#dataplex.googleapis.com/DataProduct\x12\x13\x0A\x06filter\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x16\x0A\x09page_size\x18\x04 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x05 \x01(\x09B\x03\xE0A\x01\"k\x0A\x16ListDataAssetsResponse\x128\x0A\x0Bdata_assets\x18\x01 \x03(\x0B2#.google.cloud.dataplex.v1.DataAsset\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x092\x88\x15\x0A\x12DataProductService\x12\xF8\x01\x0A\x11CreateDataProduct\x122.google.cloud.dataplex.v1.CreateDataProductRequest\x1A\x1D.google.longrunning.Operation\"\x8F\x01\xCAA \x0A\x0BDataProduct\x12\x11OperationMetadata\xDAA#parent,data_product,data_product_id\x82\xD3\xE4\x93\x02@\"0/v1/{parent=projects/*/locations/*}/dataProducts:\x0Cdata_product\x12\xD4\x01\x0A\x11DeleteDataProduct\x122.google.cloud.dataplex.v1.DeleteDataProductRequest\x1A\x1D.google.longrunning.Operation\"l\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x022*0/v1/{name=projects/*/locations/*/dataProducts/*}\x12\xA9\x01\x0A\x0EGetDataProduct\x12/.google.cloud.dataplex.v1.GetDataProductRequest\x1A%.google.cloud.dataplex.v1.DataProduct\"?\xDAA\x04name\x82\xD3\xE4\x93\x022\x120/v1/{name=projects/*/locations/*/dataProducts/*}\x12\xBC\x01\x0A\x10ListDataProducts\x121.google.cloud.dataplex.v1.ListDataProductsRequest\x1A2.google.cloud.dataplex.v1.ListDataProductsResponse\"A\xDAA\x06parent\x82\xD3\xE4\x93\x022\x120/v1/{parent=projects/*/locations/*}/dataProducts\x12\xFA\x01\x0A\x11UpdateDataProduct\x122.google.cloud.dataplex.v1.UpdateDataProductRequest\x1A\x1D.google.longrunning.Operation\"\x91\x01\xCAA \x0A\x0BDataProduct\x12\x11OperationMetadata\xDAA\x18data_product,update_mask\x82\xD3\xE4\x93\x02M2=/v1/{data_product.name=projects/*/locations/*/dataProducts/*}:\x0Cdata_product\x12\xF6\x01\x0A\x18RequestDataProductAccess\x129.google.cloud.dataplex.v1.RequestDataProductAccessRequest\x1A:.google.cloud.dataplex.v1.RequestDataProductAccessResponse\"c\xDAA\x15parent,change_request\x82\xD3\xE4\x93\x02E\"@/v1/{parent=projects/*/locations/*/dataProducts/*}:requestAccess:\x01*\x12\xF9\x01\x0A\x0FCreateDataAsset\x120.google.cloud.dataplex.v1.CreateDataAssetRequest\x1A\x1D.google.longrunning.Operation\"\x94\x01\xCAA\x1E\x0A\x09DataAsset\x12\x11OperationMetadata\xDAA\x1Fparent,data_asset,data_asset_id\x82\xD3\xE4\x93\x02K\"=/v1/{parent=projects/*/locations/*/dataProducts/*}/dataAssets:\x0Adata_asset\x12\xFB\x01\x0A\x0FUpdateDataAsset\x120.google.cloud.dataplex.v1.UpdateDataAssetRequest\x1A\x1D.google.longrunning.Operation\"\x96\x01\xCAA\x1E\x0A\x09DataAsset\x12\x11OperationMetadata\xDAA\x16data_asset,update_mask\x82\xD3\xE4\x93\x02V2H/v1/{data_asset.name=projects/*/locations/*/dataProducts/*/dataAssets/*}:\x0Adata_asset\x12\xDD\x01\x0A\x0FDeleteDataAsset\x120.google.cloud.dataplex.v1.DeleteDataAssetRequest\x1A\x1D.google.longrunning.Operation\"y\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x02?*=/v1/{name=projects/*/locations/*/dataProducts/*/dataAssets/*}\x12\xB0\x01\x0A\x0CGetDataAsset\x12-.google.cloud.dataplex.v1.GetDataAssetRequest\x1A#.google.cloud.dataplex.v1.DataAsset\"L\xDAA\x04name\x82\xD3\xE4\x93\x02?\x12=/v1/{name=projects/*/locations/*/dataProducts/*/dataAssets/*}\x12\xC3\x01\x0A\x0EListDataAssets\x12/.google.cloud.dataplex.v1.ListDataAssetsRequest\x1A0.google.cloud.dataplex.v1.ListDataAssetsResponse\"N\xDAA\x06parent\x82\xD3\xE4\x93\x02?\x12=/v1/{parent=projects/*/locations/*/dataProducts/*}/dataAssets\x1A\xEB\x01\xCAA\x17dataplex.googleapis.com\xD2A\xCD\x01https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloud-platform.read-only,https://www.googleapis.com/auth/dataplex.read-write,https://www.googleapis.com/auth/dataplex.readonlyBm\x0A\x1Ccom.google.cloud.dataplex.v1B\x11DataProductsProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" , true); static::$is_initialized = true; diff --git a/Dataplex/metadata/V1/DataProfile.php b/Dataplex/metadata/V1/DataProfile.php index 50ee1c828ebe..94a3f94d3c62 100644 --- a/Dataplex/metadata/V1/DataProfile.php +++ b/Dataplex/metadata/V1/DataProfile.php @@ -18,7 +18,7 @@ public static function initOnce() { \GPBMetadata\Google\Cloud\Dataplex\V1\DatascansCommon::initOnce(); \GPBMetadata\Google\Cloud\Dataplex\V1\Processing::initOnce(); $pool->internalAddGeneratedFile( - "\x0A\xC0\x16\x0A+google/cloud/dataplex/v1/data_profile.proto\x12\x18google.cloud.dataplex.v1\x1A/google/cloud/dataplex/v1/datascans_common.proto\x1A)google/cloud/dataplex/v1/processing.proto\"\xD1\x04\x0A\x0FDataProfileSpec\x12\x1D\x0A\x10sampling_percent\x18\x02 \x01(\x02B\x03\xE0A\x01\x12\x17\x0A\x0Arow_filter\x18\x03 \x01(\x09B\x03\xE0A\x01\x12Y\x0A\x11post_scan_actions\x18\x04 \x01(\x0B29.google.cloud.dataplex.v1.DataProfileSpec.PostScanActionsB\x03\xE0A\x01\x12U\x0A\x0Einclude_fields\x18\x05 \x01(\x0B28.google.cloud.dataplex.v1.DataProfileSpec.SelectedFieldsB\x03\xE0A\x01\x12U\x0A\x0Eexclude_fields\x18\x06 \x01(\x0B28.google.cloud.dataplex.v1.DataProfileSpec.SelectedFieldsB\x03\xE0A\x01\x12'\x0A\x1Acatalog_publishing_enabled\x18\x08 \x01(\x08B\x03\xE0A\x01\x1A\xA7\x01\x0A\x0FPostScanActions\x12f\x0A\x0Fbigquery_export\x18\x01 \x01(\x0B2H.google.cloud.dataplex.v1.DataProfileSpec.PostScanActions.BigQueryExportB\x03\xE0A\x01\x1A,\x0A\x0EBigQueryExport\x12\x1A\x0A\x0Dresults_table\x18\x01 \x01(\x09B\x03\xE0A\x01\x1A*\x0A\x0ESelectedFields\x12\x18\x0A\x0Bfield_names\x18\x01 \x03(\x09B\x03\xE0A\x01\"\xD0\x0F\x0A\x11DataProfileResult\x12\x16\x0A\x09row_count\x18\x03 \x01(\x03B\x03\xE0A\x03\x12I\x0A\x07profile\x18\x04 \x01(\x0B23.google.cloud.dataplex.v1.DataProfileResult.ProfileB\x03\xE0A\x03\x12@\x0A\x0Cscanned_data\x18\x05 \x01(\x0B2%.google.cloud.dataplex.v1.ScannedDataB\x03\xE0A\x03\x12h\x0A\x18post_scan_actions_result\x18\x06 \x01(\x0B2A.google.cloud.dataplex.v1.DataProfileResult.PostScanActionsResultB\x03\xE0A\x03\x12a\x0A\x19catalog_publishing_status\x18\x07 \x01(\x0B29.google.cloud.dataplex.v1.DataScanCatalogPublishingStatusB\x03\xE0A\x03\x1A\xC8\x09\x0A\x07Profile\x12N\x0A\x06fields\x18\x02 \x03(\x0B29.google.cloud.dataplex.v1.DataProfileResult.Profile.FieldB\x03\xE0A\x03\x1A\xEC\x08\x0A\x05Field\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x11\x0A\x04type\x18\x02 \x01(\x09B\x03\xE0A\x03\x12\x11\x0A\x04mode\x18\x03 \x01(\x09B\x03\xE0A\x03\x12[\x0A\x07profile\x18\x04 \x01(\x0B2E.google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfoB\x03\xE0A\x03\x1A\xCC\x07\x0A\x0BProfileInfo\x12\x17\x0A\x0Anull_ratio\x18\x02 \x01(\x01B\x03\xE0A\x03\x12\x1B\x0A\x0Edistinct_ratio\x18\x03 \x01(\x01B\x03\xE0A\x03\x12j\x0A\x0Ctop_n_values\x18\x04 \x03(\x0B2O.google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.TopNValueB\x03\xE0A\x03\x12o\x0A\x0Estring_profile\x18e \x01(\x0B2U.google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.StringFieldInfoH\x00\x12q\x0A\x0Finteger_profile\x18f \x01(\x0B2V.google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.IntegerFieldInfoH\x00\x12o\x0A\x0Edouble_profile\x18g \x01(\x0B2U.google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.DoubleFieldInfoH\x00\x1A`\x0A\x0FStringFieldInfo\x12\x17\x0A\x0Amin_length\x18\x01 \x01(\x03B\x03\xE0A\x03\x12\x17\x0A\x0Amax_length\x18\x02 \x01(\x03B\x03\xE0A\x03\x12\x1B\x0A\x0Eaverage_length\x18\x03 \x01(\x01B\x03\xE0A\x03\x1A\x85\x01\x0A\x10IntegerFieldInfo\x12\x14\x0A\x07average\x18\x01 \x01(\x01B\x03\xE0A\x03\x12\x1F\x0A\x12standard_deviation\x18\x03 \x01(\x01B\x03\xE0A\x03\x12\x10\x0A\x03min\x18\x04 \x01(\x03B\x03\xE0A\x03\x12\x16\x0A\x09quartiles\x18\x06 \x03(\x03B\x03\xE0A\x03\x12\x10\x0A\x03max\x18\x05 \x01(\x03B\x03\xE0A\x03\x1A\x84\x01\x0A\x0FDoubleFieldInfo\x12\x14\x0A\x07average\x18\x01 \x01(\x01B\x03\xE0A\x03\x12\x1F\x0A\x12standard_deviation\x18\x03 \x01(\x01B\x03\xE0A\x03\x12\x10\x0A\x03min\x18\x04 \x01(\x01B\x03\xE0A\x03\x12\x16\x0A\x09quartiles\x18\x06 \x03(\x01B\x03\xE0A\x03\x12\x10\x0A\x03max\x18\x05 \x01(\x01B\x03\xE0A\x03\x1AG\x0A\x09TopNValue\x12\x12\x0A\x05value\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x12\x0A\x05count\x18\x02 \x01(\x03B\x03\xE0A\x03\x12\x12\x0A\x05ratio\x18\x03 \x01(\x01B\x03\xE0A\x03B\x0C\x0A\x0Afield_info\x1A\xFD\x02\x0A\x15PostScanActionsResult\x12{\x0A\x16bigquery_export_result\x18\x01 \x01(\x0B2V.google.cloud.dataplex.v1.DataProfileResult.PostScanActionsResult.BigQueryExportResultB\x03\xE0A\x03\x1A\xE6\x01\x0A\x14BigQueryExportResult\x12p\x0A\x05state\x18\x01 \x01(\x0E2\\.google.cloud.dataplex.v1.DataProfileResult.PostScanActionsResult.BigQueryExportResult.StateB\x03\xE0A\x03\x12\x14\x0A\x07message\x18\x02 \x01(\x09B\x03\xE0A\x03\"F\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09SUCCEEDED\x10\x01\x12\x0A\x0A\x06FAILED\x10\x02\x12\x0B\x0A\x07SKIPPED\x10\x03Bl\x0A\x1Ccom.google.cloud.dataplex.v1B\x10DataProfileProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" + "\x0A\xC0\x17\x0A+google/cloud/dataplex/v1/data_profile.proto\x12\x18google.cloud.dataplex.v1\x1A/google/cloud/dataplex/v1/datascans_common.proto\x1A)google/cloud/dataplex/v1/processing.proto\"\xD1\x05\x0A\x0FDataProfileSpec\x12\x1D\x0A\x10sampling_percent\x18\x02 \x01(\x02B\x03\xE0A\x01\x12\x17\x0A\x0Arow_filter\x18\x03 \x01(\x09B\x03\xE0A\x01\x12Y\x0A\x11post_scan_actions\x18\x04 \x01(\x0B29.google.cloud.dataplex.v1.DataProfileSpec.PostScanActionsB\x03\xE0A\x01\x12U\x0A\x0Einclude_fields\x18\x05 \x01(\x0B28.google.cloud.dataplex.v1.DataProfileSpec.SelectedFieldsB\x03\xE0A\x01\x12U\x0A\x0Eexclude_fields\x18\x06 \x01(\x0B28.google.cloud.dataplex.v1.DataProfileSpec.SelectedFieldsB\x03\xE0A\x01\x12'\x0A\x1Acatalog_publishing_enabled\x18\x08 \x01(\x08B\x03\xE0A\x01\x12A\x0A\x04mode\x18\x09 \x01(\x0E2..google.cloud.dataplex.v1.DataProfileSpec.ModeB\x03\xE0A\x01\x1A\xA7\x01\x0A\x0FPostScanActions\x12f\x0A\x0Fbigquery_export\x18\x01 \x01(\x0B2H.google.cloud.dataplex.v1.DataProfileSpec.PostScanActions.BigQueryExportB\x03\xE0A\x01\x1A,\x0A\x0EBigQueryExport\x12\x1A\x0A\x0Dresults_table\x18\x01 \x01(\x09B\x03\xE0A\x01\x1A*\x0A\x0ESelectedFields\x12\x18\x0A\x0Bfield_names\x18\x01 \x03(\x09B\x03\xE0A\x01\";\x0A\x04Mode\x12\x14\x0A\x10MODE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08STANDARD\x10\x01\x12\x0F\x0A\x0BLIGHTWEIGHT\x10\x02\"\xD0\x0F\x0A\x11DataProfileResult\x12\x16\x0A\x09row_count\x18\x03 \x01(\x03B\x03\xE0A\x03\x12I\x0A\x07profile\x18\x04 \x01(\x0B23.google.cloud.dataplex.v1.DataProfileResult.ProfileB\x03\xE0A\x03\x12@\x0A\x0Cscanned_data\x18\x05 \x01(\x0B2%.google.cloud.dataplex.v1.ScannedDataB\x03\xE0A\x03\x12h\x0A\x18post_scan_actions_result\x18\x06 \x01(\x0B2A.google.cloud.dataplex.v1.DataProfileResult.PostScanActionsResultB\x03\xE0A\x03\x12a\x0A\x19catalog_publishing_status\x18\x07 \x01(\x0B29.google.cloud.dataplex.v1.DataScanCatalogPublishingStatusB\x03\xE0A\x03\x1A\xC8\x09\x0A\x07Profile\x12N\x0A\x06fields\x18\x02 \x03(\x0B29.google.cloud.dataplex.v1.DataProfileResult.Profile.FieldB\x03\xE0A\x03\x1A\xEC\x08\x0A\x05Field\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x11\x0A\x04type\x18\x02 \x01(\x09B\x03\xE0A\x03\x12\x11\x0A\x04mode\x18\x03 \x01(\x09B\x03\xE0A\x03\x12[\x0A\x07profile\x18\x04 \x01(\x0B2E.google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfoB\x03\xE0A\x03\x1A\xCC\x07\x0A\x0BProfileInfo\x12\x17\x0A\x0Anull_ratio\x18\x02 \x01(\x01B\x03\xE0A\x03\x12\x1B\x0A\x0Edistinct_ratio\x18\x03 \x01(\x01B\x03\xE0A\x03\x12j\x0A\x0Ctop_n_values\x18\x04 \x03(\x0B2O.google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.TopNValueB\x03\xE0A\x03\x12o\x0A\x0Estring_profile\x18e \x01(\x0B2U.google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.StringFieldInfoH\x00\x12q\x0A\x0Finteger_profile\x18f \x01(\x0B2V.google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.IntegerFieldInfoH\x00\x12o\x0A\x0Edouble_profile\x18g \x01(\x0B2U.google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.DoubleFieldInfoH\x00\x1A`\x0A\x0FStringFieldInfo\x12\x17\x0A\x0Amin_length\x18\x01 \x01(\x03B\x03\xE0A\x03\x12\x17\x0A\x0Amax_length\x18\x02 \x01(\x03B\x03\xE0A\x03\x12\x1B\x0A\x0Eaverage_length\x18\x03 \x01(\x01B\x03\xE0A\x03\x1A\x85\x01\x0A\x10IntegerFieldInfo\x12\x14\x0A\x07average\x18\x01 \x01(\x01B\x03\xE0A\x03\x12\x1F\x0A\x12standard_deviation\x18\x03 \x01(\x01B\x03\xE0A\x03\x12\x10\x0A\x03min\x18\x04 \x01(\x03B\x03\xE0A\x03\x12\x16\x0A\x09quartiles\x18\x06 \x03(\x03B\x03\xE0A\x03\x12\x10\x0A\x03max\x18\x05 \x01(\x03B\x03\xE0A\x03\x1A\x84\x01\x0A\x0FDoubleFieldInfo\x12\x14\x0A\x07average\x18\x01 \x01(\x01B\x03\xE0A\x03\x12\x1F\x0A\x12standard_deviation\x18\x03 \x01(\x01B\x03\xE0A\x03\x12\x10\x0A\x03min\x18\x04 \x01(\x01B\x03\xE0A\x03\x12\x16\x0A\x09quartiles\x18\x06 \x03(\x01B\x03\xE0A\x03\x12\x10\x0A\x03max\x18\x05 \x01(\x01B\x03\xE0A\x03\x1AG\x0A\x09TopNValue\x12\x12\x0A\x05value\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x12\x0A\x05count\x18\x02 \x01(\x03B\x03\xE0A\x03\x12\x12\x0A\x05ratio\x18\x03 \x01(\x01B\x03\xE0A\x03B\x0C\x0A\x0Afield_info\x1A\xFD\x02\x0A\x15PostScanActionsResult\x12{\x0A\x16bigquery_export_result\x18\x01 \x01(\x0B2V.google.cloud.dataplex.v1.DataProfileResult.PostScanActionsResult.BigQueryExportResultB\x03\xE0A\x03\x1A\xE6\x01\x0A\x14BigQueryExportResult\x12p\x0A\x05state\x18\x01 \x01(\x0E2\\.google.cloud.dataplex.v1.DataProfileResult.PostScanActionsResult.BigQueryExportResult.StateB\x03\xE0A\x03\x12\x14\x0A\x07message\x18\x02 \x01(\x09B\x03\xE0A\x03\"F\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09SUCCEEDED\x10\x01\x12\x0A\x0A\x06FAILED\x10\x02\x12\x0B\x0A\x07SKIPPED\x10\x03Bl\x0A\x1Ccom.google.cloud.dataplex.v1B\x10DataProfileProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" , true); static::$is_initialized = true; diff --git a/Dataplex/metadata/V1/DataQuality.php b/Dataplex/metadata/V1/DataQuality.php index 45d1b7ba6983..016668568d3c 100644 --- a/Dataplex/metadata/V1/DataQuality.php +++ b/Dataplex/metadata/V1/DataQuality.php @@ -16,10 +16,11 @@ public static function initOnce() { } \GPBMetadata\Google\Api\FieldBehavior::initOnce(); \GPBMetadata\Google\Api\Resource::initOnce(); + \GPBMetadata\Google\Cloud\Dataplex\V1\DataQualityRuleTemplate::initOnce(); \GPBMetadata\Google\Cloud\Dataplex\V1\DatascansCommon::initOnce(); \GPBMetadata\Google\Cloud\Dataplex\V1\Processing::initOnce(); $pool->internalAddGeneratedFile( - "\x0A\xE0,\x0A+google/cloud/dataplex/v1/data_quality.proto\x12\x18google.cloud.dataplex.v1\x1A\x19google/api/resource.proto\x1A/google/cloud/dataplex/v1/datascans_common.proto\x1A)google/cloud/dataplex/v1/processing.proto\"\xE9\x08\x0A\x0FDataQualitySpec\x12=\x0A\x05rules\x18\x01 \x03(\x0B2).google.cloud.dataplex.v1.DataQualityRuleB\x03\xE0A\x02\x12\x1D\x0A\x10sampling_percent\x18\x04 \x01(\x02B\x03\xE0A\x01\x12\x17\x0A\x0Arow_filter\x18\x05 \x01(\x09B\x03\xE0A\x01\x12Y\x0A\x11post_scan_actions\x18\x06 \x01(\x0B29.google.cloud.dataplex.v1.DataQualitySpec.PostScanActionsB\x03\xE0A\x01\x12'\x0A\x1Acatalog_publishing_enabled\x18\x08 \x01(\x08B\x03\xE0A\x01\x1A\xDA\x06\x0A\x0FPostScanActions\x12f\x0A\x0Fbigquery_export\x18\x01 \x01(\x0B2H.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.BigQueryExportB\x03\xE0A\x01\x12n\x0A\x13notification_report\x18\x02 \x01(\x0B2L.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.NotificationReportB\x03\xE0A\x01\x1A,\x0A\x0EBigQueryExport\x12\x1A\x0A\x0Dresults_table\x18\x01 \x01(\x09B\x03\xE0A\x01\x1A!\x0A\x0ARecipients\x12\x13\x0A\x06emails\x18\x01 \x03(\x09B\x03\xE0A\x01\x1A5\x0A\x15ScoreThresholdTrigger\x12\x1C\x0A\x0Fscore_threshold\x18\x02 \x01(\x02B\x03\xE0A\x01\x1A\x13\x0A\x11JobFailureTrigger\x1A\x0F\x0A\x0DJobEndTrigger\x1A\xC0\x03\x0A\x12NotificationReport\x12]\x0A\x0Arecipients\x18\x01 \x01(\x0B2D.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.RecipientsB\x03\xE0A\x02\x12u\x0A\x17score_threshold_trigger\x18\x02 \x01(\x0B2O.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.ScoreThresholdTriggerB\x03\xE0A\x01\x12m\x0A\x13job_failure_trigger\x18\x04 \x01(\x0B2K.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.JobFailureTriggerB\x03\xE0A\x01\x12e\x0A\x0Fjob_end_trigger\x18\x05 \x01(\x0B2G.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.JobEndTriggerB\x03\xE0A\x01\"\x85\x0A\x0A\x11DataQualityResult\x12\x13\x0A\x06passed\x18\x05 \x01(\x08B\x03\xE0A\x03\x12\x17\x0A\x05score\x18\x09 \x01(\x02B\x03\xE0A\x03H\x00\x88\x01\x01\x12M\x0A\x0Adimensions\x18\x02 \x03(\x0B24.google.cloud.dataplex.v1.DataQualityDimensionResultB\x03\xE0A\x03\x12G\x0A\x07columns\x18\x0A \x03(\x0B21.google.cloud.dataplex.v1.DataQualityColumnResultB\x03\xE0A\x03\x12C\x0A\x05rules\x18\x03 \x03(\x0B2/.google.cloud.dataplex.v1.DataQualityRuleResultB\x03\xE0A\x03\x12\x16\x0A\x09row_count\x18\x04 \x01(\x03B\x03\xE0A\x03\x12@\x0A\x0Cscanned_data\x18\x07 \x01(\x0B2%.google.cloud.dataplex.v1.ScannedDataB\x03\xE0A\x03\x12h\x0A\x18post_scan_actions_result\x18\x08 \x01(\x0B2A.google.cloud.dataplex.v1.DataQualityResult.PostScanActionsResultB\x03\xE0A\x03\x12a\x0A\x19catalog_publishing_status\x18\x0B \x01(\x0B29.google.cloud.dataplex.v1.DataScanCatalogPublishingStatusB\x03\xE0A\x03\x12|\x0A\"anomaly_detection_generated_assets\x18\x0C \x01(\x0B2K.google.cloud.dataplex.v1.DataQualityResult.AnomalyDetectionGeneratedAssetsB\x03\xE0A\x03\x1A\xFD\x02\x0A\x15PostScanActionsResult\x12{\x0A\x16bigquery_export_result\x18\x01 \x01(\x0B2V.google.cloud.dataplex.v1.DataQualityResult.PostScanActionsResult.BigQueryExportResultB\x03\xE0A\x03\x1A\xE6\x01\x0A\x14BigQueryExportResult\x12p\x0A\x05state\x18\x01 \x01(\x0E2\\.google.cloud.dataplex.v1.DataQualityResult.PostScanActionsResult.BigQueryExportResult.StateB\x03\xE0A\x03\x12\x14\x0A\x07message\x18\x02 \x01(\x09B\x03\xE0A\x03\"F\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09SUCCEEDED\x10\x01\x12\x0A\x0A\x06FAILED\x10\x02\x12\x0B\x0A\x07SKIPPED\x10\x03\x1A\xB5\x01\x0A\x1FAnomalyDetectionGeneratedAssets\x12\x19\x0A\x0Cresult_table\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\$\x0A\x17data_intermediate_table\x18\x02 \x01(\x09B\x03\xE0A\x03\x12)\x0A\x1Cfreshness_intermediate_table\x18\x03 \x01(\x09B\x03\xE0A\x03\x12&\x0A\x19volume_intermediate_table\x18\x04 \x01(\x09B\x03\xE0A\x03B\x08\x0A\x06_score\"\xB3\x04\x0A\x15DataQualityRuleResult\x12<\x0A\x04rule\x18\x01 \x01(\x0B2).google.cloud.dataplex.v1.DataQualityRuleB\x03\xE0A\x03\x12\x13\x0A\x06passed\x18\x07 \x01(\x08B\x03\xE0A\x03\x12\x1C\x0A\x0Fevaluated_count\x18\x09 \x01(\x03B\x03\xE0A\x03\x12\x19\x0A\x0Cpassed_count\x18\x08 \x01(\x03B\x03\xE0A\x03\x12\x17\x0A\x0Anull_count\x18\x05 \x01(\x03B\x03\xE0A\x03\x12\x17\x0A\x0Apass_ratio\x18\x06 \x01(\x01B\x03\xE0A\x03\x12\x1F\x0A\x12failing_rows_query\x18\x0A \x01(\x09B\x03\xE0A\x03\x12 \x0A\x13assertion_row_count\x18\x0B \x01(\x03B\x03\xE0A\x03\x12k\x0A\x19debug_queries_result_sets\x18\x0D \x03(\x0B2C.google.cloud.dataplex.v1.DataQualityRuleResult.DebugQueryResultSetB\x03\xE0A\x03\x1A=\x0A\x10DebugQueryResult\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12\x0C\x0A\x04type\x18\x02 \x01(\x09\x12\x0D\x0A\x05value\x18\x03 \x01(\x09\x1Am\x0A\x13DebugQueryResultSet\x12V\x0A\x07results\x18\x01 \x03(\x0B2@.google.cloud.dataplex.v1.DataQualityRuleResult.DebugQueryResultB\x03\xE0A\x03\"\x9C\x01\x0A\x1ADataQualityDimensionResult\x12F\x0A\x09dimension\x18\x01 \x01(\x0B2..google.cloud.dataplex.v1.DataQualityDimensionB\x03\xE0A\x03\x12\x13\x0A\x06passed\x18\x03 \x01(\x08B\x03\xE0A\x03\x12\x17\x0A\x05score\x18\x04 \x01(\x02B\x03\xE0A\x03H\x00\x88\x01\x01B\x08\x0A\x06_score\")\x0A\x14DataQualityDimension\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x03\"\xA4\x0F\x0A\x0FDataQualityRule\x12W\x0A\x11range_expectation\x18\x01 \x01(\x0B2:.google.cloud.dataplex.v1.DataQualityRule.RangeExpectationH\x00\x12\\\x0A\x14non_null_expectation\x18\x02 \x01(\x0B2<.google.cloud.dataplex.v1.DataQualityRule.NonNullExpectationH\x00\x12S\x0A\x0Fset_expectation\x18\x03 \x01(\x0B28.google.cloud.dataplex.v1.DataQualityRule.SetExpectationH\x00\x12W\x0A\x11regex_expectation\x18\x04 \x01(\x0B2:.google.cloud.dataplex.v1.DataQualityRule.RegexExpectationH\x00\x12a\x0A\x16uniqueness_expectation\x18d \x01(\x0B2?.google.cloud.dataplex.v1.DataQualityRule.UniquenessExpectationH\x00\x12j\x0A\x1Bstatistic_range_expectation\x18e \x01(\x0B2C.google.cloud.dataplex.v1.DataQualityRule.StatisticRangeExpectationH\x00\x12g\x0A\x19row_condition_expectation\x18\xC8\x01 \x01(\x0B2A.google.cloud.dataplex.v1.DataQualityRule.RowConditionExpectationH\x00\x12k\x0A\x1Btable_condition_expectation\x18\xC9\x01 \x01(\x0B2C.google.cloud.dataplex.v1.DataQualityRule.TableConditionExpectationH\x00\x12P\x0A\x0Dsql_assertion\x18\xCA\x01 \x01(\x0B26.google.cloud.dataplex.v1.DataQualityRule.SqlAssertionH\x00\x12\x14\x0A\x06column\x18\xF4\x03 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Bignore_null\x18\xF5\x03 \x01(\x08B\x03\xE0A\x01\x12\x17\x0A\x09dimension\x18\xF6\x03 \x01(\x09B\x03\xE0A\x01\x12\x17\x0A\x09threshold\x18\xF7\x03 \x01(\x01B\x03\xE0A\x01\x12\x12\x0A\x04name\x18\xF8\x03 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Bdescription\x18\xF9\x03 \x01(\x09B\x03\xE0A\x01\x12\x17\x0A\x09suspended\x18\xFA\x03 \x01(\x08B\x03\xE0A\x01\x12Q\x0A\x0Ddebug_queries\x18\xFE\x03 \x03(\x0B24.google.cloud.dataplex.v1.DataQualityRule.DebugQueryB\x03\xE0A\x01\x1A\x84\x01\x0A\x10RangeExpectation\x12\x16\x0A\x09min_value\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x16\x0A\x09max_value\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x1F\x0A\x12strict_min_enabled\x18\x03 \x01(\x08B\x03\xE0A\x01\x12\x1F\x0A\x12strict_max_enabled\x18\x04 \x01(\x08B\x03\xE0A\x01\x1A\x14\x0A\x12NonNullExpectation\x1A%\x0A\x0ESetExpectation\x12\x13\x0A\x06values\x18\x01 \x03(\x09B\x03\xE0A\x01\x1A&\x0A\x10RegexExpectation\x12\x12\x0A\x05regex\x18\x01 \x01(\x09B\x03\xE0A\x01\x1A\x17\x0A\x15UniquenessExpectation\x1A\xC2\x02\x0A\x19StatisticRangeExpectation\x12k\x0A\x09statistic\x18\x01 \x01(\x0E2S.google.cloud.dataplex.v1.DataQualityRule.StatisticRangeExpectation.ColumnStatisticB\x03\xE0A\x01\x12\x16\x0A\x09min_value\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x16\x0A\x09max_value\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x1F\x0A\x12strict_min_enabled\x18\x04 \x01(\x08B\x03\xE0A\x01\x12\x1F\x0A\x12strict_max_enabled\x18\x05 \x01(\x08B\x03\xE0A\x01\"F\x0A\x0FColumnStatistic\x12\x17\x0A\x13STATISTIC_UNDEFINED\x10\x00\x12\x08\x0A\x04MEAN\x10\x01\x12\x07\x0A\x03MIN\x10\x02\x12\x07\x0A\x03MAX\x10\x03\x1A6\x0A\x17RowConditionExpectation\x12\x1B\x0A\x0Esql_expression\x18\x01 \x01(\x09B\x03\xE0A\x01\x1A8\x0A\x19TableConditionExpectation\x12\x1B\x0A\x0Esql_expression\x18\x01 \x01(\x09B\x03\xE0A\x01\x1A*\x0A\x0CSqlAssertion\x12\x1A\x0A\x0Dsql_statement\x18\x01 \x01(\x09B\x03\xE0A\x01\x1AB\x0A\x0ADebugQuery\x12\x18\x0A\x0Bdescription\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x1A\x0A\x0Dsql_statement\x18\x02 \x01(\x09B\x03\xE0A\x02B\x0B\x0A\x09rule_type\"\xB5\x01\x0A\x17DataQualityColumnResult\x12\x13\x0A\x06column\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x17\x0A\x05score\x18\x02 \x01(\x02B\x03\xE0A\x03H\x00\x88\x01\x01\x12\x13\x0A\x06passed\x18\x03 \x01(\x08B\x03\xE0A\x03\x12M\x0A\x0Adimensions\x18\x04 \x03(\x0B24.google.cloud.dataplex.v1.DataQualityDimensionResultB\x03\xE0A\x03B\x08\x0A\x06_scoreB\xC4\x01\x0A\x1Ccom.google.cloud.dataplex.v1B\x10DataQualityProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb\xEAAU\x0A\x1Dbigquery.googleapis.com/Table\x124projects/{project}/datasets/{dataset}/tables/{table}b\x06proto3" + "\x0A\xE27\x0A+google/cloud/dataplex/v1/data_quality.proto\x12\x18google.cloud.dataplex.v1\x1A\x19google/api/resource.proto\x1A9google/cloud/dataplex/v1/data_quality_rule_template.proto\x1A/google/cloud/dataplex/v1/datascans_common.proto\x1A)google/cloud/dataplex/v1/processing.proto\"\xA7\x09\x0A\x0FDataQualitySpec\x12=\x0A\x05rules\x18\x01 \x03(\x0B2).google.cloud.dataplex.v1.DataQualityRuleB\x03\xE0A\x02\x12\x1D\x0A\x10sampling_percent\x18\x04 \x01(\x02B\x03\xE0A\x01\x12\x17\x0A\x0Arow_filter\x18\x05 \x01(\x09B\x03\xE0A\x01\x12Y\x0A\x11post_scan_actions\x18\x06 \x01(\x0B29.google.cloud.dataplex.v1.DataQualitySpec.PostScanActionsB\x03\xE0A\x01\x12'\x0A\x1Acatalog_publishing_enabled\x18\x08 \x01(\x08B\x03\xE0A\x01\x12'\x0A\x1Aenable_catalog_based_rules\x18\x0A \x01(\x08B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x0B \x01(\x09B\x03\xE0A\x01\x1A\xDA\x06\x0A\x0FPostScanActions\x12f\x0A\x0Fbigquery_export\x18\x01 \x01(\x0B2H.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.BigQueryExportB\x03\xE0A\x01\x12n\x0A\x13notification_report\x18\x02 \x01(\x0B2L.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.NotificationReportB\x03\xE0A\x01\x1A,\x0A\x0EBigQueryExport\x12\x1A\x0A\x0Dresults_table\x18\x01 \x01(\x09B\x03\xE0A\x01\x1A!\x0A\x0ARecipients\x12\x13\x0A\x06emails\x18\x01 \x03(\x09B\x03\xE0A\x01\x1A5\x0A\x15ScoreThresholdTrigger\x12\x1C\x0A\x0Fscore_threshold\x18\x02 \x01(\x02B\x03\xE0A\x01\x1A\x13\x0A\x11JobFailureTrigger\x1A\x0F\x0A\x0DJobEndTrigger\x1A\xC0\x03\x0A\x12NotificationReport\x12]\x0A\x0Arecipients\x18\x01 \x01(\x0B2D.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.RecipientsB\x03\xE0A\x02\x12u\x0A\x17score_threshold_trigger\x18\x02 \x01(\x0B2O.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.ScoreThresholdTriggerB\x03\xE0A\x01\x12m\x0A\x13job_failure_trigger\x18\x04 \x01(\x0B2K.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.JobFailureTriggerB\x03\xE0A\x01\x12e\x0A\x0Fjob_end_trigger\x18\x05 \x01(\x0B2G.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.JobEndTriggerB\x03\xE0A\x01\"\x85\x0A\x0A\x11DataQualityResult\x12\x13\x0A\x06passed\x18\x05 \x01(\x08B\x03\xE0A\x03\x12\x17\x0A\x05score\x18\x09 \x01(\x02B\x03\xE0A\x03H\x00\x88\x01\x01\x12M\x0A\x0Adimensions\x18\x02 \x03(\x0B24.google.cloud.dataplex.v1.DataQualityDimensionResultB\x03\xE0A\x03\x12G\x0A\x07columns\x18\x0A \x03(\x0B21.google.cloud.dataplex.v1.DataQualityColumnResultB\x03\xE0A\x03\x12C\x0A\x05rules\x18\x03 \x03(\x0B2/.google.cloud.dataplex.v1.DataQualityRuleResultB\x03\xE0A\x03\x12\x16\x0A\x09row_count\x18\x04 \x01(\x03B\x03\xE0A\x03\x12@\x0A\x0Cscanned_data\x18\x07 \x01(\x0B2%.google.cloud.dataplex.v1.ScannedDataB\x03\xE0A\x03\x12h\x0A\x18post_scan_actions_result\x18\x08 \x01(\x0B2A.google.cloud.dataplex.v1.DataQualityResult.PostScanActionsResultB\x03\xE0A\x03\x12a\x0A\x19catalog_publishing_status\x18\x0B \x01(\x0B29.google.cloud.dataplex.v1.DataScanCatalogPublishingStatusB\x03\xE0A\x03\x12|\x0A\"anomaly_detection_generated_assets\x18\x0C \x01(\x0B2K.google.cloud.dataplex.v1.DataQualityResult.AnomalyDetectionGeneratedAssetsB\x03\xE0A\x03\x1A\xFD\x02\x0A\x15PostScanActionsResult\x12{\x0A\x16bigquery_export_result\x18\x01 \x01(\x0B2V.google.cloud.dataplex.v1.DataQualityResult.PostScanActionsResult.BigQueryExportResultB\x03\xE0A\x03\x1A\xE6\x01\x0A\x14BigQueryExportResult\x12p\x0A\x05state\x18\x01 \x01(\x0E2\\.google.cloud.dataplex.v1.DataQualityResult.PostScanActionsResult.BigQueryExportResult.StateB\x03\xE0A\x03\x12\x14\x0A\x07message\x18\x02 \x01(\x09B\x03\xE0A\x03\"F\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09SUCCEEDED\x10\x01\x12\x0A\x0A\x06FAILED\x10\x02\x12\x0B\x0A\x07SKIPPED\x10\x03\x1A\xB5\x01\x0A\x1FAnomalyDetectionGeneratedAssets\x12\x19\x0A\x0Cresult_table\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\$\x0A\x17data_intermediate_table\x18\x02 \x01(\x09B\x03\xE0A\x03\x12)\x0A\x1Cfreshness_intermediate_table\x18\x03 \x01(\x09B\x03\xE0A\x03\x12&\x0A\x19volume_intermediate_table\x18\x04 \x01(\x09B\x03\xE0A\x03B\x08\x0A\x06_score\"\xB3\x04\x0A\x15DataQualityRuleResult\x12<\x0A\x04rule\x18\x01 \x01(\x0B2).google.cloud.dataplex.v1.DataQualityRuleB\x03\xE0A\x03\x12\x13\x0A\x06passed\x18\x07 \x01(\x08B\x03\xE0A\x03\x12\x1C\x0A\x0Fevaluated_count\x18\x09 \x01(\x03B\x03\xE0A\x03\x12\x19\x0A\x0Cpassed_count\x18\x08 \x01(\x03B\x03\xE0A\x03\x12\x17\x0A\x0Anull_count\x18\x05 \x01(\x03B\x03\xE0A\x03\x12\x17\x0A\x0Apass_ratio\x18\x06 \x01(\x01B\x03\xE0A\x03\x12\x1F\x0A\x12failing_rows_query\x18\x0A \x01(\x09B\x03\xE0A\x03\x12 \x0A\x13assertion_row_count\x18\x0B \x01(\x03B\x03\xE0A\x03\x12k\x0A\x19debug_queries_result_sets\x18\x0D \x03(\x0B2C.google.cloud.dataplex.v1.DataQualityRuleResult.DebugQueryResultSetB\x03\xE0A\x03\x1A=\x0A\x10DebugQueryResult\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12\x0C\x0A\x04type\x18\x02 \x01(\x09\x12\x0D\x0A\x05value\x18\x03 \x01(\x09\x1Am\x0A\x13DebugQueryResultSet\x12V\x0A\x07results\x18\x01 \x03(\x0B2@.google.cloud.dataplex.v1.DataQualityRuleResult.DebugQueryResultB\x03\xE0A\x03\"\x9C\x01\x0A\x1ADataQualityDimensionResult\x12F\x0A\x09dimension\x18\x01 \x01(\x0B2..google.cloud.dataplex.v1.DataQualityDimensionB\x03\xE0A\x03\x12\x13\x0A\x06passed\x18\x03 \x01(\x08B\x03\xE0A\x03\x12\x17\x0A\x05score\x18\x04 \x01(\x02B\x03\xE0A\x03H\x00\x88\x01\x01B\x08\x0A\x06_score\")\x0A\x14DataQualityDimension\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x03\"\xAD\x19\x0A\x0FDataQualityRule\x12W\x0A\x11range_expectation\x18\x01 \x01(\x0B2:.google.cloud.dataplex.v1.DataQualityRule.RangeExpectationH\x00\x12\\\x0A\x14non_null_expectation\x18\x02 \x01(\x0B2<.google.cloud.dataplex.v1.DataQualityRule.NonNullExpectationH\x00\x12S\x0A\x0Fset_expectation\x18\x03 \x01(\x0B28.google.cloud.dataplex.v1.DataQualityRule.SetExpectationH\x00\x12W\x0A\x11regex_expectation\x18\x04 \x01(\x0B2:.google.cloud.dataplex.v1.DataQualityRule.RegexExpectationH\x00\x12a\x0A\x16uniqueness_expectation\x18d \x01(\x0B2?.google.cloud.dataplex.v1.DataQualityRule.UniquenessExpectationH\x00\x12j\x0A\x1Bstatistic_range_expectation\x18e \x01(\x0B2C.google.cloud.dataplex.v1.DataQualityRule.StatisticRangeExpectationH\x00\x12g\x0A\x19row_condition_expectation\x18\xC8\x01 \x01(\x0B2A.google.cloud.dataplex.v1.DataQualityRule.RowConditionExpectationH\x00\x12k\x0A\x1Btable_condition_expectation\x18\xC9\x01 \x01(\x0B2C.google.cloud.dataplex.v1.DataQualityRule.TableConditionExpectationH\x00\x12P\x0A\x0Dsql_assertion\x18\xCA\x01 \x01(\x0B26.google.cloud.dataplex.v1.DataQualityRule.SqlAssertionH\x00\x12Y\x0A\x12template_reference\x18\x05 \x01(\x0B2;.google.cloud.dataplex.v1.DataQualityRule.TemplateReferenceH\x00\x12\x14\x0A\x06column\x18\xF4\x03 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Bignore_null\x18\xF5\x03 \x01(\x08B\x03\xE0A\x01\x12\x17\x0A\x09dimension\x18\xF6\x03 \x01(\x09B\x03\xE0A\x01\x12\x17\x0A\x09threshold\x18\xF7\x03 \x01(\x01B\x03\xE0A\x01\x12\x12\x0A\x04name\x18\xF8\x03 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Bdescription\x18\xF9\x03 \x01(\x09B\x03\xE0A\x01\x12\x17\x0A\x09suspended\x18\xFA\x03 \x01(\x08B\x03\xE0A\x01\x12S\x0A\x0Aattributes\x18\xFB\x03 \x03(\x0B29.google.cloud.dataplex.v1.DataQualityRule.AttributesEntryB\x03\xE0A\x01\x12O\x0A\x0Brule_source\x18\xFC\x03 \x01(\x0B24.google.cloud.dataplex.v1.DataQualityRule.RuleSourceB\x03\xE0A\x03\x12Q\x0A\x0Ddebug_queries\x18\xFE\x03 \x03(\x0B24.google.cloud.dataplex.v1.DataQualityRule.DebugQueryB\x03\xE0A\x01\x1A\x84\x01\x0A\x10RangeExpectation\x12\x16\x0A\x09min_value\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x16\x0A\x09max_value\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x1F\x0A\x12strict_min_enabled\x18\x03 \x01(\x08B\x03\xE0A\x01\x12\x1F\x0A\x12strict_max_enabled\x18\x04 \x01(\x08B\x03\xE0A\x01\x1A\x14\x0A\x12NonNullExpectation\x1A%\x0A\x0ESetExpectation\x12\x13\x0A\x06values\x18\x01 \x03(\x09B\x03\xE0A\x01\x1A&\x0A\x10RegexExpectation\x12\x12\x0A\x05regex\x18\x01 \x01(\x09B\x03\xE0A\x01\x1A\x17\x0A\x15UniquenessExpectation\x1A\xC2\x02\x0A\x19StatisticRangeExpectation\x12k\x0A\x09statistic\x18\x01 \x01(\x0E2S.google.cloud.dataplex.v1.DataQualityRule.StatisticRangeExpectation.ColumnStatisticB\x03\xE0A\x01\x12\x16\x0A\x09min_value\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x16\x0A\x09max_value\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x1F\x0A\x12strict_min_enabled\x18\x04 \x01(\x08B\x03\xE0A\x01\x12\x1F\x0A\x12strict_max_enabled\x18\x05 \x01(\x08B\x03\xE0A\x01\"F\x0A\x0FColumnStatistic\x12\x17\x0A\x13STATISTIC_UNDEFINED\x10\x00\x12\x08\x0A\x04MEAN\x10\x01\x12\x07\x0A\x03MIN\x10\x02\x12\x07\x0A\x03MAX\x10\x03\x1A6\x0A\x17RowConditionExpectation\x12\x1B\x0A\x0Esql_expression\x18\x01 \x01(\x09B\x03\xE0A\x01\x1A8\x0A\x19TableConditionExpectation\x12\x1B\x0A\x0Esql_expression\x18\x01 \x01(\x09B\x03\xE0A\x01\x1A*\x0A\x0CSqlAssertion\x12\x1A\x0A\x0Dsql_statement\x18\x01 \x01(\x09B\x03\xE0A\x01\x1A\xB1\x03\x0A\x11TemplateReference\x123\x0A\x04name\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Ddataplex.googleapis.com/Entry\x12\\\x0A\x06values\x18\x05 \x03(\x0B2G.google.cloud.dataplex.v1.DataQualityRule.TemplateReference.ValuesEntryB\x03\xE0A\x01\x12\x19\x0A\x0Cresolved_sql\x18\x03 \x01(\x09B\x03\xE0A\x03\x12M\x0A\x0Drule_template\x18\x04 \x01(\x0B21.google.cloud.dataplex.v1.DataQualityRuleTemplateB\x03\xE0A\x03\x1A\$\x0A\x0EParameterValue\x12\x12\x0A\x05value\x18\x01 \x01(\x09B\x03\xE0A\x02\x1Ay\x0A\x0BValuesEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12Y\x0A\x05value\x18\x02 \x01(\x0B2J.google.cloud.dataplex.v1.DataQualityRule.TemplateReference.ParameterValue:\x028\x01\x1A\x9E\x04\x0A\x0ARuleSource\x12e\x0A\x12rule_path_elements\x18\x01 \x03(\x0B2D.google.cloud.dataplex.v1.DataQualityRule.RuleSource.RulePathElementB\x03\xE0A\x03\x1A\xA8\x03\x0A\x0FRulePathElement\x12m\x0A\x0Centry_source\x18\x01 \x01(\x0B2P.google.cloud.dataplex.v1.DataQualityRule.RuleSource.RulePathElement.EntrySourceB\x03\xE0A\x03H\x00\x12v\x0A\x11entry_link_source\x18\x02 \x01(\x0B2T.google.cloud.dataplex.v1.DataQualityRule.RuleSource.RulePathElement.EntryLinkSourceB\x03\xE0A\x03H\x00\x1AU\x0A\x0BEntrySource\x12\x17\x0A\x0Aentry_type\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x12\x0A\x05entry\x18\x02 \x01(\x09B\x03\xE0A\x03\x12\x19\x0A\x0Cdisplay_name\x18\x03 \x01(\x09B\x03\xE0A\x03\x1AH\x0A\x0FEntryLinkSource\x12\x1C\x0A\x0Fentry_link_type\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x17\x0A\x0Aentry_link\x18\x02 \x01(\x09B\x03\xE0A\x03B\x0D\x0A\x0Bsource_type\x1AB\x0A\x0ADebugQuery\x12\x18\x0A\x0Bdescription\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x1A\x0A\x0Dsql_statement\x18\x02 \x01(\x09B\x03\xE0A\x02\x1A1\x0A\x0FAttributesEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01B\x0B\x0A\x09rule_type\"\xB5\x01\x0A\x17DataQualityColumnResult\x12\x13\x0A\x06column\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x17\x0A\x05score\x18\x02 \x01(\x02B\x03\xE0A\x03H\x00\x88\x01\x01\x12\x13\x0A\x06passed\x18\x03 \x01(\x08B\x03\xE0A\x03\x12M\x0A\x0Adimensions\x18\x04 \x03(\x0B24.google.cloud.dataplex.v1.DataQualityDimensionResultB\x03\xE0A\x03B\x08\x0A\x06_scoreB\xC4\x01\x0A\x1Ccom.google.cloud.dataplex.v1B\x10DataQualityProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb\xEAAU\x0A\x1Dbigquery.googleapis.com/Table\x124projects/{project}/datasets/{dataset}/tables/{table}b\x06proto3" , true); static::$is_initialized = true; diff --git a/Dataplex/metadata/V1/DataQualityRuleTemplate.php b/Dataplex/metadata/V1/DataQualityRuleTemplate.php new file mode 100644 index 000000000000..d0a8c36fa901 --- /dev/null +++ b/Dataplex/metadata/V1/DataQualityRuleTemplate.php @@ -0,0 +1,25 @@ +internalAddGeneratedFile( + "\x0A\xDD\x05\x0A9google/cloud/dataplex/v1/data_quality_rule_template.proto\x12\x18google.cloud.dataplex.v1\"\x83\x04\x0A\x17DataQualityRuleTemplate\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x16\x0A\x09dimension\x18\x02 \x01(\x09B\x03\xE0A\x03\x12R\x0A\x0Esql_collection\x18\x03 \x03(\x0B25.google.cloud.dataplex.v1.DataQualityRuleTemplate.SqlB\x03\xE0A\x03\x12e\x0A\x10input_parameters\x18\x04 \x03(\x0B2F.google.cloud.dataplex.v1.DataQualityRuleTemplate.InputParametersEntryB\x03\xE0A\x03\x12\x19\x0A\x0Ccapabilities\x18\x05 \x03(\x09B\x03\xE0A\x03\x1A\x19\x0A\x03Sql\x12\x12\x0A\x05query\x18\x01 \x01(\x09B\x03\xE0A\x03\x1AL\x0A\x14ParameterDescription\x12\x18\x0A\x0Bdescription\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x1A\x0A\x0Ddefault_value\x18\x02 \x01(\x09B\x03\xE0A\x03\x1A~\x0A\x14InputParametersEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12U\x0A\x05value\x18\x02 \x01(\x0B2F.google.cloud.dataplex.v1.DataQualityRuleTemplate.ParameterDescription:\x028\x01Bx\x0A\x1Ccom.google.cloud.dataplex.v1B\x1CDataQualityRuleTemplateProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" + , true); + + static::$is_initialized = true; + } +} + diff --git a/Dataplex/metadata/V1/DataTaxonomy.php b/Dataplex/metadata/V1/DataTaxonomy.php index 957bd9494142..f2dba18b4be9 100644 --- a/Dataplex/metadata/V1/DataTaxonomy.php +++ b/Dataplex/metadata/V1/DataTaxonomy.php @@ -25,7 +25,7 @@ public static function initOnce() { \GPBMetadata\Google\Protobuf\FieldMask::initOnce(); \GPBMetadata\Google\Protobuf\Timestamp::initOnce(); $pool->internalAddGeneratedFile( - "\x0A\xB2I\x0A,google/cloud/dataplex/v1/data_taxonomy.proto\x12\x18google.cloud.dataplex.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x19google/api/resource.proto\x1A'google/cloud/dataplex/v1/security.proto\x1A&google/cloud/dataplex/v1/service.proto\x1A#google/longrunning/operations.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"\xB3\x04\x0A\x0CDataTaxonomy\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x03\xFAA&\x0A\$dataplex.googleapis.com/DataTaxonomy\x12\x10\x0A\x03uid\x18\x02 \x01(\x09B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x18\x0A\x0Bdescription\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Cdisplay_name\x18\x06 \x01(\x09B\x03\xE0A\x01\x12G\x0A\x06labels\x18\x08 \x03(\x0B22.google.cloud.dataplex.v1.DataTaxonomy.LabelsEntryB\x03\xE0A\x01\x12\x1C\x0A\x0Fattribute_count\x18\x09 \x01(\x05B\x03\xE0A\x03\x12\x0C\x0A\x04etag\x18\x0A \x01(\x09\x12\x18\x0A\x0Bclass_count\x18\x0B \x01(\x05B\x03\xE0A\x03\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:v\x18\x01\xEAAq\x0A\$dataplex.googleapis.com/DataTaxonomy\x12Iprojects/{project}/locations/{location}/dataTaxonomies/{data_taxonomy_id}\"\x96\x06\x0A\x0DDataAttribute\x12;\x0A\x04name\x18\x01 \x01(\x09B-\xE0A\x03\xFAA'\x0A%dataplex.googleapis.com/DataAttribute\x12\x10\x0A\x03uid\x18\x02 \x01(\x09B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x18\x0A\x0Bdescription\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Cdisplay_name\x18\x06 \x01(\x09B\x03\xE0A\x01\x12H\x0A\x06labels\x18\x07 \x03(\x0B23.google.cloud.dataplex.v1.DataAttribute.LabelsEntryB\x03\xE0A\x01\x12@\x0A\x09parent_id\x18\x08 \x01(\x09B-\xE0A\x01\xFAA'\x0A%dataplex.googleapis.com/DataAttribute\x12\x1C\x0A\x0Fattribute_count\x18\x09 \x01(\x05B\x03\xE0A\x03\x12\x0C\x0A\x04etag\x18\x0A \x01(\x09\x12O\x0A\x14resource_access_spec\x18d \x01(\x0B2,.google.cloud.dataplex.v1.ResourceAccessSpecB\x03\xE0A\x01\x12G\x0A\x10data_access_spec\x18e \x01(\x0B2(.google.cloud.dataplex.v1.DataAccessSpecB\x03\xE0A\x01\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:\x93\x01\x18\x01\xEAA\x8D\x01\x0A%dataplex.googleapis.com/DataAttribute\x12dprojects/{project}/locations/{location}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id}\"\xC9\x06\x0A\x14DataAttributeBinding\x12B\x0A\x04name\x18\x01 \x01(\x09B4\xE0A\x03\xFAA.\x0A,dataplex.googleapis.com/DataAttributeBinding\x12\x10\x0A\x03uid\x18\x02 \x01(\x09B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x18\x0A\x0Bdescription\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Cdisplay_name\x18\x06 \x01(\x09B\x03\xE0A\x01\x12O\x0A\x06labels\x18\x07 \x03(\x0B2:.google.cloud.dataplex.v1.DataAttributeBinding.LabelsEntryB\x03\xE0A\x01\x12\x0C\x0A\x04etag\x18\x08 \x01(\x09\x12\x1A\x0A\x08resource\x18d \x01(\x09B\x06\xE0A\x01\xE0A\x05H\x00\x12A\x0A\x0Aattributes\x18n \x03(\x09B-\xE0A\x01\xFAA'\x0A%dataplex.googleapis.com/DataAttribute\x12G\x0A\x05paths\x18x \x03(\x0B23.google.cloud.dataplex.v1.DataAttributeBinding.PathB\x03\xE0A\x01\x1A\\\x0A\x04Path\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x02\x12A\x0A\x0Aattributes\x18\x02 \x03(\x09B-\xE0A\x01\xFAA'\x0A%dataplex.googleapis.com/DataAttribute\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:\x8F\x01\x18\x01\xEAA\x89\x01\x0A,dataplex.googleapis.com/DataAttributeBinding\x12Yprojects/{project}/locations/{location}/dataAttributeBindings/{data_attribute_binding_id}B\x14\x0A\x12resource_reference\"\xD9\x01\x0A\x19CreateDataTaxonomyRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x1D\x0A\x10data_taxonomy_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12B\x0A\x0Ddata_taxonomy\x18\x03 \x01(\x0B2&.google.cloud.dataplex.v1.DataTaxonomyB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01:\x02\x18\x01\"\xB5\x01\x0A\x19UpdateDataTaxonomyRequest\x124\x0A\x0Bupdate_mask\x18\x01 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12B\x0A\x0Ddata_taxonomy\x18\x02 \x01(\x0B2&.google.cloud.dataplex.v1.DataTaxonomyB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01:\x02\x18\x01\"X\x0A\x16GetDataTaxonomyRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$dataplex.googleapis.com/DataTaxonomy:\x02\x18\x01\"\xB3\x01\x0A\x19ListDataTaxonomiesRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x95\x01\x0A\x1AListDataTaxonomiesResponse\x12?\x0A\x0Fdata_taxonomies\x18\x01 \x03(\x0B2&.google.cloud.dataplex.v1.DataTaxonomy\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"n\x0A\x19DeleteDataTaxonomyRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$dataplex.googleapis.com/DataTaxonomy\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x01:\x02\x18\x01\"\xDC\x01\x0A\x1ACreateDataAttributeRequest\x12<\x0A\x06parent\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$dataplex.googleapis.com/DataTaxonomy\x12\x1E\x0A\x11data_attribute_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12D\x0A\x0Edata_attribute\x18\x03 \x01(\x0B2'.google.cloud.dataplex.v1.DataAttributeB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\xB4\x01\x0A\x1AUpdateDataAttributeRequest\x124\x0A\x0Bupdate_mask\x18\x01 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12D\x0A\x0Edata_attribute\x18\x02 \x01(\x0B2'.google.cloud.dataplex.v1.DataAttributeB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"V\x0A\x17GetDataAttributeRequest\x12;\x0A\x04name\x18\x01 \x01(\x09B-\xE0A\x02\xFAA'\x0A%dataplex.googleapis.com/DataAttribute\"\xB6\x01\x0A\x19ListDataAttributesRequest\x12<\x0A\x06parent\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$dataplex.googleapis.com/DataTaxonomy\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x96\x01\x0A\x1AListDataAttributesResponse\x12@\x0A\x0Fdata_attributes\x18\x01 \x03(\x0B2'.google.cloud.dataplex.v1.DataAttribute\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"l\x0A\x1ADeleteDataAttributeRequest\x12;\x0A\x04name\x18\x01 \x01(\x09B-\xE0A\x02\xFAA'\x0A%dataplex.googleapis.com/DataAttribute\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x01\"\xF7\x01\x0A!CreateDataAttributeBindingRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12&\x0A\x19data_attribute_binding_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12S\x0A\x16data_attribute_binding\x18\x03 \x01(\x0B2..google.cloud.dataplex.v1.DataAttributeBindingB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\xCA\x01\x0A!UpdateDataAttributeBindingRequest\x124\x0A\x0Bupdate_mask\x18\x01 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12S\x0A\x16data_attribute_binding\x18\x02 \x01(\x0B2..google.cloud.dataplex.v1.DataAttributeBindingB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"d\x0A\x1EGetDataAttributeBindingRequest\x12B\x0A\x04name\x18\x01 \x01(\x09B4\xE0A\x02\xFAA.\x0A,dataplex.googleapis.com/DataAttributeBinding\"\xBA\x01\x0A ListDataAttributeBindingsRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\xAC\x01\x0A!ListDataAttributeBindingsResponse\x12O\x0A\x17data_attribute_bindings\x18\x01 \x03(\x0B2..google.cloud.dataplex.v1.DataAttributeBinding\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"z\x0A!DeleteDataAttributeBindingRequest\x12B\x0A\x04name\x18\x01 \x01(\x09B4\xE0A\x02\xFAA.\x0A,dataplex.googleapis.com/DataAttributeBinding\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x022\xBB\x1D\x0A\x13DataTaxonomyService\x12\x83\x02\x0A\x12CreateDataTaxonomy\x123.google.cloud.dataplex.v1.CreateDataTaxonomyRequest\x1A\x1D.google.longrunning.Operation\"\x98\x01\x88\x02\x01\xCAA!\x0A\x0CDataTaxonomy\x12\x11OperationMetadata\xDAA%parent,data_taxonomy,data_taxonomy_id\x82\xD3\xE4\x93\x02C\"2/v1/{parent=projects/*/locations/*}/dataTaxonomies:\x0Ddata_taxonomy\x12\x85\x02\x0A\x12UpdateDataTaxonomy\x123.google.cloud.dataplex.v1.UpdateDataTaxonomyRequest\x1A\x1D.google.longrunning.Operation\"\x9A\x01\x88\x02\x01\xCAA!\x0A\x0CDataTaxonomy\x12\x11OperationMetadata\xDAA\x19data_taxonomy,update_mask\x82\xD3\xE4\x93\x02Q2@/v1/{data_taxonomy.name=projects/*/locations/*/dataTaxonomies/*}:\x0Ddata_taxonomy\x12\xDB\x01\x0A\x12DeleteDataTaxonomy\x123.google.cloud.dataplex.v1.DeleteDataTaxonomyRequest\x1A\x1D.google.longrunning.Operation\"q\x88\x02\x01\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x024*2/v1/{name=projects/*/locations/*/dataTaxonomies/*}\x12\xC7\x01\x0A\x12ListDataTaxonomies\x123.google.cloud.dataplex.v1.ListDataTaxonomiesRequest\x1A4.google.cloud.dataplex.v1.ListDataTaxonomiesResponse\"F\x88\x02\x01\xDAA\x06parent\x82\xD3\xE4\x93\x024\x122/v1/{parent=projects/*/locations/*}/dataTaxonomies\x12\xB1\x01\x0A\x0FGetDataTaxonomy\x120.google.cloud.dataplex.v1.GetDataTaxonomyRequest\x1A&.google.cloud.dataplex.v1.DataTaxonomy\"D\x88\x02\x01\xDAA\x04name\x82\xD3\xE4\x93\x024\x122/v1/{name=projects/*/locations/*/dataTaxonomies/*}\x12\xBD\x02\x0A\x1ACreateDataAttributeBinding\x12;.google.cloud.dataplex.v1.CreateDataAttributeBindingRequest\x1A\x1D.google.longrunning.Operation\"\xC2\x01\x88\x02\x01\xCAA)\x0A\x14DataAttributeBinding\x12\x11OperationMetadata\xDAA7parent,data_attribute_binding,data_attribute_binding_id\x82\xD3\xE4\x93\x02S\"9/v1/{parent=projects/*/locations/*}/dataAttributeBindings:\x16data_attribute_binding\x12\xBF\x02\x0A\x1AUpdateDataAttributeBinding\x12;.google.cloud.dataplex.v1.UpdateDataAttributeBindingRequest\x1A\x1D.google.longrunning.Operation\"\xC4\x01\x88\x02\x01\xCAA)\x0A\x14DataAttributeBinding\x12\x11OperationMetadata\xDAA\"data_attribute_binding,update_mask\x82\xD3\xE4\x93\x02j2P/v1/{data_attribute_binding.name=projects/*/locations/*/dataAttributeBindings/*}:\x16data_attribute_binding\x12\xF2\x01\x0A\x1ADeleteDataAttributeBinding\x12;.google.cloud.dataplex.v1.DeleteDataAttributeBindingRequest\x1A\x1D.google.longrunning.Operation\"x\x88\x02\x01\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x02;*9/v1/{name=projects/*/locations/*/dataAttributeBindings/*}\x12\xE3\x01\x0A\x19ListDataAttributeBindings\x12:.google.cloud.dataplex.v1.ListDataAttributeBindingsRequest\x1A;.google.cloud.dataplex.v1.ListDataAttributeBindingsResponse\"M\x88\x02\x01\xDAA\x06parent\x82\xD3\xE4\x93\x02;\x129/v1/{parent=projects/*/locations/*}/dataAttributeBindings\x12\xD0\x01\x0A\x17GetDataAttributeBinding\x128.google.cloud.dataplex.v1.GetDataAttributeBindingRequest\x1A..google.cloud.dataplex.v1.DataAttributeBinding\"K\x88\x02\x01\xDAA\x04name\x82\xD3\xE4\x93\x02;\x129/v1/{name=projects/*/locations/*/dataAttributeBindings/*}\x12\x96\x02\x0A\x13CreateDataAttribute\x124.google.cloud.dataplex.v1.CreateDataAttributeRequest\x1A\x1D.google.longrunning.Operation\"\xA9\x01\x88\x02\x01\xCAA\"\x0A\x0DDataAttribute\x12\x11OperationMetadata\xDAA'parent,data_attribute,data_attribute_id\x82\xD3\xE4\x93\x02Q\"?/v1/{parent=projects/*/locations/*/dataTaxonomies/*}/attributes:\x0Edata_attribute\x12\x98\x02\x0A\x13UpdateDataAttribute\x124.google.cloud.dataplex.v1.UpdateDataAttributeRequest\x1A\x1D.google.longrunning.Operation\"\xAB\x01\x88\x02\x01\xCAA\"\x0A\x0DDataAttribute\x12\x11OperationMetadata\xDAA\x1Adata_attribute,update_mask\x82\xD3\xE4\x93\x02`2N/v1/{data_attribute.name=projects/*/locations/*/dataTaxonomies/*/attributes/*}:\x0Edata_attribute\x12\xEA\x01\x0A\x13DeleteDataAttribute\x124.google.cloud.dataplex.v1.DeleteDataAttributeRequest\x1A\x1D.google.longrunning.Operation\"~\x88\x02\x01\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x02A*?/v1/{name=projects/*/locations/*/dataTaxonomies/*/attributes/*}\x12\xD4\x01\x0A\x12ListDataAttributes\x123.google.cloud.dataplex.v1.ListDataAttributesRequest\x1A4.google.cloud.dataplex.v1.ListDataAttributesResponse\"S\x88\x02\x01\xDAA\x06parent\x82\xD3\xE4\x93\x02A\x12?/v1/{parent=projects/*/locations/*/dataTaxonomies/*}/attributes\x12\xC1\x01\x0A\x10GetDataAttribute\x121.google.cloud.dataplex.v1.GetDataAttributeRequest\x1A'.google.cloud.dataplex.v1.DataAttribute\"Q\x88\x02\x01\xDAA\x04name\x82\xD3\xE4\x93\x02A\x12?/v1/{name=projects/*/locations/*/dataTaxonomies/*/attributes/*}\x1AN\x88\x02\x01\xCAA\x17dataplex.googleapis.com\xD2A.https://www.googleapis.com/auth/cloud-platformBm\x0A\x1Ccom.google.cloud.dataplex.v1B\x11DataTaxonomyProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" + "\x0A\xE7I\x0A,google/cloud/dataplex/v1/data_taxonomy.proto\x12\x18google.cloud.dataplex.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x19google/api/resource.proto\x1A'google/cloud/dataplex/v1/security.proto\x1A&google/cloud/dataplex/v1/service.proto\x1A#google/longrunning/operations.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"\xB3\x04\x0A\x0CDataTaxonomy\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x03\xFAA&\x0A\$dataplex.googleapis.com/DataTaxonomy\x12\x10\x0A\x03uid\x18\x02 \x01(\x09B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x18\x0A\x0Bdescription\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Cdisplay_name\x18\x06 \x01(\x09B\x03\xE0A\x01\x12G\x0A\x06labels\x18\x08 \x03(\x0B22.google.cloud.dataplex.v1.DataTaxonomy.LabelsEntryB\x03\xE0A\x01\x12\x1C\x0A\x0Fattribute_count\x18\x09 \x01(\x05B\x03\xE0A\x03\x12\x0C\x0A\x04etag\x18\x0A \x01(\x09\x12\x18\x0A\x0Bclass_count\x18\x0B \x01(\x05B\x03\xE0A\x03\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:v\x18\x01\xEAAq\x0A\$dataplex.googleapis.com/DataTaxonomy\x12Iprojects/{project}/locations/{location}/dataTaxonomies/{data_taxonomy_id}\"\x96\x06\x0A\x0DDataAttribute\x12;\x0A\x04name\x18\x01 \x01(\x09B-\xE0A\x03\xFAA'\x0A%dataplex.googleapis.com/DataAttribute\x12\x10\x0A\x03uid\x18\x02 \x01(\x09B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x18\x0A\x0Bdescription\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Cdisplay_name\x18\x06 \x01(\x09B\x03\xE0A\x01\x12H\x0A\x06labels\x18\x07 \x03(\x0B23.google.cloud.dataplex.v1.DataAttribute.LabelsEntryB\x03\xE0A\x01\x12@\x0A\x09parent_id\x18\x08 \x01(\x09B-\xE0A\x01\xFAA'\x0A%dataplex.googleapis.com/DataAttribute\x12\x1C\x0A\x0Fattribute_count\x18\x09 \x01(\x05B\x03\xE0A\x03\x12\x0C\x0A\x04etag\x18\x0A \x01(\x09\x12O\x0A\x14resource_access_spec\x18d \x01(\x0B2,.google.cloud.dataplex.v1.ResourceAccessSpecB\x03\xE0A\x01\x12G\x0A\x10data_access_spec\x18e \x01(\x0B2(.google.cloud.dataplex.v1.DataAccessSpecB\x03\xE0A\x01\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:\x93\x01\x18\x01\xEAA\x8D\x01\x0A%dataplex.googleapis.com/DataAttribute\x12dprojects/{project}/locations/{location}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id}\"\xC9\x06\x0A\x14DataAttributeBinding\x12B\x0A\x04name\x18\x01 \x01(\x09B4\xE0A\x03\xFAA.\x0A,dataplex.googleapis.com/DataAttributeBinding\x12\x10\x0A\x03uid\x18\x02 \x01(\x09B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x18\x0A\x0Bdescription\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Cdisplay_name\x18\x06 \x01(\x09B\x03\xE0A\x01\x12O\x0A\x06labels\x18\x07 \x03(\x0B2:.google.cloud.dataplex.v1.DataAttributeBinding.LabelsEntryB\x03\xE0A\x01\x12\x0C\x0A\x04etag\x18\x08 \x01(\x09\x12\x1A\x0A\x08resource\x18d \x01(\x09B\x06\xE0A\x01\xE0A\x05H\x00\x12A\x0A\x0Aattributes\x18n \x03(\x09B-\xE0A\x01\xFAA'\x0A%dataplex.googleapis.com/DataAttribute\x12G\x0A\x05paths\x18x \x03(\x0B23.google.cloud.dataplex.v1.DataAttributeBinding.PathB\x03\xE0A\x01\x1A\\\x0A\x04Path\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x02\x12A\x0A\x0Aattributes\x18\x02 \x03(\x09B-\xE0A\x01\xFAA'\x0A%dataplex.googleapis.com/DataAttribute\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:\x8F\x01\x18\x01\xEAA\x89\x01\x0A,dataplex.googleapis.com/DataAttributeBinding\x12Yprojects/{project}/locations/{location}/dataAttributeBindings/{data_attribute_binding_id}B\x14\x0A\x12resource_reference\"\xD9\x01\x0A\x19CreateDataTaxonomyRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x1D\x0A\x10data_taxonomy_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12B\x0A\x0Ddata_taxonomy\x18\x03 \x01(\x0B2&.google.cloud.dataplex.v1.DataTaxonomyB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01:\x02\x18\x01\"\xB5\x01\x0A\x19UpdateDataTaxonomyRequest\x124\x0A\x0Bupdate_mask\x18\x01 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12B\x0A\x0Ddata_taxonomy\x18\x02 \x01(\x0B2&.google.cloud.dataplex.v1.DataTaxonomyB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01:\x02\x18\x01\"X\x0A\x16GetDataTaxonomyRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$dataplex.googleapis.com/DataTaxonomy:\x02\x18\x01\"\xB3\x01\x0A\x19ListDataTaxonomiesRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x95\x01\x0A\x1AListDataTaxonomiesResponse\x12?\x0A\x0Fdata_taxonomies\x18\x01 \x03(\x0B2&.google.cloud.dataplex.v1.DataTaxonomy\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"n\x0A\x19DeleteDataTaxonomyRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$dataplex.googleapis.com/DataTaxonomy\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x01:\x02\x18\x01\"\xDC\x01\x0A\x1ACreateDataAttributeRequest\x12<\x0A\x06parent\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$dataplex.googleapis.com/DataTaxonomy\x12\x1E\x0A\x11data_attribute_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12D\x0A\x0Edata_attribute\x18\x03 \x01(\x0B2'.google.cloud.dataplex.v1.DataAttributeB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\xB4\x01\x0A\x1AUpdateDataAttributeRequest\x124\x0A\x0Bupdate_mask\x18\x01 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12D\x0A\x0Edata_attribute\x18\x02 \x01(\x0B2'.google.cloud.dataplex.v1.DataAttributeB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"V\x0A\x17GetDataAttributeRequest\x12;\x0A\x04name\x18\x01 \x01(\x09B-\xE0A\x02\xFAA'\x0A%dataplex.googleapis.com/DataAttribute\"\xB6\x01\x0A\x19ListDataAttributesRequest\x12<\x0A\x06parent\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$dataplex.googleapis.com/DataTaxonomy\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x96\x01\x0A\x1AListDataAttributesResponse\x12@\x0A\x0Fdata_attributes\x18\x01 \x03(\x0B2'.google.cloud.dataplex.v1.DataAttribute\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"l\x0A\x1ADeleteDataAttributeRequest\x12;\x0A\x04name\x18\x01 \x01(\x09B-\xE0A\x02\xFAA'\x0A%dataplex.googleapis.com/DataAttribute\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x01\"\xF7\x01\x0A!CreateDataAttributeBindingRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12&\x0A\x19data_attribute_binding_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12S\x0A\x16data_attribute_binding\x18\x03 \x01(\x0B2..google.cloud.dataplex.v1.DataAttributeBindingB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\xCA\x01\x0A!UpdateDataAttributeBindingRequest\x124\x0A\x0Bupdate_mask\x18\x01 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12S\x0A\x16data_attribute_binding\x18\x02 \x01(\x0B2..google.cloud.dataplex.v1.DataAttributeBindingB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"d\x0A\x1EGetDataAttributeBindingRequest\x12B\x0A\x04name\x18\x01 \x01(\x09B4\xE0A\x02\xFAA.\x0A,dataplex.googleapis.com/DataAttributeBinding\"\xBA\x01\x0A ListDataAttributeBindingsRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\xAC\x01\x0A!ListDataAttributeBindingsResponse\x12O\x0A\x17data_attribute_bindings\x18\x01 \x03(\x0B2..google.cloud.dataplex.v1.DataAttributeBinding\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"z\x0A!DeleteDataAttributeBindingRequest\x12B\x0A\x04name\x18\x01 \x01(\x09B4\xE0A\x02\xFAA.\x0A,dataplex.googleapis.com/DataAttributeBinding\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x022\xF0\x1D\x0A\x13DataTaxonomyService\x12\x83\x02\x0A\x12CreateDataTaxonomy\x123.google.cloud.dataplex.v1.CreateDataTaxonomyRequest\x1A\x1D.google.longrunning.Operation\"\x98\x01\x88\x02\x01\xCAA!\x0A\x0CDataTaxonomy\x12\x11OperationMetadata\xDAA%parent,data_taxonomy,data_taxonomy_id\x82\xD3\xE4\x93\x02C\"2/v1/{parent=projects/*/locations/*}/dataTaxonomies:\x0Ddata_taxonomy\x12\x85\x02\x0A\x12UpdateDataTaxonomy\x123.google.cloud.dataplex.v1.UpdateDataTaxonomyRequest\x1A\x1D.google.longrunning.Operation\"\x9A\x01\x88\x02\x01\xCAA!\x0A\x0CDataTaxonomy\x12\x11OperationMetadata\xDAA\x19data_taxonomy,update_mask\x82\xD3\xE4\x93\x02Q2@/v1/{data_taxonomy.name=projects/*/locations/*/dataTaxonomies/*}:\x0Ddata_taxonomy\x12\xDB\x01\x0A\x12DeleteDataTaxonomy\x123.google.cloud.dataplex.v1.DeleteDataTaxonomyRequest\x1A\x1D.google.longrunning.Operation\"q\x88\x02\x01\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x024*2/v1/{name=projects/*/locations/*/dataTaxonomies/*}\x12\xC7\x01\x0A\x12ListDataTaxonomies\x123.google.cloud.dataplex.v1.ListDataTaxonomiesRequest\x1A4.google.cloud.dataplex.v1.ListDataTaxonomiesResponse\"F\x88\x02\x01\xDAA\x06parent\x82\xD3\xE4\x93\x024\x122/v1/{parent=projects/*/locations/*}/dataTaxonomies\x12\xB1\x01\x0A\x0FGetDataTaxonomy\x120.google.cloud.dataplex.v1.GetDataTaxonomyRequest\x1A&.google.cloud.dataplex.v1.DataTaxonomy\"D\x88\x02\x01\xDAA\x04name\x82\xD3\xE4\x93\x024\x122/v1/{name=projects/*/locations/*/dataTaxonomies/*}\x12\xBD\x02\x0A\x1ACreateDataAttributeBinding\x12;.google.cloud.dataplex.v1.CreateDataAttributeBindingRequest\x1A\x1D.google.longrunning.Operation\"\xC2\x01\x88\x02\x01\xCAA)\x0A\x14DataAttributeBinding\x12\x11OperationMetadata\xDAA7parent,data_attribute_binding,data_attribute_binding_id\x82\xD3\xE4\x93\x02S\"9/v1/{parent=projects/*/locations/*}/dataAttributeBindings:\x16data_attribute_binding\x12\xBF\x02\x0A\x1AUpdateDataAttributeBinding\x12;.google.cloud.dataplex.v1.UpdateDataAttributeBindingRequest\x1A\x1D.google.longrunning.Operation\"\xC4\x01\x88\x02\x01\xCAA)\x0A\x14DataAttributeBinding\x12\x11OperationMetadata\xDAA\"data_attribute_binding,update_mask\x82\xD3\xE4\x93\x02j2P/v1/{data_attribute_binding.name=projects/*/locations/*/dataAttributeBindings/*}:\x16data_attribute_binding\x12\xF2\x01\x0A\x1ADeleteDataAttributeBinding\x12;.google.cloud.dataplex.v1.DeleteDataAttributeBindingRequest\x1A\x1D.google.longrunning.Operation\"x\x88\x02\x01\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x02;*9/v1/{name=projects/*/locations/*/dataAttributeBindings/*}\x12\xE3\x01\x0A\x19ListDataAttributeBindings\x12:.google.cloud.dataplex.v1.ListDataAttributeBindingsRequest\x1A;.google.cloud.dataplex.v1.ListDataAttributeBindingsResponse\"M\x88\x02\x01\xDAA\x06parent\x82\xD3\xE4\x93\x02;\x129/v1/{parent=projects/*/locations/*}/dataAttributeBindings\x12\xD0\x01\x0A\x17GetDataAttributeBinding\x128.google.cloud.dataplex.v1.GetDataAttributeBindingRequest\x1A..google.cloud.dataplex.v1.DataAttributeBinding\"K\x88\x02\x01\xDAA\x04name\x82\xD3\xE4\x93\x02;\x129/v1/{name=projects/*/locations/*/dataAttributeBindings/*}\x12\x96\x02\x0A\x13CreateDataAttribute\x124.google.cloud.dataplex.v1.CreateDataAttributeRequest\x1A\x1D.google.longrunning.Operation\"\xA9\x01\x88\x02\x01\xCAA\"\x0A\x0DDataAttribute\x12\x11OperationMetadata\xDAA'parent,data_attribute,data_attribute_id\x82\xD3\xE4\x93\x02Q\"?/v1/{parent=projects/*/locations/*/dataTaxonomies/*}/attributes:\x0Edata_attribute\x12\x98\x02\x0A\x13UpdateDataAttribute\x124.google.cloud.dataplex.v1.UpdateDataAttributeRequest\x1A\x1D.google.longrunning.Operation\"\xAB\x01\x88\x02\x01\xCAA\"\x0A\x0DDataAttribute\x12\x11OperationMetadata\xDAA\x1Adata_attribute,update_mask\x82\xD3\xE4\x93\x02`2N/v1/{data_attribute.name=projects/*/locations/*/dataTaxonomies/*/attributes/*}:\x0Edata_attribute\x12\xEA\x01\x0A\x13DeleteDataAttribute\x124.google.cloud.dataplex.v1.DeleteDataAttributeRequest\x1A\x1D.google.longrunning.Operation\"~\x88\x02\x01\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x02A*?/v1/{name=projects/*/locations/*/dataTaxonomies/*/attributes/*}\x12\xD4\x01\x0A\x12ListDataAttributes\x123.google.cloud.dataplex.v1.ListDataAttributesRequest\x1A4.google.cloud.dataplex.v1.ListDataAttributesResponse\"S\x88\x02\x01\xDAA\x06parent\x82\xD3\xE4\x93\x02A\x12?/v1/{parent=projects/*/locations/*/dataTaxonomies/*}/attributes\x12\xC1\x01\x0A\x10GetDataAttribute\x121.google.cloud.dataplex.v1.GetDataAttributeRequest\x1A'.google.cloud.dataplex.v1.DataAttribute\"Q\x88\x02\x01\xDAA\x04name\x82\xD3\xE4\x93\x02A\x12?/v1/{name=projects/*/locations/*/dataTaxonomies/*/attributes/*}\x1A\x82\x01\x88\x02\x01\xCAA\x17dataplex.googleapis.com\xD2Abhttps://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/dataplex.read-writeBm\x0A\x1Ccom.google.cloud.dataplex.v1B\x11DataTaxonomyProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" , true); static::$is_initialized = true; diff --git a/Dataplex/metadata/V1/Datascans.php b/Dataplex/metadata/V1/Datascans.php index 7cb00f6a9c79..6682172bae2e 100644 --- a/Dataplex/metadata/V1/Datascans.php +++ b/Dataplex/metadata/V1/Datascans.php @@ -31,7 +31,7 @@ public static function initOnce() { \GPBMetadata\Google\Protobuf\FieldMask::initOnce(); \GPBMetadata\Google\Protobuf\Timestamp::initOnce(); $pool->internalAddGeneratedFile( - "\x0A\x9B<\x0A(google/cloud/dataplex/v1/datascans.proto\x12\x18google.cloud.dataplex.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x1Bgoogle/api/field_info.proto\x1A\x19google/api/resource.proto\x1A-google/cloud/dataplex/v1/data_discovery.proto\x1A1google/cloud/dataplex/v1/data_documentation.proto\x1A+google/cloud/dataplex/v1/data_profile.proto\x1A+google/cloud/dataplex/v1/data_quality.proto\x1A)google/cloud/dataplex/v1/processing.proto\x1A(google/cloud/dataplex/v1/resources.proto\x1A&google/cloud/dataplex/v1/service.proto\x1A#google/longrunning/operations.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"\xC5\x01\x0A\x15CreateDataScanRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12:\x0A\x09data_scan\x18\x02 \x01(\x0B2\".google.cloud.dataplex.v1.DataScanB\x03\xE0A\x02\x12\x19\x0A\x0Cdata_scan_id\x18\x03 \x01(\x09B\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\xA5\x01\x0A\x15UpdateDataScanRequest\x12:\x0A\x09data_scan\x18\x01 \x01(\x0B2\".google.cloud.dataplex.v1.DataScanB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x01\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"c\x0A\x15DeleteDataScanRequest\x126\x0A\x04name\x18\x01 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/DataScan\x12\x12\x0A\x05force\x18\x02 \x01(\x08B\x03\xE0A\x01\"\xDF\x01\x0A\x12GetDataScanRequest\x126\x0A\x04name\x18\x01 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/DataScan\x12L\x0A\x04view\x18\x02 \x01(\x0E29.google.cloud.dataplex.v1.GetDataScanRequest.DataScanViewB\x03\xE0A\x01\"C\x0A\x0CDataScanView\x12\x1E\x0A\x1ADATA_SCAN_VIEW_UNSPECIFIED\x10\x00\x12\x09\x0A\x05BASIC\x10\x01\x12\x08\x0A\x04FULL\x10\x0A\"\xAE\x01\x0A\x14ListDataScansRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"}\x0A\x15ListDataScansResponse\x126\x0A\x0Adata_scans\x18\x01 \x03(\x0B2\".google.cloud.dataplex.v1.DataScan\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x13\x0A\x0Bunreachable\x18\x03 \x03(\x09\"L\x0A\x12RunDataScanRequest\x126\x0A\x04name\x18\x01 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/DataScan\"I\x0A\x13RunDataScanResponse\x122\x0A\x03job\x18\x01 \x01(\x0B2%.google.cloud.dataplex.v1.DataScanJob\"\xF2\x01\x0A\x15GetDataScanJobRequest\x129\x0A\x04name\x18\x01 \x01(\x09B+\xE0A\x02\xFAA%\x0A#dataplex.googleapis.com/DataScanJob\x12R\x0A\x04view\x18\x02 \x01(\x0E2?.google.cloud.dataplex.v1.GetDataScanJobRequest.DataScanJobViewB\x03\xE0A\x01\"J\x0A\x0FDataScanJobView\x12\"\x0A\x1EDATA_SCAN_JOB_VIEW_UNSPECIFIED\x10\x00\x12\x09\x0A\x05BASIC\x10\x01\x12\x08\x0A\x04FULL\x10\x0A\"\x99\x01\x0A\x17ListDataScanJobsRequest\x128\x0A\x06parent\x18\x01 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/DataScan\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\"r\x0A\x18ListDataScanJobsResponse\x12=\x0A\x0Edata_scan_jobs\x18\x01 \x03(\x0B2%.google.cloud.dataplex.v1.DataScanJob\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"4\x0A\x1FGenerateDataQualityRulesRequest\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x02\"[\x0A GenerateDataQualityRulesResponse\x127\x0A\x04rule\x18\x01 \x03(\x0B2).google.cloud.dataplex.v1.DataQualityRule\"\xDB\x0D\x0A\x08DataScan\x12\x14\x0A\x04name\x18\x01 \x01(\x09B\x06\xE0A\x03\xE0A\x08\x12\x18\x0A\x03uid\x18\x02 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x12\x18\x0A\x0Bdescription\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Cdisplay_name\x18\x04 \x01(\x09B\x03\xE0A\x01\x12C\x0A\x06labels\x18\x05 \x03(\x0B2..google.cloud.dataplex.v1.DataScan.LabelsEntryB\x03\xE0A\x01\x123\x0A\x05state\x18\x06 \x01(\x0E2\x1F.google.cloud.dataplex.v1.StateB\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x07 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x08 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x127\x0A\x04data\x18\x09 \x01(\x0B2\$.google.cloud.dataplex.v1.DataSourceB\x03\xE0A\x02\x12M\x0A\x0Eexecution_spec\x18\x0A \x01(\x0B20.google.cloud.dataplex.v1.DataScan.ExecutionSpecB\x03\xE0A\x01\x12Q\x0A\x10execution_status\x18\x0B \x01(\x0B22.google.cloud.dataplex.v1.DataScan.ExecutionStatusB\x03\xE0A\x03\x129\x0A\x04type\x18\x0C \x01(\x0E2&.google.cloud.dataplex.v1.DataScanTypeB\x03\xE0A\x03\x12F\x0A\x11data_quality_spec\x18d \x01(\x0B2).google.cloud.dataplex.v1.DataQualitySpecH\x00\x12F\x0A\x11data_profile_spec\x18e \x01(\x0B2).google.cloud.dataplex.v1.DataProfileSpecH\x00\x12J\x0A\x13data_discovery_spec\x18f \x01(\x0B2+.google.cloud.dataplex.v1.DataDiscoverySpecH\x00\x12R\x0A\x17data_documentation_spec\x18g \x01(\x0B2/.google.cloud.dataplex.v1.DataDocumentationSpecH\x00\x12P\x0A\x13data_quality_result\x18\xC8\x01 \x01(\x0B2+.google.cloud.dataplex.v1.DataQualityResultB\x03\xE0A\x03H\x01\x12P\x0A\x13data_profile_result\x18\xC9\x01 \x01(\x0B2+.google.cloud.dataplex.v1.DataProfileResultB\x03\xE0A\x03H\x01\x12T\x0A\x15data_discovery_result\x18\xCA\x01 \x01(\x0B2-.google.cloud.dataplex.v1.DataDiscoveryResultB\x03\xE0A\x03H\x01\x12\\\x0A\x19data_documentation_result\x18\xCB\x01 \x01(\x0B21.google.cloud.dataplex.v1.DataDocumentationResultB\x03\xE0A\x03H\x01\x1Am\x0A\x0DExecutionSpec\x127\x0A\x07trigger\x18\x01 \x01(\x0B2!.google.cloud.dataplex.v1.TriggerB\x03\xE0A\x01\x12\x14\x0A\x05field\x18d \x01(\x09B\x03\xE0A\x05H\x00B\x0D\x0A\x0Bincremental\x1A\xD0\x01\x0A\x0FExecutionStatus\x12>\x0A\x15latest_job_start_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\x12<\x0A\x13latest_job_end_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\x12?\x0A\x16latest_job_create_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:c\xEAA`\x0A dataplex.googleapis.com/DataScan\x12\xDAA\x06parent\x82\xD3\xE4\x93\x02/\x12-/v1/{parent=projects/*/locations/*}/dataScans\x12\xAF\x01\x0A\x0BRunDataScan\x12,.google.cloud.dataplex.v1.RunDataScanRequest\x1A-.google.cloud.dataplex.v1.RunDataScanResponse\"C\xDAA\x04name\x82\xD3\xE4\x93\x026\"1/v1/{name=projects/*/locations/*/dataScans/*}:run:\x01*\x12\xAD\x01\x0A\x0EGetDataScanJob\x12/.google.cloud.dataplex.v1.GetDataScanJobRequest\x1A%.google.cloud.dataplex.v1.DataScanJob\"C\xDAA\x04name\x82\xD3\xE4\x93\x026\x124/v1/{name=projects/*/locations/*/dataScans/*/jobs/*}\x12\xC0\x01\x0A\x10ListDataScanJobs\x121.google.cloud.dataplex.v1.ListDataScanJobsRequest\x1A2.google.cloud.dataplex.v1.ListDataScanJobsResponse\"E\xDAA\x06parent\x82\xD3\xE4\x93\x026\x124/v1/{parent=projects/*/locations/*/dataScans/*}/jobs\x12\xC1\x02\x0A\x18GenerateDataQualityRules\x129.google.cloud.dataplex.v1.GenerateDataQualityRulesRequest\x1A:.google.cloud.dataplex.v1.GenerateDataQualityRulesResponse\"\xAD\x01\xDAA\x04name\x82\xD3\xE4\x93\x02\x9F\x01\"F/v1/{name=projects/*/locations/*/dataScans/*}:generateDataQualityRules:\x01*ZR\"M/v1/{name=projects/*/locations/*/dataScans/*/jobs/*}:generateDataQualityRules:\x01*\x1AK\xCAA\x17dataplex.googleapis.com\xD2A.https://www.googleapis.com/auth/cloud-platformBj\x0A\x1Ccom.google.cloud.dataplex.v1B\x0EDataScansProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" + "\x0A\xA5D\x0A(google/cloud/dataplex/v1/datascans.proto\x12\x18google.cloud.dataplex.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x1Bgoogle/api/field_info.proto\x1A\x19google/api/resource.proto\x1A-google/cloud/dataplex/v1/data_discovery.proto\x1A1google/cloud/dataplex/v1/data_documentation.proto\x1A+google/cloud/dataplex/v1/data_profile.proto\x1A+google/cloud/dataplex/v1/data_quality.proto\x1A)google/cloud/dataplex/v1/processing.proto\x1A(google/cloud/dataplex/v1/resources.proto\x1A&google/cloud/dataplex/v1/service.proto\x1A#google/longrunning/operations.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"\xC5\x01\x0A\x15CreateDataScanRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12:\x0A\x09data_scan\x18\x02 \x01(\x0B2\".google.cloud.dataplex.v1.DataScanB\x03\xE0A\x02\x12\x19\x0A\x0Cdata_scan_id\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\xA5\x01\x0A\x15UpdateDataScanRequest\x12:\x0A\x09data_scan\x18\x01 \x01(\x0B2\".google.cloud.dataplex.v1.DataScanB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x01\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"c\x0A\x15DeleteDataScanRequest\x126\x0A\x04name\x18\x01 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/DataScan\x12\x12\x0A\x05force\x18\x02 \x01(\x08B\x03\xE0A\x01\"\xDF\x01\x0A\x12GetDataScanRequest\x126\x0A\x04name\x18\x01 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/DataScan\x12L\x0A\x04view\x18\x02 \x01(\x0E29.google.cloud.dataplex.v1.GetDataScanRequest.DataScanViewB\x03\xE0A\x01\"C\x0A\x0CDataScanView\x12\x1E\x0A\x1ADATA_SCAN_VIEW_UNSPECIFIED\x10\x00\x12\x09\x0A\x05BASIC\x10\x01\x12\x08\x0A\x04FULL\x10\x0A\"\xAE\x01\x0A\x14ListDataScansRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"}\x0A\x15ListDataScansResponse\x126\x0A\x0Adata_scans\x18\x01 \x03(\x0B2\".google.cloud.dataplex.v1.DataScan\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x13\x0A\x0Bunreachable\x18\x03 \x03(\x09\"L\x0A\x12RunDataScanRequest\x126\x0A\x04name\x18\x01 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/DataScan\"I\x0A\x13RunDataScanResponse\x122\x0A\x03job\x18\x01 \x01(\x0B2%.google.cloud.dataplex.v1.DataScanJob\"\xF2\x01\x0A\x15GetDataScanJobRequest\x129\x0A\x04name\x18\x01 \x01(\x09B+\xE0A\x02\xFAA%\x0A#dataplex.googleapis.com/DataScanJob\x12R\x0A\x04view\x18\x02 \x01(\x0E2?.google.cloud.dataplex.v1.GetDataScanJobRequest.DataScanJobViewB\x03\xE0A\x01\"J\x0A\x0FDataScanJobView\x12\"\x0A\x1EDATA_SCAN_JOB_VIEW_UNSPECIFIED\x10\x00\x12\x09\x0A\x05BASIC\x10\x01\x12\x08\x0A\x04FULL\x10\x0A\"\x99\x01\x0A\x17ListDataScanJobsRequest\x128\x0A\x06parent\x18\x01 \x01(\x09B(\xE0A\x02\xFAA\"\x0A dataplex.googleapis.com/DataScan\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\"r\x0A\x18ListDataScanJobsResponse\x12=\x0A\x0Edata_scan_jobs\x18\x01 \x03(\x0B2%.google.cloud.dataplex.v1.DataScanJob\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"U\x0A\x18CancelDataScanJobRequest\x129\x0A\x04name\x18\x01 \x01(\x09B+\xE0A\x02\xFAA%\x0A#dataplex.googleapis.com/DataScanJob\"\x1B\x0A\x19CancelDataScanJobResponse\"4\x0A\x1FGenerateDataQualityRulesRequest\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x02\"[\x0A GenerateDataQualityRulesResponse\x127\x0A\x04rule\x18\x01 \x03(\x0B2).google.cloud.dataplex.v1.DataQualityRule\"\xAD\x0E\x0A\x08DataScan\x12\x14\x0A\x04name\x18\x01 \x01(\x09B\x06\xE0A\x03\xE0A\x08\x12\x18\x0A\x03uid\x18\x02 \x01(\x09B\x0B\xE0A\x03\xE2\x8C\xCF\xD7\x08\x02\x08\x01\x12\x18\x0A\x0Bdescription\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Cdisplay_name\x18\x04 \x01(\x09B\x03\xE0A\x01\x12C\x0A\x06labels\x18\x05 \x03(\x0B2..google.cloud.dataplex.v1.DataScan.LabelsEntryB\x03\xE0A\x01\x123\x0A\x05state\x18\x06 \x01(\x0E2\x1F.google.cloud.dataplex.v1.StateB\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x07 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x08 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x127\x0A\x04data\x18\x09 \x01(\x0B2\$.google.cloud.dataplex.v1.DataSourceB\x03\xE0A\x02\x12M\x0A\x0Eexecution_spec\x18\x0A \x01(\x0B20.google.cloud.dataplex.v1.DataScan.ExecutionSpecB\x03\xE0A\x01\x12Q\x0A\x10execution_status\x18\x0B \x01(\x0B22.google.cloud.dataplex.v1.DataScan.ExecutionStatusB\x03\xE0A\x03\x129\x0A\x04type\x18\x0C \x01(\x0E2&.google.cloud.dataplex.v1.DataScanTypeB\x03\xE0A\x03\x12F\x0A\x11data_quality_spec\x18d \x01(\x0B2).google.cloud.dataplex.v1.DataQualitySpecH\x00\x12F\x0A\x11data_profile_spec\x18e \x01(\x0B2).google.cloud.dataplex.v1.DataProfileSpecH\x00\x12J\x0A\x13data_discovery_spec\x18f \x01(\x0B2+.google.cloud.dataplex.v1.DataDiscoverySpecH\x00\x12R\x0A\x17data_documentation_spec\x18g \x01(\x0B2/.google.cloud.dataplex.v1.DataDocumentationSpecH\x00\x12P\x0A\x13data_quality_result\x18\xC8\x01 \x01(\x0B2+.google.cloud.dataplex.v1.DataQualityResultB\x03\xE0A\x03H\x01\x12P\x0A\x13data_profile_result\x18\xC9\x01 \x01(\x0B2+.google.cloud.dataplex.v1.DataProfileResultB\x03\xE0A\x03H\x01\x12T\x0A\x15data_discovery_result\x18\xCA\x01 \x01(\x0B2-.google.cloud.dataplex.v1.DataDiscoveryResultB\x03\xE0A\x03H\x01\x12\\\x0A\x19data_documentation_result\x18\xCB\x01 \x01(\x0B21.google.cloud.dataplex.v1.DataDocumentationResultB\x03\xE0A\x03H\x01\x12P\x0A\x12execution_identity\x18\xAC\x02 \x01(\x0B2+.google.cloud.dataplex.v1.ExecutionIdentityB\x06\xE0A\x01\xE0A\x05\x1Am\x0A\x0DExecutionSpec\x127\x0A\x07trigger\x18\x01 \x01(\x0B2!.google.cloud.dataplex.v1.TriggerB\x03\xE0A\x01\x12\x14\x0A\x05field\x18d \x01(\x09B\x03\xE0A\x05H\x00B\x0D\x0A\x0Bincremental\x1A\xD0\x01\x0A\x0FExecutionStatus\x12>\x0A\x15latest_job_start_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\x12<\x0A\x13latest_job_end_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\x12?\x0A\x16latest_job_create_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:c\xEAA`\x0A dataplex.googleapis.com/DataScan\x12\xDAA\x06parent\x82\xD3\xE4\x93\x02/\x12-/v1/{parent=projects/*/locations/*}/dataScans\x12\xAF\x01\x0A\x0BRunDataScan\x12,.google.cloud.dataplex.v1.RunDataScanRequest\x1A-.google.cloud.dataplex.v1.RunDataScanResponse\"C\xDAA\x04name\x82\xD3\xE4\x93\x026\"1/v1/{name=projects/*/locations/*/dataScans/*}:run:\x01*\x12\xAD\x01\x0A\x0EGetDataScanJob\x12/.google.cloud.dataplex.v1.GetDataScanJobRequest\x1A%.google.cloud.dataplex.v1.DataScanJob\"C\xDAA\x04name\x82\xD3\xE4\x93\x026\x124/v1/{name=projects/*/locations/*/dataScans/*/jobs/*}\x12\xC0\x01\x0A\x10ListDataScanJobs\x121.google.cloud.dataplex.v1.ListDataScanJobsRequest\x1A2.google.cloud.dataplex.v1.ListDataScanJobsResponse\"E\xDAA\x06parent\x82\xD3\xE4\x93\x026\x124/v1/{parent=projects/*/locations/*/dataScans/*}/jobs\x12\xCB\x01\x0A\x11CancelDataScanJob\x122.google.cloud.dataplex.v1.CancelDataScanJobRequest\x1A3.google.cloud.dataplex.v1.CancelDataScanJobResponse\"M\xDAA\x04name\x82\xD3\xE4\x93\x02@\";/v1/{name=projects/*/locations/*/dataScans/*/jobs/*}:cancel:\x01*\x12\xC1\x02\x0A\x18GenerateDataQualityRules\x129.google.cloud.dataplex.v1.GenerateDataQualityRulesRequest\x1A:.google.cloud.dataplex.v1.GenerateDataQualityRulesResponse\"\xAD\x01\xDAA\x04name\x82\xD3\xE4\x93\x02\x9F\x01\"F/v1/{name=projects/*/locations/*/dataScans/*}:generateDataQualityRules:\x01*ZR\"M/v1/{name=projects/*/locations/*/dataScans/*/jobs/*}:generateDataQualityRules:\x01*\x1A\xEB\x01\xCAA\x17dataplex.googleapis.com\xD2A\xCD\x01https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloud-platform.read-only,https://www.googleapis.com/auth/dataplex.read-write,https://www.googleapis.com/auth/dataplex.readonlyBj\x0A\x1Ccom.google.cloud.dataplex.v1B\x0EDataScansProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" , true); static::$is_initialized = true; diff --git a/Dataplex/metadata/V1/Logs.php b/Dataplex/metadata/V1/Logs.php index 9199a1eb18ed..a58a4208c282 100644 --- a/Dataplex/metadata/V1/Logs.php +++ b/Dataplex/metadata/V1/Logs.php @@ -20,7 +20,7 @@ public static function initOnce() { \GPBMetadata\Google\Protobuf\Duration::initOnce(); \GPBMetadata\Google\Protobuf\Timestamp::initOnce(); $pool->internalAddGeneratedFile( - "\x0A\xA4A\x0A#google/cloud/dataplex/v1/logs.proto\x12\x18google.cloud.dataplex.v1\x1A\x19google/api/resource.proto\x1A/google/cloud/dataplex/v1/datascans_common.proto\x1A\x1Egoogle/protobuf/duration.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"\x9D\x0C\x0A\x0EDiscoveryEvent\x12\x0F\x0A\x07message\x18\x01 \x01(\x09\x12\x0F\x0A\x07lake_id\x18\x02 \x01(\x09\x12\x0F\x0A\x07zone_id\x18\x03 \x01(\x09\x12\x10\x0A\x08asset_id\x18\x04 \x01(\x09\x12\x15\x0A\x0Ddata_location\x18\x05 \x01(\x09\x12\x13\x0A\x0Bdatascan_id\x18\x06 \x01(\x09\x12@\x0A\x04type\x18\x0A \x01(\x0E22.google.cloud.dataplex.v1.DiscoveryEvent.EventType\x12H\x0A\x06config\x18\x14 \x01(\x0B26.google.cloud.dataplex.v1.DiscoveryEvent.ConfigDetailsH\x00\x12H\x0A\x06entity\x18\x15 \x01(\x0B26.google.cloud.dataplex.v1.DiscoveryEvent.EntityDetailsH\x00\x12N\x0A\x09partition\x18\x16 \x01(\x0B29.google.cloud.dataplex.v1.DiscoveryEvent.PartitionDetailsH\x00\x12H\x0A\x06action\x18\x17 \x01(\x0B26.google.cloud.dataplex.v1.DiscoveryEvent.ActionDetailsH\x00\x12F\x0A\x05table\x18\x18 \x01(\x0B25.google.cloud.dataplex.v1.DiscoveryEvent.TableDetailsH\x00\x1A\x9E\x01\x0A\x0DConfigDetails\x12Z\x0A\x0Aparameters\x18\x01 \x03(\x0B2F.google.cloud.dataplex.v1.DiscoveryEvent.ConfigDetails.ParametersEntry\x1A1\x0A\x0FParametersEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\x1Ab\x0A\x0DEntityDetails\x12\x0E\x0A\x06entity\x18\x01 \x01(\x09\x12A\x0A\x04type\x18\x02 \x01(\x0E23.google.cloud.dataplex.v1.DiscoveryEvent.EntityType\x1A_\x0A\x0CTableDetails\x12\x0D\x0A\x05table\x18\x01 \x01(\x09\x12@\x0A\x04type\x18\x02 \x01(\x0E22.google.cloud.dataplex.v1.DiscoveryEvent.TableType\x1A\x98\x01\x0A\x10PartitionDetails\x12\x11\x0A\x09partition\x18\x01 \x01(\x09\x12\x0E\x0A\x06entity\x18\x02 \x01(\x09\x12A\x0A\x04type\x18\x03 \x01(\x0E23.google.cloud.dataplex.v1.DiscoveryEvent.EntityType\x12\x1E\x0A\x16sampled_data_locations\x18\x04 \x03(\x09\x1A,\x0A\x0DActionDetails\x12\x0C\x0A\x04type\x18\x01 \x01(\x09\x12\x0D\x0A\x05issue\x18\x02 \x01(\x09\"\x82\x02\x0A\x09EventType\x12\x1A\x0A\x16EVENT_TYPE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06CONFIG\x10\x01\x12\x12\x0A\x0EENTITY_CREATED\x10\x02\x12\x12\x0A\x0EENTITY_UPDATED\x10\x03\x12\x12\x0A\x0EENTITY_DELETED\x10\x04\x12\x15\x0A\x11PARTITION_CREATED\x10\x05\x12\x15\x0A\x11PARTITION_UPDATED\x10\x06\x12\x15\x0A\x11PARTITION_DELETED\x10\x07\x12\x13\x0A\x0FTABLE_PUBLISHED\x10\x0A\x12\x11\x0A\x0DTABLE_UPDATED\x10\x0B\x12\x11\x0A\x0DTABLE_IGNORED\x10\x0C\x12\x11\x0A\x0DTABLE_DELETED\x10\x0D\"A\x0A\x0AEntityType\x12\x1B\x0A\x17ENTITY_TYPE_UNSPECIFIED\x10\x00\x12\x09\x0A\x05TABLE\x10\x01\x12\x0B\x0A\x07FILESET\x10\x02\"`\x0A\x09TableType\x12\x1A\x0A\x16TABLE_TYPE_UNSPECIFIED\x10\x00\x12\x12\x0A\x0EEXTERNAL_TABLE\x10\x01\x12\x11\x0A\x0DBIGLAKE_TABLE\x10\x02\x12\x10\x0A\x0COBJECT_TABLE\x10\x03B\x09\x0A\x07details\"\xC5\x05\x0A\x08JobEvent\x12\x0F\x0A\x07message\x18\x01 \x01(\x09\x12\x0E\x0A\x06job_id\x18\x02 \x01(\x09\x12.\x0A\x0Astart_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12,\x0A\x08end_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.Timestamp\x127\x0A\x05state\x18\x05 \x01(\x0E2(.google.cloud.dataplex.v1.JobEvent.State\x12\x0F\x0A\x07retries\x18\x06 \x01(\x05\x125\x0A\x04type\x18\x07 \x01(\x0E2'.google.cloud.dataplex.v1.JobEvent.Type\x12;\x0A\x07service\x18\x08 \x01(\x0E2*.google.cloud.dataplex.v1.JobEvent.Service\x12\x13\x0A\x0Bservice_job\x18\x09 \x01(\x09\x12N\x0A\x11execution_trigger\x18\x0B \x01(\x0E23.google.cloud.dataplex.v1.JobEvent.ExecutionTrigger\"5\x0A\x04Type\x12\x14\x0A\x10TYPE_UNSPECIFIED\x10\x00\x12\x09\x0A\x05SPARK\x10\x01\x12\x0C\x0A\x08NOTEBOOK\x10\x02\"U\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09SUCCEEDED\x10\x01\x12\x0A\x0A\x06FAILED\x10\x02\x12\x0D\x0A\x09CANCELLED\x10\x03\x12\x0B\x0A\x07ABORTED\x10\x04\"0\x0A\x07Service\x12\x17\x0A\x13SERVICE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08DATAPROC\x10\x01\"W\x0A\x10ExecutionTrigger\x12!\x0A\x1DEXECUTION_TRIGGER_UNSPECIFIED\x10\x00\x12\x0F\x0A\x0BTASK_CONFIG\x10\x01\x12\x0F\x0A\x0BRUN_REQUEST\x10\x02\"\xBD\x05\x0A\x0CSessionEvent\x12\x0F\x0A\x07message\x18\x01 \x01(\x09\x12\x0F\x0A\x07user_id\x18\x02 \x01(\x09\x12\x12\x0A\x0Asession_id\x18\x03 \x01(\x09\x12>\x0A\x04type\x18\x04 \x01(\x0E20.google.cloud.dataplex.v1.SessionEvent.EventType\x12C\x0A\x05query\x18\x05 \x01(\x0B22.google.cloud.dataplex.v1.SessionEvent.QueryDetailH\x00\x12\x17\x0A\x0Fevent_succeeded\x18\x06 \x01(\x08\x12\x1C\x0A\x14fast_startup_enabled\x18\x07 \x01(\x08\x126\x0A\x13unassigned_duration\x18\x08 \x01(\x0B2\x19.google.protobuf.Duration\x1A\xA3\x02\x0A\x0BQueryDetail\x12\x10\x0A\x08query_id\x18\x01 \x01(\x09\x12\x12\x0A\x0Aquery_text\x18\x02 \x01(\x09\x12I\x0A\x06engine\x18\x03 \x01(\x0E29.google.cloud.dataplex.v1.SessionEvent.QueryDetail.Engine\x12+\x0A\x08duration\x18\x04 \x01(\x0B2\x19.google.protobuf.Duration\x12\x19\x0A\x11result_size_bytes\x18\x05 \x01(\x03\x12\x1C\x0A\x14data_processed_bytes\x18\x06 \x01(\x03\"=\x0A\x06Engine\x12\x16\x0A\x12ENGINE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09SPARK_SQL\x10\x01\x12\x0C\x0A\x08BIGQUERY\x10\x02\"S\x0A\x09EventType\x12\x1A\x0A\x16EVENT_TYPE_UNSPECIFIED\x10\x00\x12\x09\x0A\x05START\x10\x01\x12\x08\x0A\x04STOP\x10\x02\x12\x09\x0A\x05QUERY\x10\x03\x12\x0A\x0A\x06CREATE\x10\x04B\x08\x0A\x06detail\"\xBA\x07\x0A\x0FGovernanceEvent\x12\x0F\x0A\x07message\x18\x01 \x01(\x09\x12G\x0A\x0Aevent_type\x18\x02 \x01(\x0E23.google.cloud.dataplex.v1.GovernanceEvent.EventType\x12E\x0A\x06entity\x18\x03 \x01(\x0B20.google.cloud.dataplex.v1.GovernanceEvent.EntityH\x00\x88\x01\x01\x1A\xD2\x01\x0A\x06Entity\x123\x0A\x06entity\x18\x01 \x01(\x09B#\xFAA \x0A\x1Edataplex.googleapis.com/Entity\x12P\x0A\x0Bentity_type\x18\x02 \x01(\x0E2;.google.cloud.dataplex.v1.GovernanceEvent.Entity.EntityType\"A\x0A\x0AEntityType\x12\x1B\x0A\x17ENTITY_TYPE_UNSPECIFIED\x10\x00\x12\x09\x0A\x05TABLE\x10\x01\x12\x0B\x0A\x07FILESET\x10\x02\"\xA5\x04\x0A\x09EventType\x12\x1A\x0A\x16EVENT_TYPE_UNSPECIFIED\x10\x00\x12\x1E\x0A\x1ARESOURCE_IAM_POLICY_UPDATE\x10\x01\x12\x19\x0A\x15BIGQUERY_TABLE_CREATE\x10\x02\x12\x19\x0A\x15BIGQUERY_TABLE_UPDATE\x10\x03\x12\x19\x0A\x15BIGQUERY_TABLE_DELETE\x10\x04\x12\x1E\x0A\x1ABIGQUERY_CONNECTION_CREATE\x10\x05\x12\x1E\x0A\x1ABIGQUERY_CONNECTION_UPDATE\x10\x06\x12\x1E\x0A\x1ABIGQUERY_CONNECTION_DELETE\x10\x07\x12\x1C\x0A\x18BIGQUERY_TAXONOMY_CREATE\x10\x0A\x12\x1E\x0A\x1ABIGQUERY_POLICY_TAG_CREATE\x10\x0B\x12\x1E\x0A\x1ABIGQUERY_POLICY_TAG_DELETE\x10\x0C\x12&\x0A\"BIGQUERY_POLICY_TAG_SET_IAM_POLICY\x10\x0D\x12\x18\x0A\x14ACCESS_POLICY_UPDATE\x10\x0E\x12%\x0A!GOVERNANCE_RULE_MATCHED_RESOURCES\x10\x0F\x12(\x0A\$GOVERNANCE_RULE_SEARCH_LIMIT_EXCEEDS\x10\x10\x12\x1A\x0A\x16GOVERNANCE_RULE_ERRORS\x10\x11\x12\x1E\x0A\x1AGOVERNANCE_RULE_PROCESSING\x10\x12B\x09\x0A\x07_entity\"\xF3\x13\x0A\x0DDataScanEvent\x12\x13\x0A\x0Bdata_source\x18\x01 \x01(\x09\x12\x0E\x0A\x06job_id\x18\x02 \x01(\x09\x12/\x0A\x0Bcreate_time\x18\x0C \x01(\x0B2\x1A.google.protobuf.Timestamp\x12.\x0A\x0Astart_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12,\x0A\x08end_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12>\x0A\x04type\x18\x05 \x01(\x0E20.google.cloud.dataplex.v1.DataScanEvent.ScanType\x12<\x0A\x05state\x18\x06 \x01(\x0E2-.google.cloud.dataplex.v1.DataScanEvent.State\x12\x0F\x0A\x07message\x18\x07 \x01(\x09\x12\x14\x0A\x0Cspec_version\x18\x08 \x01(\x09\x12@\x0A\x07trigger\x18\x09 \x01(\x0E2/.google.cloud.dataplex.v1.DataScanEvent.Trigger\x12<\x0A\x05scope\x18\x0A \x01(\x0E2-.google.cloud.dataplex.v1.DataScanEvent.Scope\x12Q\x0A\x0Cdata_profile\x18e \x01(\x0B29.google.cloud.dataplex.v1.DataScanEvent.DataProfileResultH\x00\x12Q\x0A\x0Cdata_quality\x18f \x01(\x0B29.google.cloud.dataplex.v1.DataScanEvent.DataQualityResultH\x00\x12b\x0A\x14data_profile_configs\x18\xC9\x01 \x01(\x0B2A.google.cloud.dataplex.v1.DataScanEvent.DataProfileAppliedConfigsH\x01\x12b\x0A\x14data_quality_configs\x18\xCA\x01 \x01(\x0B2A.google.cloud.dataplex.v1.DataScanEvent.DataQualityAppliedConfigsH\x01\x12_\x0A\x18post_scan_actions_result\x18\x0B \x01(\x0B2=.google.cloud.dataplex.v1.DataScanEvent.PostScanActionsResult\x12\\\x0A\x19catalog_publishing_status\x18\x0D \x01(\x0B29.google.cloud.dataplex.v1.DataScanCatalogPublishingStatus\x1A&\x0A\x11DataProfileResult\x12\x11\x0A\x09row_count\x18\x01 \x01(\x03\x1A\x9C\x04\x0A\x11DataQualityResult\x12\x11\x0A\x09row_count\x18\x01 \x01(\x03\x12\x0E\x0A\x06passed\x18\x02 \x01(\x08\x12h\x0A\x10dimension_passed\x18\x03 \x03(\x0B2N.google.cloud.dataplex.v1.DataScanEvent.DataQualityResult.DimensionPassedEntry\x12\x0D\x0A\x05score\x18\x04 \x01(\x02\x12f\x0A\x0Fdimension_score\x18\x05 \x03(\x0B2M.google.cloud.dataplex.v1.DataScanEvent.DataQualityResult.DimensionScoreEntry\x12`\x0A\x0Ccolumn_score\x18\x06 \x03(\x0B2J.google.cloud.dataplex.v1.DataScanEvent.DataQualityResult.ColumnScoreEntry\x1A6\x0A\x14DimensionPassedEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x08:\x028\x01\x1A5\x0A\x13DimensionScoreEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x02:\x028\x01\x1A2\x0A\x10ColumnScoreEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x02:\x028\x01\x1Ap\x0A\x19DataProfileAppliedConfigs\x12\x18\x0A\x10sampling_percent\x18\x01 \x01(\x02\x12\x1A\x0A\x12row_filter_applied\x18\x02 \x01(\x08\x12\x1D\x0A\x15column_filter_applied\x18\x03 \x01(\x08\x1AQ\x0A\x19DataQualityAppliedConfigs\x12\x18\x0A\x10sampling_percent\x18\x01 \x01(\x02\x12\x1A\x0A\x12row_filter_applied\x18\x02 \x01(\x08\x1A\xE6\x02\x0A\x15PostScanActionsResult\x12r\x0A\x16bigquery_export_result\x18\x01 \x01(\x0B2R.google.cloud.dataplex.v1.DataScanEvent.PostScanActionsResult.BigQueryExportResult\x1A\xD8\x01\x0A\x14BigQueryExportResult\x12g\x0A\x05state\x18\x01 \x01(\x0E2X.google.cloud.dataplex.v1.DataScanEvent.PostScanActionsResult.BigQueryExportResult.State\x12\x0F\x0A\x07message\x18\x02 \x01(\x09\"F\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09SUCCEEDED\x10\x01\x12\x0A\x0A\x06FAILED\x10\x02\x12\x0B\x0A\x07SKIPPED\x10\x03\"]\x0A\x08ScanType\x12\x19\x0A\x15SCAN_TYPE_UNSPECIFIED\x10\x00\x12\x10\x0A\x0CDATA_PROFILE\x10\x01\x12\x10\x0A\x0CDATA_QUALITY\x10\x02\x12\x12\x0A\x0EDATA_DISCOVERY\x10\x04\"b\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07STARTED\x10\x01\x12\x0D\x0A\x09SUCCEEDED\x10\x02\x12\x0A\x0A\x06FAILED\x10\x03\x12\x0D\x0A\x09CANCELLED\x10\x04\x12\x0B\x0A\x07CREATED\x10\x05\"M\x0A\x07Trigger\x12\x17\x0A\x13TRIGGER_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09ON_DEMAND\x10\x01\x12\x0C\x0A\x08SCHEDULE\x10\x02\x12\x0C\x0A\x08ONE_TIME\x10\x03\"9\x0A\x05Scope\x12\x15\x0A\x11SCOPE_UNSPECIFIED\x10\x00\x12\x08\x0A\x04FULL\x10\x01\x12\x0F\x0A\x0BINCREMENTAL\x10\x02B\x08\x0A\x06resultB\x10\x0A\x0EappliedConfigs\"\x99\x07\x0A\x19DataQualityScanRuleResult\x12\x0E\x0A\x06job_id\x18\x01 \x01(\x09\x12\x13\x0A\x0Bdata_source\x18\x02 \x01(\x09\x12\x0E\x0A\x06column\x18\x03 \x01(\x09\x12\x11\x0A\x09rule_name\x18\x04 \x01(\x09\x12O\x0A\x09rule_type\x18\x05 \x01(\x0E2<.google.cloud.dataplex.v1.DataQualityScanRuleResult.RuleType\x12Z\x0A\x0Eevalution_type\x18\x06 \x01(\x0E2B.google.cloud.dataplex.v1.DataQualityScanRuleResult.EvaluationType\x12\x16\x0A\x0Erule_dimension\x18\x07 \x01(\x09\x12\x19\x0A\x11threshold_percent\x18\x08 \x01(\x01\x12J\x0A\x06result\x18\x09 \x01(\x0E2:.google.cloud.dataplex.v1.DataQualityScanRuleResult.Result\x12\x1B\x0A\x13evaluated_row_count\x18\x0A \x01(\x03\x12\x18\x0A\x10passed_row_count\x18\x0B \x01(\x03\x12\x16\x0A\x0Enull_row_count\x18\x0C \x01(\x03\x12\x1B\x0A\x13assertion_row_count\x18\x0D \x01(\x03\"\x92\x02\x0A\x08RuleType\x12\x19\x0A\x15RULE_TYPE_UNSPECIFIED\x10\x00\x12\x18\x0A\x14NON_NULL_EXPECTATION\x10\x01\x12\x15\x0A\x11RANGE_EXPECTATION\x10\x02\x12\x15\x0A\x11REGEX_EXPECTATION\x10\x03\x12\x1D\x0A\x19ROW_CONDITION_EXPECTATION\x10\x04\x12\x13\x0A\x0FSET_EXPECTATION\x10\x05\x12\x1F\x0A\x1BSTATISTIC_RANGE_EXPECTATION\x10\x06\x12\x1F\x0A\x1BTABLE_CONDITION_EXPECTATION\x10\x07\x12\x1A\x0A\x16UNIQUENESS_EXPECTATION\x10\x08\x12\x11\x0A\x0DSQL_ASSERTION\x10\x09\"M\x0A\x0EEvaluationType\x12\x1F\x0A\x1BEVALUATION_TYPE_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07PER_ROW\x10\x01\x12\x0D\x0A\x09AGGREGATE\x10\x02\"8\x0A\x06Result\x12\x16\x0A\x12RESULT_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06PASSED\x10\x01\x12\x0A\x0A\x06FAILED\x10\x02\"\x9A\x03\x0A\x15BusinessGlossaryEvent\x12\x0F\x0A\x07message\x18\x01 \x01(\x09\x12M\x0A\x0Aevent_type\x18\x02 \x01(\x0E29.google.cloud.dataplex.v1.BusinessGlossaryEvent.EventType\x12\x10\x0A\x08resource\x18\x03 \x01(\x09\"\x8E\x02\x0A\x09EventType\x12\x1A\x0A\x16EVENT_TYPE_UNSPECIFIED\x10\x00\x12\x13\x0A\x0FGLOSSARY_CREATE\x10\x01\x12\x13\x0A\x0FGLOSSARY_UPDATE\x10\x02\x12\x13\x0A\x0FGLOSSARY_DELETE\x10\x03\x12\x1C\x0A\x18GLOSSARY_CATEGORY_CREATE\x10\x04\x12\x1C\x0A\x18GLOSSARY_CATEGORY_UPDATE\x10\x05\x12\x1C\x0A\x18GLOSSARY_CATEGORY_DELETE\x10\x06\x12\x18\x0A\x14GLOSSARY_TERM_CREATE\x10\x07\x12\x18\x0A\x14GLOSSARY_TERM_UPDATE\x10\x08\x12\x18\x0A\x14GLOSSARY_TERM_DELETE\x10\x09\"\xD2\x01\x0A\x0EEntryLinkEvent\x12\x0F\x0A\x07message\x18\x01 \x01(\x09\x12F\x0A\x0Aevent_type\x18\x02 \x01(\x0E22.google.cloud.dataplex.v1.EntryLinkEvent.EventType\x12\x10\x0A\x08resource\x18\x03 \x01(\x09\"U\x0A\x09EventType\x12\x1A\x0A\x16EVENT_TYPE_UNSPECIFIED\x10\x00\x12\x15\x0A\x11ENTRY_LINK_CREATE\x10\x01\x12\x15\x0A\x11ENTRY_LINK_DELETE\x10\x02Be\x0A\x1Ccom.google.cloud.dataplex.v1B\x09LogsProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" + "\x0A\xBCA\x0A#google/cloud/dataplex/v1/logs.proto\x12\x18google.cloud.dataplex.v1\x1A\x19google/api/resource.proto\x1A/google/cloud/dataplex/v1/datascans_common.proto\x1A\x1Egoogle/protobuf/duration.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"\x9D\x0C\x0A\x0EDiscoveryEvent\x12\x0F\x0A\x07message\x18\x01 \x01(\x09\x12\x0F\x0A\x07lake_id\x18\x02 \x01(\x09\x12\x0F\x0A\x07zone_id\x18\x03 \x01(\x09\x12\x10\x0A\x08asset_id\x18\x04 \x01(\x09\x12\x15\x0A\x0Ddata_location\x18\x05 \x01(\x09\x12\x13\x0A\x0Bdatascan_id\x18\x06 \x01(\x09\x12@\x0A\x04type\x18\x0A \x01(\x0E22.google.cloud.dataplex.v1.DiscoveryEvent.EventType\x12H\x0A\x06config\x18\x14 \x01(\x0B26.google.cloud.dataplex.v1.DiscoveryEvent.ConfigDetailsH\x00\x12H\x0A\x06entity\x18\x15 \x01(\x0B26.google.cloud.dataplex.v1.DiscoveryEvent.EntityDetailsH\x00\x12N\x0A\x09partition\x18\x16 \x01(\x0B29.google.cloud.dataplex.v1.DiscoveryEvent.PartitionDetailsH\x00\x12H\x0A\x06action\x18\x17 \x01(\x0B26.google.cloud.dataplex.v1.DiscoveryEvent.ActionDetailsH\x00\x12F\x0A\x05table\x18\x18 \x01(\x0B25.google.cloud.dataplex.v1.DiscoveryEvent.TableDetailsH\x00\x1A\x9E\x01\x0A\x0DConfigDetails\x12Z\x0A\x0Aparameters\x18\x01 \x03(\x0B2F.google.cloud.dataplex.v1.DiscoveryEvent.ConfigDetails.ParametersEntry\x1A1\x0A\x0FParametersEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\x1Ab\x0A\x0DEntityDetails\x12\x0E\x0A\x06entity\x18\x01 \x01(\x09\x12A\x0A\x04type\x18\x02 \x01(\x0E23.google.cloud.dataplex.v1.DiscoveryEvent.EntityType\x1A_\x0A\x0CTableDetails\x12\x0D\x0A\x05table\x18\x01 \x01(\x09\x12@\x0A\x04type\x18\x02 \x01(\x0E22.google.cloud.dataplex.v1.DiscoveryEvent.TableType\x1A\x98\x01\x0A\x10PartitionDetails\x12\x11\x0A\x09partition\x18\x01 \x01(\x09\x12\x0E\x0A\x06entity\x18\x02 \x01(\x09\x12A\x0A\x04type\x18\x03 \x01(\x0E23.google.cloud.dataplex.v1.DiscoveryEvent.EntityType\x12\x1E\x0A\x16sampled_data_locations\x18\x04 \x03(\x09\x1A,\x0A\x0DActionDetails\x12\x0C\x0A\x04type\x18\x01 \x01(\x09\x12\x0D\x0A\x05issue\x18\x02 \x01(\x09\"\x82\x02\x0A\x09EventType\x12\x1A\x0A\x16EVENT_TYPE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06CONFIG\x10\x01\x12\x12\x0A\x0EENTITY_CREATED\x10\x02\x12\x12\x0A\x0EENTITY_UPDATED\x10\x03\x12\x12\x0A\x0EENTITY_DELETED\x10\x04\x12\x15\x0A\x11PARTITION_CREATED\x10\x05\x12\x15\x0A\x11PARTITION_UPDATED\x10\x06\x12\x15\x0A\x11PARTITION_DELETED\x10\x07\x12\x13\x0A\x0FTABLE_PUBLISHED\x10\x0A\x12\x11\x0A\x0DTABLE_UPDATED\x10\x0B\x12\x11\x0A\x0DTABLE_IGNORED\x10\x0C\x12\x11\x0A\x0DTABLE_DELETED\x10\x0D\"A\x0A\x0AEntityType\x12\x1B\x0A\x17ENTITY_TYPE_UNSPECIFIED\x10\x00\x12\x09\x0A\x05TABLE\x10\x01\x12\x0B\x0A\x07FILESET\x10\x02\"`\x0A\x09TableType\x12\x1A\x0A\x16TABLE_TYPE_UNSPECIFIED\x10\x00\x12\x12\x0A\x0EEXTERNAL_TABLE\x10\x01\x12\x11\x0A\x0DBIGLAKE_TABLE\x10\x02\x12\x10\x0A\x0COBJECT_TABLE\x10\x03B\x09\x0A\x07details\"\xC5\x05\x0A\x08JobEvent\x12\x0F\x0A\x07message\x18\x01 \x01(\x09\x12\x0E\x0A\x06job_id\x18\x02 \x01(\x09\x12.\x0A\x0Astart_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12,\x0A\x08end_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.Timestamp\x127\x0A\x05state\x18\x05 \x01(\x0E2(.google.cloud.dataplex.v1.JobEvent.State\x12\x0F\x0A\x07retries\x18\x06 \x01(\x05\x125\x0A\x04type\x18\x07 \x01(\x0E2'.google.cloud.dataplex.v1.JobEvent.Type\x12;\x0A\x07service\x18\x08 \x01(\x0E2*.google.cloud.dataplex.v1.JobEvent.Service\x12\x13\x0A\x0Bservice_job\x18\x09 \x01(\x09\x12N\x0A\x11execution_trigger\x18\x0B \x01(\x0E23.google.cloud.dataplex.v1.JobEvent.ExecutionTrigger\"5\x0A\x04Type\x12\x14\x0A\x10TYPE_UNSPECIFIED\x10\x00\x12\x09\x0A\x05SPARK\x10\x01\x12\x0C\x0A\x08NOTEBOOK\x10\x02\"U\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09SUCCEEDED\x10\x01\x12\x0A\x0A\x06FAILED\x10\x02\x12\x0D\x0A\x09CANCELLED\x10\x03\x12\x0B\x0A\x07ABORTED\x10\x04\"0\x0A\x07Service\x12\x17\x0A\x13SERVICE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08DATAPROC\x10\x01\"W\x0A\x10ExecutionTrigger\x12!\x0A\x1DEXECUTION_TRIGGER_UNSPECIFIED\x10\x00\x12\x0F\x0A\x0BTASK_CONFIG\x10\x01\x12\x0F\x0A\x0BRUN_REQUEST\x10\x02\"\xBD\x05\x0A\x0CSessionEvent\x12\x0F\x0A\x07message\x18\x01 \x01(\x09\x12\x0F\x0A\x07user_id\x18\x02 \x01(\x09\x12\x12\x0A\x0Asession_id\x18\x03 \x01(\x09\x12>\x0A\x04type\x18\x04 \x01(\x0E20.google.cloud.dataplex.v1.SessionEvent.EventType\x12C\x0A\x05query\x18\x05 \x01(\x0B22.google.cloud.dataplex.v1.SessionEvent.QueryDetailH\x00\x12\x17\x0A\x0Fevent_succeeded\x18\x06 \x01(\x08\x12\x1C\x0A\x14fast_startup_enabled\x18\x07 \x01(\x08\x126\x0A\x13unassigned_duration\x18\x08 \x01(\x0B2\x19.google.protobuf.Duration\x1A\xA3\x02\x0A\x0BQueryDetail\x12\x10\x0A\x08query_id\x18\x01 \x01(\x09\x12\x12\x0A\x0Aquery_text\x18\x02 \x01(\x09\x12I\x0A\x06engine\x18\x03 \x01(\x0E29.google.cloud.dataplex.v1.SessionEvent.QueryDetail.Engine\x12+\x0A\x08duration\x18\x04 \x01(\x0B2\x19.google.protobuf.Duration\x12\x19\x0A\x11result_size_bytes\x18\x05 \x01(\x03\x12\x1C\x0A\x14data_processed_bytes\x18\x06 \x01(\x03\"=\x0A\x06Engine\x12\x16\x0A\x12ENGINE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09SPARK_SQL\x10\x01\x12\x0C\x0A\x08BIGQUERY\x10\x02\"S\x0A\x09EventType\x12\x1A\x0A\x16EVENT_TYPE_UNSPECIFIED\x10\x00\x12\x09\x0A\x05START\x10\x01\x12\x08\x0A\x04STOP\x10\x02\x12\x09\x0A\x05QUERY\x10\x03\x12\x0A\x0A\x06CREATE\x10\x04B\x08\x0A\x06detail\"\xBA\x07\x0A\x0FGovernanceEvent\x12\x0F\x0A\x07message\x18\x01 \x01(\x09\x12G\x0A\x0Aevent_type\x18\x02 \x01(\x0E23.google.cloud.dataplex.v1.GovernanceEvent.EventType\x12E\x0A\x06entity\x18\x03 \x01(\x0B20.google.cloud.dataplex.v1.GovernanceEvent.EntityH\x00\x88\x01\x01\x1A\xD2\x01\x0A\x06Entity\x123\x0A\x06entity\x18\x01 \x01(\x09B#\xFAA \x0A\x1Edataplex.googleapis.com/Entity\x12P\x0A\x0Bentity_type\x18\x02 \x01(\x0E2;.google.cloud.dataplex.v1.GovernanceEvent.Entity.EntityType\"A\x0A\x0AEntityType\x12\x1B\x0A\x17ENTITY_TYPE_UNSPECIFIED\x10\x00\x12\x09\x0A\x05TABLE\x10\x01\x12\x0B\x0A\x07FILESET\x10\x02\"\xA5\x04\x0A\x09EventType\x12\x1A\x0A\x16EVENT_TYPE_UNSPECIFIED\x10\x00\x12\x1E\x0A\x1ARESOURCE_IAM_POLICY_UPDATE\x10\x01\x12\x19\x0A\x15BIGQUERY_TABLE_CREATE\x10\x02\x12\x19\x0A\x15BIGQUERY_TABLE_UPDATE\x10\x03\x12\x19\x0A\x15BIGQUERY_TABLE_DELETE\x10\x04\x12\x1E\x0A\x1ABIGQUERY_CONNECTION_CREATE\x10\x05\x12\x1E\x0A\x1ABIGQUERY_CONNECTION_UPDATE\x10\x06\x12\x1E\x0A\x1ABIGQUERY_CONNECTION_DELETE\x10\x07\x12\x1C\x0A\x18BIGQUERY_TAXONOMY_CREATE\x10\x0A\x12\x1E\x0A\x1ABIGQUERY_POLICY_TAG_CREATE\x10\x0B\x12\x1E\x0A\x1ABIGQUERY_POLICY_TAG_DELETE\x10\x0C\x12&\x0A\"BIGQUERY_POLICY_TAG_SET_IAM_POLICY\x10\x0D\x12\x18\x0A\x14ACCESS_POLICY_UPDATE\x10\x0E\x12%\x0A!GOVERNANCE_RULE_MATCHED_RESOURCES\x10\x0F\x12(\x0A\$GOVERNANCE_RULE_SEARCH_LIMIT_EXCEEDS\x10\x10\x12\x1A\x0A\x16GOVERNANCE_RULE_ERRORS\x10\x11\x12\x1E\x0A\x1AGOVERNANCE_RULE_PROCESSING\x10\x12B\x09\x0A\x07_entity\"\xF3\x13\x0A\x0DDataScanEvent\x12\x13\x0A\x0Bdata_source\x18\x01 \x01(\x09\x12\x0E\x0A\x06job_id\x18\x02 \x01(\x09\x12/\x0A\x0Bcreate_time\x18\x0C \x01(\x0B2\x1A.google.protobuf.Timestamp\x12.\x0A\x0Astart_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12,\x0A\x08end_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12>\x0A\x04type\x18\x05 \x01(\x0E20.google.cloud.dataplex.v1.DataScanEvent.ScanType\x12<\x0A\x05state\x18\x06 \x01(\x0E2-.google.cloud.dataplex.v1.DataScanEvent.State\x12\x0F\x0A\x07message\x18\x07 \x01(\x09\x12\x14\x0A\x0Cspec_version\x18\x08 \x01(\x09\x12@\x0A\x07trigger\x18\x09 \x01(\x0E2/.google.cloud.dataplex.v1.DataScanEvent.Trigger\x12<\x0A\x05scope\x18\x0A \x01(\x0E2-.google.cloud.dataplex.v1.DataScanEvent.Scope\x12Q\x0A\x0Cdata_profile\x18e \x01(\x0B29.google.cloud.dataplex.v1.DataScanEvent.DataProfileResultH\x00\x12Q\x0A\x0Cdata_quality\x18f \x01(\x0B29.google.cloud.dataplex.v1.DataScanEvent.DataQualityResultH\x00\x12b\x0A\x14data_profile_configs\x18\xC9\x01 \x01(\x0B2A.google.cloud.dataplex.v1.DataScanEvent.DataProfileAppliedConfigsH\x01\x12b\x0A\x14data_quality_configs\x18\xCA\x01 \x01(\x0B2A.google.cloud.dataplex.v1.DataScanEvent.DataQualityAppliedConfigsH\x01\x12_\x0A\x18post_scan_actions_result\x18\x0B \x01(\x0B2=.google.cloud.dataplex.v1.DataScanEvent.PostScanActionsResult\x12\\\x0A\x19catalog_publishing_status\x18\x0D \x01(\x0B29.google.cloud.dataplex.v1.DataScanCatalogPublishingStatus\x1A&\x0A\x11DataProfileResult\x12\x11\x0A\x09row_count\x18\x01 \x01(\x03\x1A\x9C\x04\x0A\x11DataQualityResult\x12\x11\x0A\x09row_count\x18\x01 \x01(\x03\x12\x0E\x0A\x06passed\x18\x02 \x01(\x08\x12h\x0A\x10dimension_passed\x18\x03 \x03(\x0B2N.google.cloud.dataplex.v1.DataScanEvent.DataQualityResult.DimensionPassedEntry\x12\x0D\x0A\x05score\x18\x04 \x01(\x02\x12f\x0A\x0Fdimension_score\x18\x05 \x03(\x0B2M.google.cloud.dataplex.v1.DataScanEvent.DataQualityResult.DimensionScoreEntry\x12`\x0A\x0Ccolumn_score\x18\x06 \x03(\x0B2J.google.cloud.dataplex.v1.DataScanEvent.DataQualityResult.ColumnScoreEntry\x1A6\x0A\x14DimensionPassedEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x08:\x028\x01\x1A5\x0A\x13DimensionScoreEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x02:\x028\x01\x1A2\x0A\x10ColumnScoreEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x02:\x028\x01\x1Ap\x0A\x19DataProfileAppliedConfigs\x12\x18\x0A\x10sampling_percent\x18\x01 \x01(\x02\x12\x1A\x0A\x12row_filter_applied\x18\x02 \x01(\x08\x12\x1D\x0A\x15column_filter_applied\x18\x03 \x01(\x08\x1AQ\x0A\x19DataQualityAppliedConfigs\x12\x18\x0A\x10sampling_percent\x18\x01 \x01(\x02\x12\x1A\x0A\x12row_filter_applied\x18\x02 \x01(\x08\x1A\xE6\x02\x0A\x15PostScanActionsResult\x12r\x0A\x16bigquery_export_result\x18\x01 \x01(\x0B2R.google.cloud.dataplex.v1.DataScanEvent.PostScanActionsResult.BigQueryExportResult\x1A\xD8\x01\x0A\x14BigQueryExportResult\x12g\x0A\x05state\x18\x01 \x01(\x0E2X.google.cloud.dataplex.v1.DataScanEvent.PostScanActionsResult.BigQueryExportResult.State\x12\x0F\x0A\x07message\x18\x02 \x01(\x09\"F\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09SUCCEEDED\x10\x01\x12\x0A\x0A\x06FAILED\x10\x02\x12\x0B\x0A\x07SKIPPED\x10\x03\"]\x0A\x08ScanType\x12\x19\x0A\x15SCAN_TYPE_UNSPECIFIED\x10\x00\x12\x10\x0A\x0CDATA_PROFILE\x10\x01\x12\x10\x0A\x0CDATA_QUALITY\x10\x02\x12\x12\x0A\x0EDATA_DISCOVERY\x10\x04\"b\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07STARTED\x10\x01\x12\x0D\x0A\x09SUCCEEDED\x10\x02\x12\x0A\x0A\x06FAILED\x10\x03\x12\x0D\x0A\x09CANCELLED\x10\x04\x12\x0B\x0A\x07CREATED\x10\x05\"M\x0A\x07Trigger\x12\x17\x0A\x13TRIGGER_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09ON_DEMAND\x10\x01\x12\x0C\x0A\x08SCHEDULE\x10\x02\x12\x0C\x0A\x08ONE_TIME\x10\x03\"9\x0A\x05Scope\x12\x15\x0A\x11SCOPE_UNSPECIFIED\x10\x00\x12\x08\x0A\x04FULL\x10\x01\x12\x0F\x0A\x0BINCREMENTAL\x10\x02B\x08\x0A\x06resultB\x10\x0A\x0EappliedConfigs\"\xB1\x07\x0A\x19DataQualityScanRuleResult\x12\x0E\x0A\x06job_id\x18\x01 \x01(\x09\x12\x13\x0A\x0Bdata_source\x18\x02 \x01(\x09\x12\x0E\x0A\x06column\x18\x03 \x01(\x09\x12\x11\x0A\x09rule_name\x18\x04 \x01(\x09\x12O\x0A\x09rule_type\x18\x05 \x01(\x0E2<.google.cloud.dataplex.v1.DataQualityScanRuleResult.RuleType\x12Z\x0A\x0Eevalution_type\x18\x06 \x01(\x0E2B.google.cloud.dataplex.v1.DataQualityScanRuleResult.EvaluationType\x12\x16\x0A\x0Erule_dimension\x18\x07 \x01(\x09\x12\x19\x0A\x11threshold_percent\x18\x08 \x01(\x01\x12J\x0A\x06result\x18\x09 \x01(\x0E2:.google.cloud.dataplex.v1.DataQualityScanRuleResult.Result\x12\x1B\x0A\x13evaluated_row_count\x18\x0A \x01(\x03\x12\x18\x0A\x10passed_row_count\x18\x0B \x01(\x03\x12\x16\x0A\x0Enull_row_count\x18\x0C \x01(\x03\x12\x1B\x0A\x13assertion_row_count\x18\x0D \x01(\x03\"\xAA\x02\x0A\x08RuleType\x12\x19\x0A\x15RULE_TYPE_UNSPECIFIED\x10\x00\x12\x18\x0A\x14NON_NULL_EXPECTATION\x10\x01\x12\x15\x0A\x11RANGE_EXPECTATION\x10\x02\x12\x15\x0A\x11REGEX_EXPECTATION\x10\x03\x12\x1D\x0A\x19ROW_CONDITION_EXPECTATION\x10\x04\x12\x13\x0A\x0FSET_EXPECTATION\x10\x05\x12\x1F\x0A\x1BSTATISTIC_RANGE_EXPECTATION\x10\x06\x12\x1F\x0A\x1BTABLE_CONDITION_EXPECTATION\x10\x07\x12\x1A\x0A\x16UNIQUENESS_EXPECTATION\x10\x08\x12\x11\x0A\x0DSQL_ASSERTION\x10\x09\x12\x16\x0A\x12TEMPLATE_REFERENCE\x10\x0A\"M\x0A\x0EEvaluationType\x12\x1F\x0A\x1BEVALUATION_TYPE_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07PER_ROW\x10\x01\x12\x0D\x0A\x09AGGREGATE\x10\x02\"8\x0A\x06Result\x12\x16\x0A\x12RESULT_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06PASSED\x10\x01\x12\x0A\x0A\x06FAILED\x10\x02\"\x9A\x03\x0A\x15BusinessGlossaryEvent\x12\x0F\x0A\x07message\x18\x01 \x01(\x09\x12M\x0A\x0Aevent_type\x18\x02 \x01(\x0E29.google.cloud.dataplex.v1.BusinessGlossaryEvent.EventType\x12\x10\x0A\x08resource\x18\x03 \x01(\x09\"\x8E\x02\x0A\x09EventType\x12\x1A\x0A\x16EVENT_TYPE_UNSPECIFIED\x10\x00\x12\x13\x0A\x0FGLOSSARY_CREATE\x10\x01\x12\x13\x0A\x0FGLOSSARY_UPDATE\x10\x02\x12\x13\x0A\x0FGLOSSARY_DELETE\x10\x03\x12\x1C\x0A\x18GLOSSARY_CATEGORY_CREATE\x10\x04\x12\x1C\x0A\x18GLOSSARY_CATEGORY_UPDATE\x10\x05\x12\x1C\x0A\x18GLOSSARY_CATEGORY_DELETE\x10\x06\x12\x18\x0A\x14GLOSSARY_TERM_CREATE\x10\x07\x12\x18\x0A\x14GLOSSARY_TERM_UPDATE\x10\x08\x12\x18\x0A\x14GLOSSARY_TERM_DELETE\x10\x09\"\xD2\x01\x0A\x0EEntryLinkEvent\x12\x0F\x0A\x07message\x18\x01 \x01(\x09\x12F\x0A\x0Aevent_type\x18\x02 \x01(\x0E22.google.cloud.dataplex.v1.EntryLinkEvent.EventType\x12\x10\x0A\x08resource\x18\x03 \x01(\x09\"U\x0A\x09EventType\x12\x1A\x0A\x16EVENT_TYPE_UNSPECIFIED\x10\x00\x12\x15\x0A\x11ENTRY_LINK_CREATE\x10\x01\x12\x15\x0A\x11ENTRY_LINK_DELETE\x10\x02Be\x0A\x1Ccom.google.cloud.dataplex.v1B\x09LogsProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" , true); static::$is_initialized = true; diff --git a/Dataplex/metadata/V1/Metadata.php b/Dataplex/metadata/V1/Metadata.php index 0b99b269411d..d12ce793e0c0 100644 --- a/Dataplex/metadata/V1/Metadata.php +++ b/Dataplex/metadata/V1/Metadata.php @@ -21,7 +21,7 @@ public static function initOnce() { \GPBMetadata\Google\Protobuf\GPBEmpty::initOnce(); \GPBMetadata\Google\Protobuf\Timestamp::initOnce(); $pool->internalAddGeneratedFile( - "\x0A\xA49\x0A'google/cloud/dataplex/v1/metadata.proto\x12\x18google.cloud.dataplex.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x19google/api/resource.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"\x9E\x01\x0A\x13CreateEntityRequest\x124\x0A\x06parent\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Zone\x125\x0A\x06entity\x18\x03 \x01(\x0B2 .google.cloud.dataplex.v1.EntityB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"h\x0A\x13UpdateEntityRequest\x125\x0A\x06entity\x18\x02 \x01(\x0B2 .google.cloud.dataplex.v1.EntityB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"^\x0A\x13DeleteEntityRequest\x124\x0A\x04name\x18\x01 \x01(\x09B&\xE0A\x02\xFAA \x0A\x1Edataplex.googleapis.com/Entity\x12\x11\x0A\x04etag\x18\x02 \x01(\x09B\x03\xE0A\x02\"\xA3\x02\x0A\x13ListEntitiesRequest\x124\x0A\x06parent\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Zone\x12K\x0A\x04view\x18\x02 \x01(\x0E28.google.cloud.dataplex.v1.ListEntitiesRequest.EntityViewB\x03\xE0A\x02\x12\x16\x0A\x09page_size\x18\x03 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x05 \x01(\x09B\x03\xE0A\x01\"C\x0A\x0AEntityView\x12\x1B\x0A\x17ENTITY_VIEW_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06TABLES\x10\x01\x12\x0C\x0A\x08FILESETS\x10\x02\"c\x0A\x14ListEntitiesResponse\x122\x0A\x08entities\x18\x01 \x03(\x0B2 .google.cloud.dataplex.v1.Entity\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"\xDE\x01\x0A\x10GetEntityRequest\x124\x0A\x04name\x18\x01 \x01(\x09B&\xE0A\x02\xFAA \x0A\x1Edataplex.googleapis.com/Entity\x12H\x0A\x04view\x18\x02 \x01(\x0E25.google.cloud.dataplex.v1.GetEntityRequest.EntityViewB\x03\xE0A\x01\"J\x0A\x0AEntityView\x12\x1B\x0A\x17ENTITY_VIEW_UNSPECIFIED\x10\x00\x12\x09\x0A\x05BASIC\x10\x01\x12\x0A\x0A\x06SCHEMA\x10\x02\x12\x08\x0A\x04FULL\x10\x04\"\x95\x01\x0A\x15ListPartitionsRequest\x126\x0A\x06parent\x18\x01 \x01(\x09B&\xE0A\x02\xFAA \x0A\x1Edataplex.googleapis.com/Entity\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\"\xA9\x01\x0A\x16CreatePartitionRequest\x126\x0A\x06parent\x18\x01 \x01(\x09B&\xE0A\x02\xFAA \x0A\x1Edataplex.googleapis.com/Entity\x12;\x0A\x09partition\x18\x03 \x01(\x0B2#.google.cloud.dataplex.v1.PartitionB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"f\x0A\x16DeletePartitionRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!dataplex.googleapis.com/Partition\x12\x13\x0A\x04etag\x18\x02 \x01(\x09B\x05\x18\x01\xE0A\x01\"j\x0A\x16ListPartitionsResponse\x127\x0A\x0Apartitions\x18\x01 \x03(\x0B2#.google.cloud.dataplex.v1.Partition\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"N\x0A\x13GetPartitionRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!dataplex.googleapis.com/Partition\"\xC9\x09\x0A\x06Entity\x124\x0A\x04name\x18\x01 \x01(\x09B&\xE0A\x03\xFAA \x0A\x1Edataplex.googleapis.com/Entity\x12\x19\x0A\x0Cdisplay_name\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x18\x0A\x0Bdescription\x18\x03 \x01(\x09B\x03\xE0A\x01\x124\x0A\x0Bcreate_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x0F\x0A\x02id\x18\x07 \x01(\x09B\x03\xE0A\x02\x12\x11\x0A\x04etag\x18\x08 \x01(\x09B\x03\xE0A\x01\x12;\x0A\x04type\x18\x0A \x01(\x0E2%.google.cloud.dataplex.v1.Entity.TypeB\x06\xE0A\x02\xE0A\x05\x12\x15\x0A\x05asset\x18\x0B \x01(\x09B\x06\xE0A\x02\xE0A\x05\x12\x19\x0A\x09data_path\x18\x0C \x01(\x09B\x06\xE0A\x02\xE0A\x05\x12\x1E\x0A\x11data_path_pattern\x18\x0D \x01(\x09B\x03\xE0A\x01\x12\x1A\x0A\x0Dcatalog_entry\x18\x0E \x01(\x09B\x03\xE0A\x03\x12?\x0A\x06system\x18\x0F \x01(\x0E2'.google.cloud.dataplex.v1.StorageSystemB\x06\xE0A\x02\xE0A\x05\x12<\x0A\x06format\x18\x10 \x01(\x0B2'.google.cloud.dataplex.v1.StorageFormatB\x03\xE0A\x02\x12P\x0A\x0Dcompatibility\x18\x13 \x01(\x0B24.google.cloud.dataplex.v1.Entity.CompatibilityStatusB\x03\xE0A\x03\x12<\x0A\x06access\x18\x15 \x01(\x0B2'.google.cloud.dataplex.v1.StorageAccessB\x03\xE0A\x03\x12\x10\x0A\x03uid\x18\x16 \x01(\x09B\x03\xE0A\x03\x125\x0A\x06schema\x182 \x01(\x0B2 .google.cloud.dataplex.v1.SchemaB\x03\xE0A\x02\x1A\x90\x02\x0A\x13CompatibilityStatus\x12_\x0A\x0Ehive_metastore\x18\x01 \x01(\x0B2B.google.cloud.dataplex.v1.Entity.CompatibilityStatus.CompatibilityB\x03\xE0A\x03\x12Y\x0A\x08bigquery\x18\x02 \x01(\x0B2B.google.cloud.dataplex.v1.Entity.CompatibilityStatus.CompatibilityB\x03\xE0A\x03\x1A=\x0A\x0DCompatibility\x12\x17\x0A\x0Acompatible\x18\x01 \x01(\x08B\x03\xE0A\x03\x12\x13\x0A\x06reason\x18\x02 \x01(\x09B\x03\xE0A\x03\"4\x0A\x04Type\x12\x14\x0A\x10TYPE_UNSPECIFIED\x10\x00\x12\x09\x0A\x05TABLE\x10\x01\x12\x0B\x0A\x07FILESET\x10\x02:x\xEAAu\x0A\x1Edataplex.googleapis.com/Entity\x12Sprojects/{project}/locations/{location}/lakes/{lake}/zones/{zone}/entities/{entity}\"\xA1\x02\x0A\x09Partition\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x03\xFAA#\x0A!dataplex.googleapis.com/Partition\x12\x16\x0A\x06values\x18\x02 \x03(\x09B\x06\xE0A\x02\xE0A\x05\x12\x18\x0A\x08location\x18\x03 \x01(\x09B\x06\xE0A\x02\xE0A\x05\x12\x13\x0A\x04etag\x18\x04 \x01(\x09B\x05\x18\x01\xE0A\x01:\x93\x01\xEAA\x8F\x01\x0A!dataplex.googleapis.com/Partition\x12jprojects/{project}/locations/{location}/lakes/{lake}/zones/{zone}/entities/{entity}/partitions/{partition}\"\xB7\x07\x0A\x06Schema\x12\x19\x0A\x0Cuser_managed\x18\x01 \x01(\x08B\x03\xE0A\x02\x12A\x0A\x06fields\x18\x02 \x03(\x0B2,.google.cloud.dataplex.v1.Schema.SchemaFieldB\x03\xE0A\x01\x12N\x0A\x10partition_fields\x18\x03 \x03(\x0B2/.google.cloud.dataplex.v1.Schema.PartitionFieldB\x03\xE0A\x01\x12M\x0A\x0Fpartition_style\x18\x04 \x01(\x0E2/.google.cloud.dataplex.v1.Schema.PartitionStyleB\x03\xE0A\x01\x1A\xF1\x01\x0A\x0BSchemaField\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x18\x0A\x0Bdescription\x18\x02 \x01(\x09B\x03\xE0A\x01\x128\x0A\x04type\x18\x03 \x01(\x0E2%.google.cloud.dataplex.v1.Schema.TypeB\x03\xE0A\x02\x128\x0A\x04mode\x18\x04 \x01(\x0E2%.google.cloud.dataplex.v1.Schema.ModeB\x03\xE0A\x02\x12A\x0A\x06fields\x18\x0A \x03(\x0B2,.google.cloud.dataplex.v1.Schema.SchemaFieldB\x03\xE0A\x01\x1A`\x0A\x0EPartitionField\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x02\x12;\x0A\x04type\x18\x02 \x01(\x0E2%.google.cloud.dataplex.v1.Schema.TypeB\x06\xE0A\x02\xE0A\x05\"\xC9\x01\x0A\x04Type\x12\x14\x0A\x10TYPE_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07BOOLEAN\x10\x01\x12\x08\x0A\x04BYTE\x10\x02\x12\x09\x0A\x05INT16\x10\x03\x12\x09\x0A\x05INT32\x10\x04\x12\x09\x0A\x05INT64\x10\x05\x12\x09\x0A\x05FLOAT\x10\x06\x12\x0A\x0A\x06DOUBLE\x10\x07\x12\x0B\x0A\x07DECIMAL\x10\x08\x12\x0A\x0A\x06STRING\x10\x09\x12\x0A\x0A\x06BINARY\x10\x0A\x12\x0D\x0A\x09TIMESTAMP\x10\x0B\x12\x08\x0A\x04DATE\x10\x0C\x12\x08\x0A\x04TIME\x10\x0D\x12\x0A\x0A\x06RECORD\x10\x0E\x12\x08\x0A\x04NULL\x10d\"F\x0A\x04Mode\x12\x14\x0A\x10MODE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08REQUIRED\x10\x01\x12\x0C\x0A\x08NULLABLE\x10\x02\x12\x0C\x0A\x08REPEATED\x10\x03\"F\x0A\x0EPartitionStyle\x12\x1F\x0A\x1BPARTITION_STYLE_UNSPECIFIED\x10\x00\x12\x13\x0A\x0FHIVE_COMPATIBLE\x10\x01\"\xF4\x06\x0A\x0DStorageFormat\x12C\x0A\x06format\x18\x01 \x01(\x0E2..google.cloud.dataplex.v1.StorageFormat.FormatB\x03\xE0A\x03\x12Z\x0A\x12compression_format\x18\x02 \x01(\x0E29.google.cloud.dataplex.v1.StorageFormat.CompressionFormatB\x03\xE0A\x01\x12\x16\x0A\x09mime_type\x18\x03 \x01(\x09B\x03\xE0A\x02\x12F\x0A\x03csv\x18\x0A \x01(\x0B22.google.cloud.dataplex.v1.StorageFormat.CsvOptionsB\x03\xE0A\x01H\x00\x12H\x0A\x04json\x18\x0B \x01(\x0B23.google.cloud.dataplex.v1.StorageFormat.JsonOptionsB\x03\xE0A\x01H\x00\x12N\x0A\x07iceberg\x18\x0C \x01(\x0B26.google.cloud.dataplex.v1.StorageFormat.IcebergOptionsB\x03\xE0A\x01H\x00\x1Ai\x0A\x0ACsvOptions\x12\x15\x0A\x08encoding\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x18\x0A\x0Bheader_rows\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x16\x0A\x09delimiter\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x12\x0A\x05quote\x18\x04 \x01(\x09B\x03\xE0A\x01\x1A\$\x0A\x0BJsonOptions\x12\x15\x0A\x08encoding\x18\x01 \x01(\x09B\x03\xE0A\x01\x1A0\x0A\x0EIcebergOptions\x12\x1E\x0A\x11metadata_location\x18\x01 \x01(\x09B\x03\xE0A\x01\"\xAB\x01\x0A\x06Format\x12\x16\x0A\x12FORMAT_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07PARQUET\x10\x01\x12\x08\x0A\x04AVRO\x10\x02\x12\x07\x0A\x03ORC\x10\x03\x12\x07\x0A\x03CSV\x10d\x12\x08\x0A\x04JSON\x10e\x12\x0A\x0A\x05IMAGE\x10\xC8\x01\x12\x0A\x0A\x05AUDIO\x10\xC9\x01\x12\x0A\x0A\x05VIDEO\x10\xCA\x01\x12\x09\x0A\x04TEXT\x10\xCB\x01\x12\x0D\x0A\x08TFRECORD\x10\xCC\x01\x12\x0A\x0A\x05OTHER\x10\xE8\x07\x12\x0C\x0A\x07UNKNOWN\x10\xE9\x07\"L\x0A\x11CompressionFormat\x12\"\x0A\x1ECOMPRESSION_FORMAT_UNSPECIFIED\x10\x00\x12\x08\x0A\x04GZIP\x10\x02\x12\x09\x0A\x05BZIP2\x10\x03B\x09\x0A\x07options\"\x9A\x01\x0A\x0DStorageAccess\x12E\x0A\x04read\x18\x15 \x01(\x0E22.google.cloud.dataplex.v1.StorageAccess.AccessModeB\x03\xE0A\x03\"B\x0A\x0AAccessMode\x12\x1B\x0A\x17ACCESS_MODE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06DIRECT\x10\x01\x12\x0B\x0A\x07MANAGED\x10\x02*P\x0A\x0DStorageSystem\x12\x1E\x0A\x1ASTORAGE_SYSTEM_UNSPECIFIED\x10\x00\x12\x11\x0A\x0DCLOUD_STORAGE\x10\x01\x12\x0C\x0A\x08BIGQUERY\x10\x022\x89\x0E\x0A\x0FMetadataService\x12\xBD\x01\x0A\x0CCreateEntity\x12-.google.cloud.dataplex.v1.CreateEntityRequest\x1A .google.cloud.dataplex.v1.Entity\"\\\xDAA\x0Dparent,entity\x82\xD3\xE4\x93\x02F\"*\x12\x12*\x12\x12internalAddGeneratedFile( - "\x0A\x81O\x0A&google/cloud/dataplex/v1/service.proto\x12\x18google.cloud.dataplex.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x19google/api/resource.proto\x1A(google/cloud/dataplex/v1/resources.proto\x1A\$google/cloud/dataplex/v1/tasks.proto\x1A#google/longrunning/operations.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"\xB3\x01\x0A\x11CreateLakeRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x14\x0A\x07lake_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x121\x0A\x04lake\x18\x03 \x01(\x0B2\x1E.google.cloud.dataplex.v1.LakeB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\x98\x01\x0A\x11UpdateLakeRequest\x124\x0A\x0Bupdate_mask\x18\x01 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x121\x0A\x04lake\x18\x02 \x01(\x0B2\x1E.google.cloud.dataplex.v1.LakeB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"G\x0A\x11DeleteLakeRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Lake\"\xAA\x01\x0A\x10ListLakesRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"z\x0A\x11ListLakesResponse\x12-\x0A\x05lakes\x18\x01 \x03(\x0B2\x1E.google.cloud.dataplex.v1.Lake\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"\x7F\x0A\x16ListLakeActionsRequest\x124\x0A\x06parent\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Lake\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\"a\x0A\x13ListActionsResponse\x121\x0A\x07actions\x18\x01 \x03(\x0B2 .google.cloud.dataplex.v1.Action\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"D\x0A\x0EGetLakeRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Lake\"\xAE\x01\x0A\x11CreateZoneRequest\x124\x0A\x06parent\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Lake\x12\x14\x0A\x07zone_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x121\x0A\x04zone\x18\x03 \x01(\x0B2\x1E.google.cloud.dataplex.v1.ZoneB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\x98\x01\x0A\x11UpdateZoneRequest\x124\x0A\x0Bupdate_mask\x18\x01 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x121\x0A\x04zone\x18\x02 \x01(\x0B2\x1E.google.cloud.dataplex.v1.ZoneB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"G\x0A\x11DeleteZoneRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Zone\"\xA5\x01\x0A\x10ListZonesRequest\x124\x0A\x06parent\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Lake\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"[\x0A\x11ListZonesResponse\x12-\x0A\x05zones\x18\x01 \x03(\x0B2\x1E.google.cloud.dataplex.v1.Zone\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"\x7F\x0A\x16ListZoneActionsRequest\x124\x0A\x06parent\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Zone\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\"D\x0A\x0EGetZoneRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Zone\"\xB2\x01\x0A\x12CreateAssetRequest\x124\x0A\x06parent\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Zone\x12\x15\x0A\x08asset_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x123\x0A\x05asset\x18\x03 \x01(\x0B2\x1F.google.cloud.dataplex.v1.AssetB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\x9B\x01\x0A\x12UpdateAssetRequest\x124\x0A\x0Bupdate_mask\x18\x01 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x123\x0A\x05asset\x18\x02 \x01(\x0B2\x1F.google.cloud.dataplex.v1.AssetB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"I\x0A\x12DeleteAssetRequest\x123\x0A\x04name\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Ddataplex.googleapis.com/Asset\"\xA6\x01\x0A\x11ListAssetsRequest\x124\x0A\x06parent\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Zone\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"^\x0A\x12ListAssetsResponse\x12/\x0A\x06assets\x18\x01 \x03(\x0B2\x1F.google.cloud.dataplex.v1.Asset\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"\x81\x01\x0A\x17ListAssetActionsRequest\x125\x0A\x06parent\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Ddataplex.googleapis.com/Asset\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\"F\x0A\x0FGetAssetRequest\x123\x0A\x04name\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Ddataplex.googleapis.com/Asset\"\x80\x02\x0A\x11OperationMetadata\x124\x0A\x0Bcreate_time\x18\x01 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x121\x0A\x08end_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x13\x0A\x06target\x18\x03 \x01(\x09B\x03\xE0A\x03\x12\x11\x0A\x04verb\x18\x04 \x01(\x09B\x03\xE0A\x03\x12\x1B\x0A\x0Estatus_message\x18\x05 \x01(\x09B\x03\xE0A\x03\x12#\x0A\x16requested_cancellation\x18\x06 \x01(\x08B\x03\xE0A\x03\x12\x18\x0A\x0Bapi_version\x18\x07 \x01(\x09B\x03\xE0A\x03\"\xAE\x01\x0A\x11CreateTaskRequest\x124\x0A\x06parent\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Lake\x12\x14\x0A\x07task_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x121\x0A\x04task\x18\x03 \x01(\x0B2\x1E.google.cloud.dataplex.v1.TaskB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\x98\x01\x0A\x11UpdateTaskRequest\x124\x0A\x0Bupdate_mask\x18\x01 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x121\x0A\x04task\x18\x02 \x01(\x0B2\x1E.google.cloud.dataplex.v1.TaskB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"G\x0A\x11DeleteTaskRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Task\"\xA5\x01\x0A\x10ListTasksRequest\x124\x0A\x06parent\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Lake\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"z\x0A\x11ListTasksResponse\x12-\x0A\x05tasks\x18\x01 \x03(\x0B2\x1E.google.cloud.dataplex.v1.Task\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"D\x0A\x0EGetTaskRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Task\"B\x0A\x0DGetJobRequest\x121\x0A\x04name\x18\x01 \x01(\x09B#\xE0A\x02\xFAA\x1D\x0A\x1Bdataplex.googleapis.com/Job\"\xB2\x02\x0A\x0ERunTaskRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Task\x12I\x0A\x06labels\x18\x03 \x03(\x0B24.google.cloud.dataplex.v1.RunTaskRequest.LabelsEntryB\x03\xE0A\x01\x12E\x0A\x04args\x18\x04 \x03(\x0B22.google.cloud.dataplex.v1.RunTaskRequest.ArgsEntryB\x03\xE0A\x01\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\x1A+\x0A\x09ArgsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"=\x0A\x0FRunTaskResponse\x12*\x0A\x03job\x18\x01 \x01(\x0B2\x1D.google.cloud.dataplex.v1.Job\"x\x0A\x0FListJobsRequest\x124\x0A\x06parent\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Task\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\"X\x0A\x10ListJobsResponse\x12+\x0A\x04jobs\x18\x01 \x03(\x0B2\x1D.google.cloud.dataplex.v1.Job\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"E\x0A\x10CancelJobRequest\x121\x0A\x04name\x18\x01 \x01(\x09B#\xE0A\x02\xFAA\x1D\x0A\x1Bdataplex.googleapis.com/Job2\x8A(\x0A\x0FDataplexService\x12\xC3\x01\x0A\x0ACreateLake\x12+.google.cloud.dataplex.v1.CreateLakeRequest\x1A\x1D.google.longrunning.Operation\"i\xCAA\x19\x0A\x04Lake\x12\x11OperationMetadata\xDAA\x13parent,lake,lake_id\x82\xD3\xE4\x93\x021\")/v1/{parent=projects/*/locations/*}/lakes:\x04lake\x12\xC5\x01\x0A\x0AUpdateLake\x12+.google.cloud.dataplex.v1.UpdateLakeRequest\x1A\x1D.google.longrunning.Operation\"k\xCAA\x19\x0A\x04Lake\x12\x11OperationMetadata\xDAA\x10lake,update_mask\x82\xD3\xE4\x93\x0262./v1/{lake.name=projects/*/locations/*/lakes/*}:\x04lake\x12\xBF\x01\x0A\x0ADeleteLake\x12+.google.cloud.dataplex.v1.DeleteLakeRequest\x1A\x1D.google.longrunning.Operation\"e\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x02+*)/v1/{name=projects/*/locations/*/lakes/*}\x12\xA0\x01\x0A\x09ListLakes\x12*.google.cloud.dataplex.v1.ListLakesRequest\x1A+.google.cloud.dataplex.v1.ListLakesResponse\":\xDAA\x06parent\x82\xD3\xE4\x93\x02+\x12)/v1/{parent=projects/*/locations/*}/lakes\x12\x8D\x01\x0A\x07GetLake\x12(.google.cloud.dataplex.v1.GetLakeRequest\x1A\x1E.google.cloud.dataplex.v1.Lake\"8\xDAA\x04name\x82\xD3\xE4\x93\x02+\x12)/v1/{name=projects/*/locations/*/lakes/*}\x12\xB8\x01\x0A\x0FListLakeActions\x120.google.cloud.dataplex.v1.ListLakeActionsRequest\x1A-.google.cloud.dataplex.v1.ListActionsResponse\"D\xDAA\x06parent\x82\xD3\xE4\x93\x025\x123/v1/{parent=projects/*/locations/*/lakes/*}/actions\x12\xCB\x01\x0A\x0ACreateZone\x12+.google.cloud.dataplex.v1.CreateZoneRequest\x1A\x1D.google.longrunning.Operation\"q\xCAA\x19\x0A\x04Zone\x12\x11OperationMetadata\xDAA\x13parent,zone,zone_id\x82\xD3\xE4\x93\x029\"1/v1/{parent=projects/*/locations/*/lakes/*}/zones:\x04zone\x12\xCD\x01\x0A\x0AUpdateZone\x12+.google.cloud.dataplex.v1.UpdateZoneRequest\x1A\x1D.google.longrunning.Operation\"s\xCAA\x19\x0A\x04Zone\x12\x11OperationMetadata\xDAA\x10zone,update_mask\x82\xD3\xE4\x93\x02>26/v1/{zone.name=projects/*/locations/*/lakes/*/zones/*}:\x04zone\x12\xC7\x01\x0A\x0ADeleteZone\x12+.google.cloud.dataplex.v1.DeleteZoneRequest\x1A\x1D.google.longrunning.Operation\"m\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x023*1/v1/{name=projects/*/locations/*/lakes/*/zones/*}\x12\xA8\x01\x0A\x09ListZones\x12*.google.cloud.dataplex.v1.ListZonesRequest\x1A+.google.cloud.dataplex.v1.ListZonesResponse\"B\xDAA\x06parent\x82\xD3\xE4\x93\x023\x121/v1/{parent=projects/*/locations/*/lakes/*}/zones\x12\x95\x01\x0A\x07GetZone\x12(.google.cloud.dataplex.v1.GetZoneRequest\x1A\x1E.google.cloud.dataplex.v1.Zone\"@\xDAA\x04name\x82\xD3\xE4\x93\x023\x121/v1/{name=projects/*/locations/*/lakes/*/zones/*}\x12\xC0\x01\x0A\x0FListZoneActions\x120.google.cloud.dataplex.v1.ListZoneActionsRequest\x1A-.google.cloud.dataplex.v1.ListActionsResponse\"L\xDAA\x06parent\x82\xD3\xE4\x93\x02=\x12;/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/actions\x12\xDA\x01\x0A\x0BCreateAsset\x12,.google.cloud.dataplex.v1.CreateAssetRequest\x1A\x1D.google.longrunning.Operation\"~\xCAA\x1A\x0A\x05Asset\x12\x11OperationMetadata\xDAA\x15parent,asset,asset_id\x82\xD3\xE4\x93\x02C\":/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/assets:\x05asset\x12\xDD\x01\x0A\x0BUpdateAsset\x12,.google.cloud.dataplex.v1.UpdateAssetRequest\x1A\x1D.google.longrunning.Operation\"\x80\x01\xCAA\x1A\x0A\x05Asset\x12\x11OperationMetadata\xDAA\x11asset,update_mask\x82\xD3\xE4\x93\x02I2@/v1/{asset.name=projects/*/locations/*/lakes/*/zones/*/assets/*}:\x05asset\x12\xD2\x01\x0A\x0BDeleteAsset\x12,.google.cloud.dataplex.v1.DeleteAssetRequest\x1A\x1D.google.longrunning.Operation\"v\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x02<*:/v1/{name=projects/*/locations/*/lakes/*/zones/*/assets/*}\x12\xB4\x01\x0A\x0AListAssets\x12+.google.cloud.dataplex.v1.ListAssetsRequest\x1A,.google.cloud.dataplex.v1.ListAssetsResponse\"K\xDAA\x06parent\x82\xD3\xE4\x93\x02<\x12:/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/assets\x12\xA1\x01\x0A\x08GetAsset\x12).google.cloud.dataplex.v1.GetAssetRequest\x1A\x1F.google.cloud.dataplex.v1.Asset\"I\xDAA\x04name\x82\xD3\xE4\x93\x02<\x12:/v1/{name=projects/*/locations/*/lakes/*/zones/*/assets/*}\x12\xCB\x01\x0A\x10ListAssetActions\x121.google.cloud.dataplex.v1.ListAssetActionsRequest\x1A-.google.cloud.dataplex.v1.ListActionsResponse\"U\xDAA\x06parent\x82\xD3\xE4\x93\x02F\x12D/v1/{parent=projects/*/locations/*/lakes/*/zones/*/assets/*}/actions\x12\xCB\x01\x0A\x0ACreateTask\x12+.google.cloud.dataplex.v1.CreateTaskRequest\x1A\x1D.google.longrunning.Operation\"q\xCAA\x19\x0A\x04Task\x12\x11OperationMetadata\xDAA\x13parent,task,task_id\x82\xD3\xE4\x93\x029\"1/v1/{parent=projects/*/locations/*/lakes/*}/tasks:\x04task\x12\xCD\x01\x0A\x0AUpdateTask\x12+.google.cloud.dataplex.v1.UpdateTaskRequest\x1A\x1D.google.longrunning.Operation\"s\xCAA\x19\x0A\x04Task\x12\x11OperationMetadata\xDAA\x10task,update_mask\x82\xD3\xE4\x93\x02>26/v1/{task.name=projects/*/locations/*/lakes/*/tasks/*}:\x04task\x12\xC7\x01\x0A\x0ADeleteTask\x12+.google.cloud.dataplex.v1.DeleteTaskRequest\x1A\x1D.google.longrunning.Operation\"m\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x023*1/v1/{name=projects/*/locations/*/lakes/*/tasks/*}\x12\xA8\x01\x0A\x09ListTasks\x12*.google.cloud.dataplex.v1.ListTasksRequest\x1A+.google.cloud.dataplex.v1.ListTasksResponse\"B\xDAA\x06parent\x82\xD3\xE4\x93\x023\x121/v1/{parent=projects/*/locations/*/lakes/*}/tasks\x12\x95\x01\x0A\x07GetTask\x12(.google.cloud.dataplex.v1.GetTaskRequest\x1A\x1E.google.cloud.dataplex.v1.Task\"@\xDAA\x04name\x82\xD3\xE4\x93\x023\x121/v1/{name=projects/*/locations/*/lakes/*/tasks/*}\x12\xAC\x01\x0A\x08ListJobs\x12).google.cloud.dataplex.v1.ListJobsRequest\x1A*.google.cloud.dataplex.v1.ListJobsResponse\"I\xDAA\x06parent\x82\xD3\xE4\x93\x02:\x128/v1/{parent=projects/*/locations/*/lakes/*/tasks/*}/jobs\x12\xA7\x01\x0A\x07RunTask\x12(.google.cloud.dataplex.v1.RunTaskRequest\x1A).google.cloud.dataplex.v1.RunTaskResponse\"G\xDAA\x04name\x82\xD3\xE4\x93\x02:\"5/v1/{name=projects/*/locations/*/lakes/*/tasks/*}:run:\x01*\x12\x99\x01\x0A\x06GetJob\x12'.google.cloud.dataplex.v1.GetJobRequest\x1A\x1D.google.cloud.dataplex.v1.Job\"G\xDAA\x04name\x82\xD3\xE4\x93\x02:\x128/v1/{name=projects/*/locations/*/lakes/*/tasks/*/jobs/*}\x12\xA2\x01\x0A\x09CancelJob\x12*.google.cloud.dataplex.v1.CancelJobRequest\x1A\x16.google.protobuf.Empty\"Q\xDAA\x04name\x82\xD3\xE4\x93\x02D\"?/v1/{name=projects/*/locations/*/lakes/*/tasks/*/jobs/*}:cancel:\x01*\x1AK\xCAA\x17dataplex.googleapis.com\xD2A.https://www.googleapis.com/auth/cloud-platformBh\x0A\x1Ccom.google.cloud.dataplex.v1B\x0CServiceProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" + "\x0A\xA2P\x0A&google/cloud/dataplex/v1/service.proto\x12\x18google.cloud.dataplex.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x19google/api/resource.proto\x1A(google/cloud/dataplex/v1/resources.proto\x1A\$google/cloud/dataplex/v1/tasks.proto\x1A#google/longrunning/operations.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"\xB3\x01\x0A\x11CreateLakeRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x14\x0A\x07lake_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x121\x0A\x04lake\x18\x03 \x01(\x0B2\x1E.google.cloud.dataplex.v1.LakeB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\x98\x01\x0A\x11UpdateLakeRequest\x124\x0A\x0Bupdate_mask\x18\x01 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x121\x0A\x04lake\x18\x02 \x01(\x0B2\x1E.google.cloud.dataplex.v1.LakeB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"G\x0A\x11DeleteLakeRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Lake\"\xAA\x01\x0A\x10ListLakesRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"z\x0A\x11ListLakesResponse\x12-\x0A\x05lakes\x18\x01 \x03(\x0B2\x1E.google.cloud.dataplex.v1.Lake\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"\x7F\x0A\x16ListLakeActionsRequest\x124\x0A\x06parent\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Lake\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\"a\x0A\x13ListActionsResponse\x121\x0A\x07actions\x18\x01 \x03(\x0B2 .google.cloud.dataplex.v1.Action\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"D\x0A\x0EGetLakeRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Lake\"\xAE\x01\x0A\x11CreateZoneRequest\x124\x0A\x06parent\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Lake\x12\x14\x0A\x07zone_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x121\x0A\x04zone\x18\x03 \x01(\x0B2\x1E.google.cloud.dataplex.v1.ZoneB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\x98\x01\x0A\x11UpdateZoneRequest\x124\x0A\x0Bupdate_mask\x18\x01 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x121\x0A\x04zone\x18\x02 \x01(\x0B2\x1E.google.cloud.dataplex.v1.ZoneB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"G\x0A\x11DeleteZoneRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Zone\"\xA5\x01\x0A\x10ListZonesRequest\x124\x0A\x06parent\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Lake\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"[\x0A\x11ListZonesResponse\x12-\x0A\x05zones\x18\x01 \x03(\x0B2\x1E.google.cloud.dataplex.v1.Zone\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"\x7F\x0A\x16ListZoneActionsRequest\x124\x0A\x06parent\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Zone\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\"D\x0A\x0EGetZoneRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Zone\"\xB2\x01\x0A\x12CreateAssetRequest\x124\x0A\x06parent\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Zone\x12\x15\x0A\x08asset_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x123\x0A\x05asset\x18\x03 \x01(\x0B2\x1F.google.cloud.dataplex.v1.AssetB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\x9B\x01\x0A\x12UpdateAssetRequest\x124\x0A\x0Bupdate_mask\x18\x01 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x123\x0A\x05asset\x18\x02 \x01(\x0B2\x1F.google.cloud.dataplex.v1.AssetB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"I\x0A\x12DeleteAssetRequest\x123\x0A\x04name\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Ddataplex.googleapis.com/Asset\"\xA6\x01\x0A\x11ListAssetsRequest\x124\x0A\x06parent\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Zone\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"^\x0A\x12ListAssetsResponse\x12/\x0A\x06assets\x18\x01 \x03(\x0B2\x1F.google.cloud.dataplex.v1.Asset\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"\x81\x01\x0A\x17ListAssetActionsRequest\x125\x0A\x06parent\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Ddataplex.googleapis.com/Asset\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\"F\x0A\x0FGetAssetRequest\x123\x0A\x04name\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Ddataplex.googleapis.com/Asset\"\x80\x02\x0A\x11OperationMetadata\x124\x0A\x0Bcreate_time\x18\x01 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x121\x0A\x08end_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x13\x0A\x06target\x18\x03 \x01(\x09B\x03\xE0A\x03\x12\x11\x0A\x04verb\x18\x04 \x01(\x09B\x03\xE0A\x03\x12\x1B\x0A\x0Estatus_message\x18\x05 \x01(\x09B\x03\xE0A\x03\x12#\x0A\x16requested_cancellation\x18\x06 \x01(\x08B\x03\xE0A\x03\x12\x18\x0A\x0Bapi_version\x18\x07 \x01(\x09B\x03\xE0A\x03\"\xAE\x01\x0A\x11CreateTaskRequest\x124\x0A\x06parent\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Lake\x12\x14\x0A\x07task_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x121\x0A\x04task\x18\x03 \x01(\x0B2\x1E.google.cloud.dataplex.v1.TaskB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x04 \x01(\x08B\x03\xE0A\x01\"\x98\x01\x0A\x11UpdateTaskRequest\x124\x0A\x0Bupdate_mask\x18\x01 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x121\x0A\x04task\x18\x02 \x01(\x0B2\x1E.google.cloud.dataplex.v1.TaskB\x03\xE0A\x02\x12\x1A\x0A\x0Dvalidate_only\x18\x03 \x01(\x08B\x03\xE0A\x01\"G\x0A\x11DeleteTaskRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Task\"\xA5\x01\x0A\x10ListTasksRequest\x124\x0A\x06parent\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Lake\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"z\x0A\x11ListTasksResponse\x12-\x0A\x05tasks\x18\x01 \x03(\x0B2\x1E.google.cloud.dataplex.v1.Task\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x1D\x0A\x15unreachable_locations\x18\x03 \x03(\x09\"D\x0A\x0EGetTaskRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Task\"B\x0A\x0DGetJobRequest\x121\x0A\x04name\x18\x01 \x01(\x09B#\xE0A\x02\xFAA\x1D\x0A\x1Bdataplex.googleapis.com/Job\"\xB2\x02\x0A\x0ERunTaskRequest\x122\x0A\x04name\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Task\x12I\x0A\x06labels\x18\x03 \x03(\x0B24.google.cloud.dataplex.v1.RunTaskRequest.LabelsEntryB\x03\xE0A\x01\x12E\x0A\x04args\x18\x04 \x03(\x0B22.google.cloud.dataplex.v1.RunTaskRequest.ArgsEntryB\x03\xE0A\x01\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\x1A+\x0A\x09ArgsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"=\x0A\x0FRunTaskResponse\x12*\x0A\x03job\x18\x01 \x01(\x0B2\x1D.google.cloud.dataplex.v1.Job\"x\x0A\x0FListJobsRequest\x124\x0A\x06parent\x18\x01 \x01(\x09B\$\xE0A\x02\xFAA\x1E\x0A\x1Cdataplex.googleapis.com/Task\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\"X\x0A\x10ListJobsResponse\x12+\x0A\x04jobs\x18\x01 \x03(\x0B2\x1D.google.cloud.dataplex.v1.Job\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"E\x0A\x10CancelJobRequest\x121\x0A\x04name\x18\x01 \x01(\x09B#\xE0A\x02\xFAA\x1D\x0A\x1Bdataplex.googleapis.com/Job2\xAB)\x0A\x0FDataplexService\x12\xC3\x01\x0A\x0ACreateLake\x12+.google.cloud.dataplex.v1.CreateLakeRequest\x1A\x1D.google.longrunning.Operation\"i\xCAA\x19\x0A\x04Lake\x12\x11OperationMetadata\xDAA\x13parent,lake,lake_id\x82\xD3\xE4\x93\x021\")/v1/{parent=projects/*/locations/*}/lakes:\x04lake\x12\xC5\x01\x0A\x0AUpdateLake\x12+.google.cloud.dataplex.v1.UpdateLakeRequest\x1A\x1D.google.longrunning.Operation\"k\xCAA\x19\x0A\x04Lake\x12\x11OperationMetadata\xDAA\x10lake,update_mask\x82\xD3\xE4\x93\x0262./v1/{lake.name=projects/*/locations/*/lakes/*}:\x04lake\x12\xBF\x01\x0A\x0ADeleteLake\x12+.google.cloud.dataplex.v1.DeleteLakeRequest\x1A\x1D.google.longrunning.Operation\"e\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x02+*)/v1/{name=projects/*/locations/*/lakes/*}\x12\xA0\x01\x0A\x09ListLakes\x12*.google.cloud.dataplex.v1.ListLakesRequest\x1A+.google.cloud.dataplex.v1.ListLakesResponse\":\xDAA\x06parent\x82\xD3\xE4\x93\x02+\x12)/v1/{parent=projects/*/locations/*}/lakes\x12\x8D\x01\x0A\x07GetLake\x12(.google.cloud.dataplex.v1.GetLakeRequest\x1A\x1E.google.cloud.dataplex.v1.Lake\"8\xDAA\x04name\x82\xD3\xE4\x93\x02+\x12)/v1/{name=projects/*/locations/*/lakes/*}\x12\xB8\x01\x0A\x0FListLakeActions\x120.google.cloud.dataplex.v1.ListLakeActionsRequest\x1A-.google.cloud.dataplex.v1.ListActionsResponse\"D\xDAA\x06parent\x82\xD3\xE4\x93\x025\x123/v1/{parent=projects/*/locations/*/lakes/*}/actions\x12\xCB\x01\x0A\x0ACreateZone\x12+.google.cloud.dataplex.v1.CreateZoneRequest\x1A\x1D.google.longrunning.Operation\"q\xCAA\x19\x0A\x04Zone\x12\x11OperationMetadata\xDAA\x13parent,zone,zone_id\x82\xD3\xE4\x93\x029\"1/v1/{parent=projects/*/locations/*/lakes/*}/zones:\x04zone\x12\xCD\x01\x0A\x0AUpdateZone\x12+.google.cloud.dataplex.v1.UpdateZoneRequest\x1A\x1D.google.longrunning.Operation\"s\xCAA\x19\x0A\x04Zone\x12\x11OperationMetadata\xDAA\x10zone,update_mask\x82\xD3\xE4\x93\x02>26/v1/{zone.name=projects/*/locations/*/lakes/*/zones/*}:\x04zone\x12\xC7\x01\x0A\x0ADeleteZone\x12+.google.cloud.dataplex.v1.DeleteZoneRequest\x1A\x1D.google.longrunning.Operation\"m\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x023*1/v1/{name=projects/*/locations/*/lakes/*/zones/*}\x12\xA8\x01\x0A\x09ListZones\x12*.google.cloud.dataplex.v1.ListZonesRequest\x1A+.google.cloud.dataplex.v1.ListZonesResponse\"B\xDAA\x06parent\x82\xD3\xE4\x93\x023\x121/v1/{parent=projects/*/locations/*/lakes/*}/zones\x12\x95\x01\x0A\x07GetZone\x12(.google.cloud.dataplex.v1.GetZoneRequest\x1A\x1E.google.cloud.dataplex.v1.Zone\"@\xDAA\x04name\x82\xD3\xE4\x93\x023\x121/v1/{name=projects/*/locations/*/lakes/*/zones/*}\x12\xC0\x01\x0A\x0FListZoneActions\x120.google.cloud.dataplex.v1.ListZoneActionsRequest\x1A-.google.cloud.dataplex.v1.ListActionsResponse\"L\xDAA\x06parent\x82\xD3\xE4\x93\x02=\x12;/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/actions\x12\xDA\x01\x0A\x0BCreateAsset\x12,.google.cloud.dataplex.v1.CreateAssetRequest\x1A\x1D.google.longrunning.Operation\"~\xCAA\x1A\x0A\x05Asset\x12\x11OperationMetadata\xDAA\x15parent,asset,asset_id\x82\xD3\xE4\x93\x02C\":/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/assets:\x05asset\x12\xDD\x01\x0A\x0BUpdateAsset\x12,.google.cloud.dataplex.v1.UpdateAssetRequest\x1A\x1D.google.longrunning.Operation\"\x80\x01\xCAA\x1A\x0A\x05Asset\x12\x11OperationMetadata\xDAA\x11asset,update_mask\x82\xD3\xE4\x93\x02I2@/v1/{asset.name=projects/*/locations/*/lakes/*/zones/*/assets/*}:\x05asset\x12\xD2\x01\x0A\x0BDeleteAsset\x12,.google.cloud.dataplex.v1.DeleteAssetRequest\x1A\x1D.google.longrunning.Operation\"v\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x02<*:/v1/{name=projects/*/locations/*/lakes/*/zones/*/assets/*}\x12\xB4\x01\x0A\x0AListAssets\x12+.google.cloud.dataplex.v1.ListAssetsRequest\x1A,.google.cloud.dataplex.v1.ListAssetsResponse\"K\xDAA\x06parent\x82\xD3\xE4\x93\x02<\x12:/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/assets\x12\xA1\x01\x0A\x08GetAsset\x12).google.cloud.dataplex.v1.GetAssetRequest\x1A\x1F.google.cloud.dataplex.v1.Asset\"I\xDAA\x04name\x82\xD3\xE4\x93\x02<\x12:/v1/{name=projects/*/locations/*/lakes/*/zones/*/assets/*}\x12\xCB\x01\x0A\x10ListAssetActions\x121.google.cloud.dataplex.v1.ListAssetActionsRequest\x1A-.google.cloud.dataplex.v1.ListActionsResponse\"U\xDAA\x06parent\x82\xD3\xE4\x93\x02F\x12D/v1/{parent=projects/*/locations/*/lakes/*/zones/*/assets/*}/actions\x12\xCB\x01\x0A\x0ACreateTask\x12+.google.cloud.dataplex.v1.CreateTaskRequest\x1A\x1D.google.longrunning.Operation\"q\xCAA\x19\x0A\x04Task\x12\x11OperationMetadata\xDAA\x13parent,task,task_id\x82\xD3\xE4\x93\x029\"1/v1/{parent=projects/*/locations/*/lakes/*}/tasks:\x04task\x12\xCD\x01\x0A\x0AUpdateTask\x12+.google.cloud.dataplex.v1.UpdateTaskRequest\x1A\x1D.google.longrunning.Operation\"s\xCAA\x19\x0A\x04Task\x12\x11OperationMetadata\xDAA\x10task,update_mask\x82\xD3\xE4\x93\x02>26/v1/{task.name=projects/*/locations/*/lakes/*/tasks/*}:\x04task\x12\xC7\x01\x0A\x0ADeleteTask\x12+.google.cloud.dataplex.v1.DeleteTaskRequest\x1A\x1D.google.longrunning.Operation\"m\xCAA*\x0A\x15google.protobuf.Empty\x12\x11OperationMetadata\xDAA\x04name\x82\xD3\xE4\x93\x023*1/v1/{name=projects/*/locations/*/lakes/*/tasks/*}\x12\xA8\x01\x0A\x09ListTasks\x12*.google.cloud.dataplex.v1.ListTasksRequest\x1A+.google.cloud.dataplex.v1.ListTasksResponse\"B\xDAA\x06parent\x82\xD3\xE4\x93\x023\x121/v1/{parent=projects/*/locations/*/lakes/*}/tasks\x12\x95\x01\x0A\x07GetTask\x12(.google.cloud.dataplex.v1.GetTaskRequest\x1A\x1E.google.cloud.dataplex.v1.Task\"@\xDAA\x04name\x82\xD3\xE4\x93\x023\x121/v1/{name=projects/*/locations/*/lakes/*/tasks/*}\x12\xAC\x01\x0A\x08ListJobs\x12).google.cloud.dataplex.v1.ListJobsRequest\x1A*.google.cloud.dataplex.v1.ListJobsResponse\"I\xDAA\x06parent\x82\xD3\xE4\x93\x02:\x128/v1/{parent=projects/*/locations/*/lakes/*/tasks/*}/jobs\x12\xA7\x01\x0A\x07RunTask\x12(.google.cloud.dataplex.v1.RunTaskRequest\x1A).google.cloud.dataplex.v1.RunTaskResponse\"G\xDAA\x04name\x82\xD3\xE4\x93\x02:\"5/v1/{name=projects/*/locations/*/lakes/*/tasks/*}:run:\x01*\x12\x99\x01\x0A\x06GetJob\x12'.google.cloud.dataplex.v1.GetJobRequest\x1A\x1D.google.cloud.dataplex.v1.Job\"G\xDAA\x04name\x82\xD3\xE4\x93\x02:\x128/v1/{name=projects/*/locations/*/lakes/*/tasks/*/jobs/*}\x12\xA2\x01\x0A\x09CancelJob\x12*.google.cloud.dataplex.v1.CancelJobRequest\x1A\x16.google.protobuf.Empty\"Q\xDAA\x04name\x82\xD3\xE4\x93\x02D\"?/v1/{name=projects/*/locations/*/lakes/*/tasks/*/jobs/*}:cancel:\x01*\x1A\xEB\x01\xCAA\x17dataplex.googleapis.com\xD2A\xCD\x01https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloud-platform.read-only,https://www.googleapis.com/auth/dataplex.read-write,https://www.googleapis.com/auth/dataplex.readonlyBh\x0A\x1Ccom.google.cloud.dataplex.v1B\x0CServiceProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" , true); static::$is_initialized = true; diff --git a/Dataplex/samples/V1/BusinessGlossaryServiceClient/list_locations.php b/Dataplex/samples/V1/BusinessGlossaryServiceClient/list_locations.php index 8e63806a7634..a5b8b3cea994 100644 --- a/Dataplex/samples/V1/BusinessGlossaryServiceClient/list_locations.php +++ b/Dataplex/samples/V1/BusinessGlossaryServiceClient/list_locations.php @@ -31,13 +31,21 @@ /** * Lists information about the supported locations for this service. -This method can be called in two ways: -* **List all public locations:** Use the path `GET /v1/locations`. -* **List project-visible locations:** Use the path -`GET /v1/projects/{project_id}/locations`. This may include public -locations as well as private or other locations specifically visible -to the project. +This method lists locations based on the resource scope provided in +the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: * +**Global locations**: If `name` is empty, the method lists the +public locations available to all projects. * **Project-specific +locations**: If `name` follows the format +`projects/{project}`, the method lists locations visible to that +specific project. This includes public, private, or other +project-specific locations enabled for the project. + +For gRPC and client library implementations, the resource name is +passed as the `name` field. For direct service calls, the resource +name is +incorporated into the request path based on the specific service +implementation and version. * * This sample has been automatically generated and should be regarded as a code * template only. It will require modifications to work: diff --git a/Dataplex/samples/V1/CatalogServiceClient/list_locations.php b/Dataplex/samples/V1/CatalogServiceClient/list_locations.php index 5579a3485476..0f6af50de22d 100644 --- a/Dataplex/samples/V1/CatalogServiceClient/list_locations.php +++ b/Dataplex/samples/V1/CatalogServiceClient/list_locations.php @@ -31,13 +31,21 @@ /** * Lists information about the supported locations for this service. -This method can be called in two ways: -* **List all public locations:** Use the path `GET /v1/locations`. -* **List project-visible locations:** Use the path -`GET /v1/projects/{project_id}/locations`. This may include public -locations as well as private or other locations specifically visible -to the project. +This method lists locations based on the resource scope provided in +the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: * +**Global locations**: If `name` is empty, the method lists the +public locations available to all projects. * **Project-specific +locations**: If `name` follows the format +`projects/{project}`, the method lists locations visible to that +specific project. This includes public, private, or other +project-specific locations enabled for the project. + +For gRPC and client library implementations, the resource name is +passed as the `name` field. For direct service calls, the resource +name is +incorporated into the request path based on the specific service +implementation and version. * * This sample has been automatically generated and should be regarded as a code * template only. It will require modifications to work: diff --git a/Dataplex/samples/V1/CatalogServiceClient/lookup_context.php b/Dataplex/samples/V1/CatalogServiceClient/lookup_context.php index a26dfe8ff529..28993447e96e 100644 --- a/Dataplex/samples/V1/CatalogServiceClient/lookup_context.php +++ b/Dataplex/samples/V1/CatalogServiceClient/lookup_context.php @@ -33,12 +33,12 @@ * * @param string $name The project to which the request should be attributed in the * following form: `projects/{project}/locations/{location}`. - * @param string $formattedResourcesElement The entry names to lookup context for. The request should have - * max 10 of those. + * @param string $formattedResourcesElement The entry names to look up the context for. The maximum number of + * resources for a request is limited to 10. * * ## Examples: * - * projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry} + * `projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}` * Please see {@see CatalogServiceClient::entryName()} for help formatting this field. */ function lookup_context_sample(string $name, string $formattedResourcesElement): void diff --git a/Dataplex/samples/V1/CatalogServiceClient/modify_entry.php b/Dataplex/samples/V1/CatalogServiceClient/modify_entry.php new file mode 100644 index 000000000000..a1801f4b21aa --- /dev/null +++ b/Dataplex/samples/V1/CatalogServiceClient/modify_entry.php @@ -0,0 +1,78 @@ +setEntryType($entryEntryType); + $request = (new ModifyEntryRequest()) + ->setName($name) + ->setEntry($entry); + + // Call the API and handle any network failures. + try { + /** @var Entry $response */ + $response = $catalogServiceClient->modifyEntry($request); + printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString()); + } catch (ApiException $ex) { + printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage()); + } +} + +/** + * Helper to execute the sample. + * + * This sample has been automatically generated and should be regarded as a code + * template only. It will require modifications to work: + * - It may require correct/in-range values for request initialization. + * - It may require specifying regional endpoints when creating the service client, + * please see the apiEndpoint client configuration option for more details. + */ +function callSample(): void +{ + $name = '[NAME]'; + $entryEntryType = '[ENTRY_TYPE]'; + + modify_entry_sample($name, $entryEntryType); +} +// [END dataplex_v1_generated_CatalogService_ModifyEntry_sync] diff --git a/Dataplex/samples/V1/CmekServiceClient/list_locations.php b/Dataplex/samples/V1/CmekServiceClient/list_locations.php index f4089d04312b..5af662a81fe6 100644 --- a/Dataplex/samples/V1/CmekServiceClient/list_locations.php +++ b/Dataplex/samples/V1/CmekServiceClient/list_locations.php @@ -31,13 +31,21 @@ /** * Lists information about the supported locations for this service. -This method can be called in two ways: -* **List all public locations:** Use the path `GET /v1/locations`. -* **List project-visible locations:** Use the path -`GET /v1/projects/{project_id}/locations`. This may include public -locations as well as private or other locations specifically visible -to the project. +This method lists locations based on the resource scope provided in +the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: * +**Global locations**: If `name` is empty, the method lists the +public locations available to all projects. * **Project-specific +locations**: If `name` follows the format +`projects/{project}`, the method lists locations visible to that +specific project. This includes public, private, or other +project-specific locations enabled for the project. + +For gRPC and client library implementations, the resource name is +passed as the `name` field. For direct service calls, the resource +name is +incorporated into the request path based on the specific service +implementation and version. * * This sample has been automatically generated and should be regarded as a code * template only. It will require modifications to work: diff --git a/Dataplex/samples/V1/ContentServiceClient/list_locations.php b/Dataplex/samples/V1/ContentServiceClient/list_locations.php index 93bd45b7ca9c..0375a96ead7c 100644 --- a/Dataplex/samples/V1/ContentServiceClient/list_locations.php +++ b/Dataplex/samples/V1/ContentServiceClient/list_locations.php @@ -31,13 +31,21 @@ /** * Lists information about the supported locations for this service. -This method can be called in two ways: -* **List all public locations:** Use the path `GET /v1/locations`. -* **List project-visible locations:** Use the path -`GET /v1/projects/{project_id}/locations`. This may include public -locations as well as private or other locations specifically visible -to the project. +This method lists locations based on the resource scope provided in +the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: * +**Global locations**: If `name` is empty, the method lists the +public locations available to all projects. * **Project-specific +locations**: If `name` follows the format +`projects/{project}`, the method lists locations visible to that +specific project. This includes public, private, or other +project-specific locations enabled for the project. + +For gRPC and client library implementations, the resource name is +passed as the `name` field. For direct service calls, the resource +name is +incorporated into the request path based on the specific service +implementation and version. * * This sample has been automatically generated and should be regarded as a code * template only. It will require modifications to work: diff --git a/Dataplex/samples/V1/DataProductServiceClient/list_locations.php b/Dataplex/samples/V1/DataProductServiceClient/list_locations.php index 4e4d78f3a867..7791ca9b6cda 100644 --- a/Dataplex/samples/V1/DataProductServiceClient/list_locations.php +++ b/Dataplex/samples/V1/DataProductServiceClient/list_locations.php @@ -31,13 +31,21 @@ /** * Lists information about the supported locations for this service. -This method can be called in two ways: -* **List all public locations:** Use the path `GET /v1/locations`. -* **List project-visible locations:** Use the path -`GET /v1/projects/{project_id}/locations`. This may include public -locations as well as private or other locations specifically visible -to the project. +This method lists locations based on the resource scope provided in +the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: * +**Global locations**: If `name` is empty, the method lists the +public locations available to all projects. * **Project-specific +locations**: If `name` follows the format +`projects/{project}`, the method lists locations visible to that +specific project. This includes public, private, or other +project-specific locations enabled for the project. + +For gRPC and client library implementations, the resource name is +passed as the `name` field. For direct service calls, the resource +name is +incorporated into the request path based on the specific service +implementation and version. * * This sample has been automatically generated and should be regarded as a code * template only. It will require modifications to work: diff --git a/Dataplex/samples/V1/DataProductServiceClient/request_data_product_access.php b/Dataplex/samples/V1/DataProductServiceClient/request_data_product_access.php new file mode 100644 index 000000000000..9093001767c3 --- /dev/null +++ b/Dataplex/samples/V1/DataProductServiceClient/request_data_product_access.php @@ -0,0 +1,82 @@ +setParent($formattedParent) + ->setChangeRequest($changeRequest); + + // Call the API and handle any network failures. + try { + /** @var RequestDataProductAccessResponse $response */ + $response = $dataProductServiceClient->requestDataProductAccess($request); + printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString()); + } catch (ApiException $ex) { + printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage()); + } +} + +/** + * Helper to execute the sample. + * + * This sample has been automatically generated and should be regarded as a code + * template only. It will require modifications to work: + * - It may require correct/in-range values for request initialization. + * - It may require specifying regional endpoints when creating the service client, + * please see the apiEndpoint client configuration option for more details. + */ +function callSample(): void +{ + $formattedParent = DataProductServiceClient::dataProductName( + '[PROJECT]', + '[LOCATION]', + '[DATA_PRODUCT]' + ); + + request_data_product_access_sample($formattedParent); +} +// [END dataplex_v1_generated_DataProductService_RequestDataProductAccess_sync] diff --git a/Dataplex/samples/V1/DataScanServiceClient/cancel_data_scan_job.php b/Dataplex/samples/V1/DataScanServiceClient/cancel_data_scan_job.php new file mode 100644 index 000000000000..c7c3c6a0bf74 --- /dev/null +++ b/Dataplex/samples/V1/DataScanServiceClient/cancel_data_scan_job.php @@ -0,0 +1,79 @@ +setName($formattedName); + + // Call the API and handle any network failures. + try { + /** @var CancelDataScanJobResponse $response */ + $response = $dataScanServiceClient->cancelDataScanJob($request); + printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString()); + } catch (ApiException $ex) { + printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage()); + } +} + +/** + * Helper to execute the sample. + * + * This sample has been automatically generated and should be regarded as a code + * template only. It will require modifications to work: + * - It may require correct/in-range values for request initialization. + * - It may require specifying regional endpoints when creating the service client, + * please see the apiEndpoint client configuration option for more details. + */ +function callSample(): void +{ + $formattedName = DataScanServiceClient::dataScanJobName( + '[PROJECT]', + '[LOCATION]', + '[DATASCAN]', + '[JOB]' + ); + + cancel_data_scan_job_sample($formattedName); +} +// [END dataplex_v1_generated_DataScanService_CancelDataScanJob_sync] diff --git a/Dataplex/samples/V1/DataScanServiceClient/create_data_scan.php b/Dataplex/samples/V1/DataScanServiceClient/create_data_scan.php index 5923f28f4b9e..56e83aa257f7 100644 --- a/Dataplex/samples/V1/DataScanServiceClient/create_data_scan.php +++ b/Dataplex/samples/V1/DataScanServiceClient/create_data_scan.php @@ -39,15 +39,8 @@ * where `project` refers to a *project_id* or *project_number* and * `location_id` refers to a Google Cloud region. Please see * {@see DataScanServiceClient::locationName()} for help formatting this field. - * @param string $dataScanId DataScan identifier. - * - * * Must contain only lowercase letters, numbers and hyphens. - * * Must start with a letter. - * * Must end with a number or a letter. - * * Must be between 1-63 characters. - * * Must be unique within the customer project / location. */ -function create_data_scan_sample(string $formattedParent, string $dataScanId): void +function create_data_scan_sample(string $formattedParent): void { // Create a client. $dataScanServiceClient = new DataScanServiceClient(); @@ -58,8 +51,7 @@ function create_data_scan_sample(string $formattedParent, string $dataScanId): v ->setData($dataScanData); $request = (new CreateDataScanRequest()) ->setParent($formattedParent) - ->setDataScan($dataScan) - ->setDataScanId($dataScanId); + ->setDataScan($dataScan); // Call the API and handle any network failures. try { @@ -93,8 +85,7 @@ function create_data_scan_sample(string $formattedParent, string $dataScanId): v function callSample(): void { $formattedParent = DataScanServiceClient::locationName('[PROJECT]', '[LOCATION]'); - $dataScanId = '[DATA_SCAN_ID]'; - create_data_scan_sample($formattedParent, $dataScanId); + create_data_scan_sample($formattedParent); } // [END dataplex_v1_generated_DataScanService_CreateDataScan_sync] diff --git a/Dataplex/samples/V1/DataScanServiceClient/list_locations.php b/Dataplex/samples/V1/DataScanServiceClient/list_locations.php index f38389ee09cc..7acdf0679b88 100644 --- a/Dataplex/samples/V1/DataScanServiceClient/list_locations.php +++ b/Dataplex/samples/V1/DataScanServiceClient/list_locations.php @@ -31,13 +31,21 @@ /** * Lists information about the supported locations for this service. -This method can be called in two ways: -* **List all public locations:** Use the path `GET /v1/locations`. -* **List project-visible locations:** Use the path -`GET /v1/projects/{project_id}/locations`. This may include public -locations as well as private or other locations specifically visible -to the project. +This method lists locations based on the resource scope provided in +the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: * +**Global locations**: If `name` is empty, the method lists the +public locations available to all projects. * **Project-specific +locations**: If `name` follows the format +`projects/{project}`, the method lists locations visible to that +specific project. This includes public, private, or other +project-specific locations enabled for the project. + +For gRPC and client library implementations, the resource name is +passed as the `name` field. For direct service calls, the resource +name is +incorporated into the request path based on the specific service +implementation and version. * * This sample has been automatically generated and should be regarded as a code * template only. It will require modifications to work: diff --git a/Dataplex/samples/V1/DataTaxonomyServiceClient/list_locations.php b/Dataplex/samples/V1/DataTaxonomyServiceClient/list_locations.php index a8d710497659..185519289ccc 100644 --- a/Dataplex/samples/V1/DataTaxonomyServiceClient/list_locations.php +++ b/Dataplex/samples/V1/DataTaxonomyServiceClient/list_locations.php @@ -31,13 +31,21 @@ /** * Lists information about the supported locations for this service. -This method can be called in two ways: -* **List all public locations:** Use the path `GET /v1/locations`. -* **List project-visible locations:** Use the path -`GET /v1/projects/{project_id}/locations`. This may include public -locations as well as private or other locations specifically visible -to the project. +This method lists locations based on the resource scope provided in +the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: * +**Global locations**: If `name` is empty, the method lists the +public locations available to all projects. * **Project-specific +locations**: If `name` follows the format +`projects/{project}`, the method lists locations visible to that +specific project. This includes public, private, or other +project-specific locations enabled for the project. + +For gRPC and client library implementations, the resource name is +passed as the `name` field. For direct service calls, the resource +name is +incorporated into the request path based on the specific service +implementation and version. * * This sample has been automatically generated and should be regarded as a code * template only. It will require modifications to work: diff --git a/Dataplex/samples/V1/DataplexServiceClient/list_locations.php b/Dataplex/samples/V1/DataplexServiceClient/list_locations.php index b525a8f5402a..aadfc0a7a0bc 100644 --- a/Dataplex/samples/V1/DataplexServiceClient/list_locations.php +++ b/Dataplex/samples/V1/DataplexServiceClient/list_locations.php @@ -31,13 +31,21 @@ /** * Lists information about the supported locations for this service. -This method can be called in two ways: -* **List all public locations:** Use the path `GET /v1/locations`. -* **List project-visible locations:** Use the path -`GET /v1/projects/{project_id}/locations`. This may include public -locations as well as private or other locations specifically visible -to the project. +This method lists locations based on the resource scope provided in +the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: * +**Global locations**: If `name` is empty, the method lists the +public locations available to all projects. * **Project-specific +locations**: If `name` follows the format +`projects/{project}`, the method lists locations visible to that +specific project. This includes public, private, or other +project-specific locations enabled for the project. + +For gRPC and client library implementations, the resource name is +passed as the `name` field. For direct service calls, the resource +name is +incorporated into the request path based on the specific service +implementation and version. * * This sample has been automatically generated and should be regarded as a code * template only. It will require modifications to work: diff --git a/Dataplex/samples/V1/MetadataServiceClient/list_locations.php b/Dataplex/samples/V1/MetadataServiceClient/list_locations.php index e4b5189588c9..a4ed47206cd0 100644 --- a/Dataplex/samples/V1/MetadataServiceClient/list_locations.php +++ b/Dataplex/samples/V1/MetadataServiceClient/list_locations.php @@ -31,13 +31,21 @@ /** * Lists information about the supported locations for this service. -This method can be called in two ways: -* **List all public locations:** Use the path `GET /v1/locations`. -* **List project-visible locations:** Use the path -`GET /v1/projects/{project_id}/locations`. This may include public -locations as well as private or other locations specifically visible -to the project. +This method lists locations based on the resource scope provided in +the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: * +**Global locations**: If `name` is empty, the method lists the +public locations available to all projects. * **Project-specific +locations**: If `name` follows the format +`projects/{project}`, the method lists locations visible to that +specific project. This includes public, private, or other +project-specific locations enabled for the project. + +For gRPC and client library implementations, the resource name is +passed as the `name` field. For direct service calls, the resource +name is +incorporated into the request path based on the specific service +implementation and version. * * This sample has been automatically generated and should be regarded as a code * template only. It will require modifications to work: diff --git a/Dataplex/src/V1/Aspect.php b/Dataplex/src/V1/Aspect.php index 9e54209e87fd..1cf3c1a17717 100644 --- a/Dataplex/src/V1/Aspect.php +++ b/Dataplex/src/V1/Aspect.php @@ -9,7 +9,7 @@ use Google\Protobuf\RepeatedField; /** - * An aspect is a single piece of metadata describing an entry. + * Represents a single piece of metadata describing an entry or entry link. * * Generated from protobuf message google.cloud.dataplex.v1.Aspect */ diff --git a/Dataplex/src/V1/CancelDataScanJobRequest.php b/Dataplex/src/V1/CancelDataScanJobRequest.php new file mode 100644 index 000000000000..a19502ed983b --- /dev/null +++ b/Dataplex/src/V1/CancelDataScanJobRequest.php @@ -0,0 +1,96 @@ +google.cloud.dataplex.v1.CancelDataScanJobRequest + */ +class CancelDataScanJobRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The resource name of the DataScanJob: + * `projects/{project_id_or_number}/locations/{location_id}/dataScans/{data_scan_id}/jobs/{data_scan_job_id}` + * where `project_id_or_number` refers to a *project_id* or *project_number* + * and `location_id` refers to a Google Cloud region. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The resource name of the DataScanJob: + * `projects/{project_id_or_number}/locations/{location_id}/dataScans/{data_scan_id}/jobs/{data_scan_job_id}` + * where `project_id_or_number` refers to a *project_id* or *project_number* + * and `location_id` refers to a Google Cloud region. Please see + * {@see DataScanServiceClient::dataScanJobName()} for help formatting this field. + * + * @return \Google\Cloud\Dataplex\V1\CancelDataScanJobRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The resource name of the DataScanJob: + * `projects/{project_id_or_number}/locations/{location_id}/dataScans/{data_scan_id}/jobs/{data_scan_job_id}` + * where `project_id_or_number` refers to a *project_id* or *project_number* + * and `location_id` refers to a Google Cloud region. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\Datascans::initOnce(); + parent::__construct($data); + } + + /** + * Required. The resource name of the DataScanJob: + * `projects/{project_id_or_number}/locations/{location_id}/dataScans/{data_scan_id}/jobs/{data_scan_job_id}` + * where `project_id_or_number` refers to a *project_id* or *project_number* + * and `location_id` refers to a Google Cloud region. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The resource name of the DataScanJob: + * `projects/{project_id_or_number}/locations/{location_id}/dataScans/{data_scan_id}/jobs/{data_scan_job_id}` + * where `project_id_or_number` refers to a *project_id* or *project_number* + * and `location_id` refers to a Google Cloud region. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/Dataplex/src/V1/CancelDataScanJobResponse.php b/Dataplex/src/V1/CancelDataScanJobResponse.php new file mode 100644 index 000000000000..81f14e7f9e48 --- /dev/null +++ b/Dataplex/src/V1/CancelDataScanJobResponse.php @@ -0,0 +1,33 @@ +google.cloud.dataplex.v1.CancelDataScanJobResponse + */ +class CancelDataScanJobResponse extends \Google\Protobuf\Internal\Message +{ + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\Datascans::initOnce(); + parent::__construct($data); + } + +} + diff --git a/Dataplex/src/V1/ChangeRequest.php b/Dataplex/src/V1/ChangeRequest.php new file mode 100644 index 000000000000..6b64c8613bc7 --- /dev/null +++ b/Dataplex/src/V1/ChangeRequest.php @@ -0,0 +1,1031 @@ +google.cloud.dataplex.v1.ChangeRequest + */ +class ChangeRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Identifier. The relative resource name of the ChangeRequest, of the form: + * projects/{project_number}/locations/{location_id}/changeRequests/{change_request_id} + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER]; + */ + protected $name = ''; + /** + * Output only. System generated globally unique ID for the ChangeRequest. + * + * Generated from protobuf field string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_info) = { + */ + protected $uid = ''; + /** + * Output only. The time when the ChangeRequest was created. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $create_time = null; + /** + * Output only. The time when the ChangeRequest was last updated. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $update_time = null; + /** + * Optional. Justification of the ChangeRequest. This should explain + * *why* the change is needed or why it should be approved. + * + * Generated from protobuf field string justification = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $justification = ''; + /** + * Optional. User-defined labels for the ChangeRequest. + * + * Generated from protobuf field map labels = 6 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $labels; + /** + * Output only. The email address of the user who created the ChangeRequest. + * + * Generated from protobuf field string author = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $author = ''; + /** + * Output only. The current state of the ChangeRequest. + * + * Generated from protobuf field .google.cloud.dataplex.v1.ChangeRequest.State state = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $state = 0; + /** + * Output only. The full resource name of the target resource to be modified. + * Example: + * //dataplex.googleapis.com/projects/my-project/locations/us-central1/entryGroups/my-group/entries/my-entry + * + * Generated from protobuf field string resource = 9 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { + */ + protected $resource = ''; + /** + * Output only. The type of change represented by the change_payload. + * This field is derived from the populated field in the change_payload oneof. + * + * Generated from protobuf field .google.cloud.dataplex.v1.ChangeRequest.ChangeType change_type = 19 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $change_type = 0; + /** + * Output only. The reason provided for rejecting the ChangeRequest. + * + * Generated from protobuf field string rejection_comment = 16 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $rejection_comment = ''; + /** + * Output only. The email address of the user who approved/rejected the + * ChangeRequest. + * + * Generated from protobuf field string approver = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $approver = ''; + /** + * Optional. This checksum is computed by the service. It can be sent on + * update and delete requests to ensure the client has an up-to-date value + * before proceeding. + * + * Generated from protobuf field string etag = 18 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $etag = ''; + protected $change_payload; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Identifier. The relative resource name of the ChangeRequest, of the form: + * projects/{project_number}/locations/{location_id}/changeRequests/{change_request_id} + * @type string $uid + * Output only. System generated globally unique ID for the ChangeRequest. + * @type \Google\Protobuf\Timestamp $create_time + * Output only. The time when the ChangeRequest was created. + * @type \Google\Protobuf\Timestamp $update_time + * Output only. The time when the ChangeRequest was last updated. + * @type string $justification + * Optional. Justification of the ChangeRequest. This should explain + * *why* the change is needed or why it should be approved. + * @type array|\Google\Protobuf\Internal\MapField $labels + * Optional. User-defined labels for the ChangeRequest. + * @type string $author + * Output only. The email address of the user who created the ChangeRequest. + * @type int $state + * Output only. The current state of the ChangeRequest. + * @type string $resource + * Output only. The full resource name of the target resource to be modified. + * Example: + * //dataplex.googleapis.com/projects/my-project/locations/us-central1/entryGroups/my-group/entries/my-entry + * @type \Google\Cloud\Dataplex\V1\CreateEntryRequest $create_entry + * Payload for creating an Entry. + * @type \Google\Cloud\Dataplex\V1\UpdateEntryRequest $update_entry + * Payload for updating an Entry. + * @type \Google\Cloud\Dataplex\V1\DeleteEntryRequest $delete_entry + * Payload for deleting an Entry. + * @type \Google\Cloud\Dataplex\V1\CreateEntryLinkRequest $create_entry_link + * Payload for creating an EntryLink. + * @type \Google\Cloud\Dataplex\V1\DeleteEntryLinkRequest $delete_entry_link + * Payload for deleting an EntryLink. + * @type \Google\Cloud\Dataplex\V1\CreateGlossaryRequest $create_glossary + * Payload for creating a Glossary. + * @type \Google\Cloud\Dataplex\V1\UpdateGlossaryRequest $update_glossary + * Payload for updating a Glossary. + * @type \Google\Cloud\Dataplex\V1\DeleteGlossaryRequest $delete_glossary + * Payload for deleting a Glossary. + * @type \Google\Cloud\Dataplex\V1\CreateGlossaryCategoryRequest $create_glossary_category + * Payload for creating a GlossaryCategory. + * @type \Google\Cloud\Dataplex\V1\UpdateGlossaryCategoryRequest $update_glossary_category + * Payload for updating a GlossaryCategory. + * @type \Google\Cloud\Dataplex\V1\DeleteGlossaryCategoryRequest $delete_glossary_category + * Payload for deleting a GlossaryCategory. + * @type \Google\Cloud\Dataplex\V1\CreateGlossaryTermRequest $create_glossary_term + * Payload for creating a GlossaryTerm. + * @type \Google\Cloud\Dataplex\V1\UpdateGlossaryTermRequest $update_glossary_term + * Payload for updating a GlossaryTerm. + * @type \Google\Cloud\Dataplex\V1\DeleteGlossaryTermRequest $delete_glossary_term + * Payload for deleting a GlossaryTerm. + * @type \Google\Cloud\Dataplex\V1\DataProductAccessRequest $data_product_access_request + * Payload for Data Product access request. + * @type int $change_type + * Output only. The type of change represented by the change_payload. + * This field is derived from the populated field in the change_payload oneof. + * @type string $rejection_comment + * Output only. The reason provided for rejecting the ChangeRequest. + * @type string $approver + * Output only. The email address of the user who approved/rejected the + * ChangeRequest. + * @type string $etag + * Optional. This checksum is computed by the service. It can be sent on + * update and delete requests to ensure the client has an up-to-date value + * before proceeding. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\ApprovalWorkflow::initOnce(); + parent::__construct($data); + } + + /** + * Identifier. The relative resource name of the ChangeRequest, of the form: + * projects/{project_number}/locations/{location_id}/changeRequests/{change_request_id} + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Identifier. The relative resource name of the ChangeRequest, of the form: + * projects/{project_number}/locations/{location_id}/changeRequests/{change_request_id} + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Output only. System generated globally unique ID for the ChangeRequest. + * + * Generated from protobuf field string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_info) = { + * @return string + */ + public function getUid() + { + return $this->uid; + } + + /** + * Output only. System generated globally unique ID for the ChangeRequest. + * + * Generated from protobuf field string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_info) = { + * @param string $var + * @return $this + */ + public function setUid($var) + { + GPBUtil::checkString($var, True); + $this->uid = $var; + + return $this; + } + + /** + * Output only. The time when the ChangeRequest was created. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Output only. The time when the ChangeRequest was created. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + + /** + * Output only. The time when the ChangeRequest was last updated. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getUpdateTime() + { + return $this->update_time; + } + + public function hasUpdateTime() + { + return isset($this->update_time); + } + + public function clearUpdateTime() + { + unset($this->update_time); + } + + /** + * Output only. The time when the ChangeRequest was last updated. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setUpdateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->update_time = $var; + + return $this; + } + + /** + * Optional. Justification of the ChangeRequest. This should explain + * *why* the change is needed or why it should be approved. + * + * Generated from protobuf field string justification = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getJustification() + { + return $this->justification; + } + + /** + * Optional. Justification of the ChangeRequest. This should explain + * *why* the change is needed or why it should be approved. + * + * Generated from protobuf field string justification = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setJustification($var) + { + GPBUtil::checkString($var, True); + $this->justification = $var; + + return $this; + } + + /** + * Optional. User-defined labels for the ChangeRequest. + * + * Generated from protobuf field map labels = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\MapField + */ + public function getLabels() + { + return $this->labels; + } + + /** + * Optional. User-defined labels for the ChangeRequest. + * + * Generated from protobuf field map labels = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setLabels($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->labels = $arr; + + return $this; + } + + /** + * Output only. The email address of the user who created the ChangeRequest. + * + * Generated from protobuf field string author = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getAuthor() + { + return $this->author; + } + + /** + * Output only. The email address of the user who created the ChangeRequest. + * + * Generated from protobuf field string author = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setAuthor($var) + { + GPBUtil::checkString($var, True); + $this->author = $var; + + return $this; + } + + /** + * Output only. The current state of the ChangeRequest. + * + * Generated from protobuf field .google.cloud.dataplex.v1.ChangeRequest.State state = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int + */ + public function getState() + { + return $this->state; + } + + /** + * Output only. The current state of the ChangeRequest. + * + * Generated from protobuf field .google.cloud.dataplex.v1.ChangeRequest.State state = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int $var + * @return $this + */ + public function setState($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dataplex\V1\ChangeRequest\State::class); + $this->state = $var; + + return $this; + } + + /** + * Output only. The full resource name of the target resource to be modified. + * Example: + * //dataplex.googleapis.com/projects/my-project/locations/us-central1/entryGroups/my-group/entries/my-entry + * + * Generated from protobuf field string resource = 9 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { + * @return string + */ + public function getResource() + { + return $this->resource; + } + + /** + * Output only. The full resource name of the target resource to be modified. + * Example: + * //dataplex.googleapis.com/projects/my-project/locations/us-central1/entryGroups/my-group/entries/my-entry + * + * Generated from protobuf field string resource = 9 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setResource($var) + { + GPBUtil::checkString($var, True); + $this->resource = $var; + + return $this; + } + + /** + * Payload for creating an Entry. + * + * Generated from protobuf field .google.cloud.dataplex.v1.CreateEntryRequest create_entry = 10; + * @return \Google\Cloud\Dataplex\V1\CreateEntryRequest|null + */ + public function getCreateEntry() + { + return $this->readOneof(10); + } + + public function hasCreateEntry() + { + return $this->hasOneof(10); + } + + /** + * Payload for creating an Entry. + * + * Generated from protobuf field .google.cloud.dataplex.v1.CreateEntryRequest create_entry = 10; + * @param \Google\Cloud\Dataplex\V1\CreateEntryRequest $var + * @return $this + */ + public function setCreateEntry($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\CreateEntryRequest::class); + $this->writeOneof(10, $var); + + return $this; + } + + /** + * Payload for updating an Entry. + * + * Generated from protobuf field .google.cloud.dataplex.v1.UpdateEntryRequest update_entry = 11; + * @return \Google\Cloud\Dataplex\V1\UpdateEntryRequest|null + */ + public function getUpdateEntry() + { + return $this->readOneof(11); + } + + public function hasUpdateEntry() + { + return $this->hasOneof(11); + } + + /** + * Payload for updating an Entry. + * + * Generated from protobuf field .google.cloud.dataplex.v1.UpdateEntryRequest update_entry = 11; + * @param \Google\Cloud\Dataplex\V1\UpdateEntryRequest $var + * @return $this + */ + public function setUpdateEntry($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\UpdateEntryRequest::class); + $this->writeOneof(11, $var); + + return $this; + } + + /** + * Payload for deleting an Entry. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DeleteEntryRequest delete_entry = 12; + * @return \Google\Cloud\Dataplex\V1\DeleteEntryRequest|null + */ + public function getDeleteEntry() + { + return $this->readOneof(12); + } + + public function hasDeleteEntry() + { + return $this->hasOneof(12); + } + + /** + * Payload for deleting an Entry. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DeleteEntryRequest delete_entry = 12; + * @param \Google\Cloud\Dataplex\V1\DeleteEntryRequest $var + * @return $this + */ + public function setDeleteEntry($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\DeleteEntryRequest::class); + $this->writeOneof(12, $var); + + return $this; + } + + /** + * Payload for creating an EntryLink. + * + * Generated from protobuf field .google.cloud.dataplex.v1.CreateEntryLinkRequest create_entry_link = 13; + * @return \Google\Cloud\Dataplex\V1\CreateEntryLinkRequest|null + */ + public function getCreateEntryLink() + { + return $this->readOneof(13); + } + + public function hasCreateEntryLink() + { + return $this->hasOneof(13); + } + + /** + * Payload for creating an EntryLink. + * + * Generated from protobuf field .google.cloud.dataplex.v1.CreateEntryLinkRequest create_entry_link = 13; + * @param \Google\Cloud\Dataplex\V1\CreateEntryLinkRequest $var + * @return $this + */ + public function setCreateEntryLink($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\CreateEntryLinkRequest::class); + $this->writeOneof(13, $var); + + return $this; + } + + /** + * Payload for deleting an EntryLink. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DeleteEntryLinkRequest delete_entry_link = 14; + * @return \Google\Cloud\Dataplex\V1\DeleteEntryLinkRequest|null + */ + public function getDeleteEntryLink() + { + return $this->readOneof(14); + } + + public function hasDeleteEntryLink() + { + return $this->hasOneof(14); + } + + /** + * Payload for deleting an EntryLink. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DeleteEntryLinkRequest delete_entry_link = 14; + * @param \Google\Cloud\Dataplex\V1\DeleteEntryLinkRequest $var + * @return $this + */ + public function setDeleteEntryLink($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\DeleteEntryLinkRequest::class); + $this->writeOneof(14, $var); + + return $this; + } + + /** + * Payload for creating a Glossary. + * + * Generated from protobuf field .google.cloud.dataplex.v1.CreateGlossaryRequest create_glossary = 20; + * @return \Google\Cloud\Dataplex\V1\CreateGlossaryRequest|null + */ + public function getCreateGlossary() + { + return $this->readOneof(20); + } + + public function hasCreateGlossary() + { + return $this->hasOneof(20); + } + + /** + * Payload for creating a Glossary. + * + * Generated from protobuf field .google.cloud.dataplex.v1.CreateGlossaryRequest create_glossary = 20; + * @param \Google\Cloud\Dataplex\V1\CreateGlossaryRequest $var + * @return $this + */ + public function setCreateGlossary($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\CreateGlossaryRequest::class); + $this->writeOneof(20, $var); + + return $this; + } + + /** + * Payload for updating a Glossary. + * + * Generated from protobuf field .google.cloud.dataplex.v1.UpdateGlossaryRequest update_glossary = 21; + * @return \Google\Cloud\Dataplex\V1\UpdateGlossaryRequest|null + */ + public function getUpdateGlossary() + { + return $this->readOneof(21); + } + + public function hasUpdateGlossary() + { + return $this->hasOneof(21); + } + + /** + * Payload for updating a Glossary. + * + * Generated from protobuf field .google.cloud.dataplex.v1.UpdateGlossaryRequest update_glossary = 21; + * @param \Google\Cloud\Dataplex\V1\UpdateGlossaryRequest $var + * @return $this + */ + public function setUpdateGlossary($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\UpdateGlossaryRequest::class); + $this->writeOneof(21, $var); + + return $this; + } + + /** + * Payload for deleting a Glossary. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DeleteGlossaryRequest delete_glossary = 22; + * @return \Google\Cloud\Dataplex\V1\DeleteGlossaryRequest|null + */ + public function getDeleteGlossary() + { + return $this->readOneof(22); + } + + public function hasDeleteGlossary() + { + return $this->hasOneof(22); + } + + /** + * Payload for deleting a Glossary. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DeleteGlossaryRequest delete_glossary = 22; + * @param \Google\Cloud\Dataplex\V1\DeleteGlossaryRequest $var + * @return $this + */ + public function setDeleteGlossary($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\DeleteGlossaryRequest::class); + $this->writeOneof(22, $var); + + return $this; + } + + /** + * Payload for creating a GlossaryCategory. + * + * Generated from protobuf field .google.cloud.dataplex.v1.CreateGlossaryCategoryRequest create_glossary_category = 23; + * @return \Google\Cloud\Dataplex\V1\CreateGlossaryCategoryRequest|null + */ + public function getCreateGlossaryCategory() + { + return $this->readOneof(23); + } + + public function hasCreateGlossaryCategory() + { + return $this->hasOneof(23); + } + + /** + * Payload for creating a GlossaryCategory. + * + * Generated from protobuf field .google.cloud.dataplex.v1.CreateGlossaryCategoryRequest create_glossary_category = 23; + * @param \Google\Cloud\Dataplex\V1\CreateGlossaryCategoryRequest $var + * @return $this + */ + public function setCreateGlossaryCategory($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\CreateGlossaryCategoryRequest::class); + $this->writeOneof(23, $var); + + return $this; + } + + /** + * Payload for updating a GlossaryCategory. + * + * Generated from protobuf field .google.cloud.dataplex.v1.UpdateGlossaryCategoryRequest update_glossary_category = 24; + * @return \Google\Cloud\Dataplex\V1\UpdateGlossaryCategoryRequest|null + */ + public function getUpdateGlossaryCategory() + { + return $this->readOneof(24); + } + + public function hasUpdateGlossaryCategory() + { + return $this->hasOneof(24); + } + + /** + * Payload for updating a GlossaryCategory. + * + * Generated from protobuf field .google.cloud.dataplex.v1.UpdateGlossaryCategoryRequest update_glossary_category = 24; + * @param \Google\Cloud\Dataplex\V1\UpdateGlossaryCategoryRequest $var + * @return $this + */ + public function setUpdateGlossaryCategory($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\UpdateGlossaryCategoryRequest::class); + $this->writeOneof(24, $var); + + return $this; + } + + /** + * Payload for deleting a GlossaryCategory. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DeleteGlossaryCategoryRequest delete_glossary_category = 26; + * @return \Google\Cloud\Dataplex\V1\DeleteGlossaryCategoryRequest|null + */ + public function getDeleteGlossaryCategory() + { + return $this->readOneof(26); + } + + public function hasDeleteGlossaryCategory() + { + return $this->hasOneof(26); + } + + /** + * Payload for deleting a GlossaryCategory. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DeleteGlossaryCategoryRequest delete_glossary_category = 26; + * @param \Google\Cloud\Dataplex\V1\DeleteGlossaryCategoryRequest $var + * @return $this + */ + public function setDeleteGlossaryCategory($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\DeleteGlossaryCategoryRequest::class); + $this->writeOneof(26, $var); + + return $this; + } + + /** + * Payload for creating a GlossaryTerm. + * + * Generated from protobuf field .google.cloud.dataplex.v1.CreateGlossaryTermRequest create_glossary_term = 27; + * @return \Google\Cloud\Dataplex\V1\CreateGlossaryTermRequest|null + */ + public function getCreateGlossaryTerm() + { + return $this->readOneof(27); + } + + public function hasCreateGlossaryTerm() + { + return $this->hasOneof(27); + } + + /** + * Payload for creating a GlossaryTerm. + * + * Generated from protobuf field .google.cloud.dataplex.v1.CreateGlossaryTermRequest create_glossary_term = 27; + * @param \Google\Cloud\Dataplex\V1\CreateGlossaryTermRequest $var + * @return $this + */ + public function setCreateGlossaryTerm($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\CreateGlossaryTermRequest::class); + $this->writeOneof(27, $var); + + return $this; + } + + /** + * Payload for updating a GlossaryTerm. + * + * Generated from protobuf field .google.cloud.dataplex.v1.UpdateGlossaryTermRequest update_glossary_term = 28; + * @return \Google\Cloud\Dataplex\V1\UpdateGlossaryTermRequest|null + */ + public function getUpdateGlossaryTerm() + { + return $this->readOneof(28); + } + + public function hasUpdateGlossaryTerm() + { + return $this->hasOneof(28); + } + + /** + * Payload for updating a GlossaryTerm. + * + * Generated from protobuf field .google.cloud.dataplex.v1.UpdateGlossaryTermRequest update_glossary_term = 28; + * @param \Google\Cloud\Dataplex\V1\UpdateGlossaryTermRequest $var + * @return $this + */ + public function setUpdateGlossaryTerm($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\UpdateGlossaryTermRequest::class); + $this->writeOneof(28, $var); + + return $this; + } + + /** + * Payload for deleting a GlossaryTerm. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DeleteGlossaryTermRequest delete_glossary_term = 30; + * @return \Google\Cloud\Dataplex\V1\DeleteGlossaryTermRequest|null + */ + public function getDeleteGlossaryTerm() + { + return $this->readOneof(30); + } + + public function hasDeleteGlossaryTerm() + { + return $this->hasOneof(30); + } + + /** + * Payload for deleting a GlossaryTerm. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DeleteGlossaryTermRequest delete_glossary_term = 30; + * @param \Google\Cloud\Dataplex\V1\DeleteGlossaryTermRequest $var + * @return $this + */ + public function setDeleteGlossaryTerm($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\DeleteGlossaryTermRequest::class); + $this->writeOneof(30, $var); + + return $this; + } + + /** + * Payload for Data Product access request. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DataProductAccessRequest data_product_access_request = 32; + * @return \Google\Cloud\Dataplex\V1\DataProductAccessRequest|null + */ + public function getDataProductAccessRequest() + { + return $this->readOneof(32); + } + + public function hasDataProductAccessRequest() + { + return $this->hasOneof(32); + } + + /** + * Payload for Data Product access request. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DataProductAccessRequest data_product_access_request = 32; + * @param \Google\Cloud\Dataplex\V1\DataProductAccessRequest $var + * @return $this + */ + public function setDataProductAccessRequest($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\DataProductAccessRequest::class); + $this->writeOneof(32, $var); + + return $this; + } + + /** + * Output only. The type of change represented by the change_payload. + * This field is derived from the populated field in the change_payload oneof. + * + * Generated from protobuf field .google.cloud.dataplex.v1.ChangeRequest.ChangeType change_type = 19 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int + */ + public function getChangeType() + { + return $this->change_type; + } + + /** + * Output only. The type of change represented by the change_payload. + * This field is derived from the populated field in the change_payload oneof. + * + * Generated from protobuf field .google.cloud.dataplex.v1.ChangeRequest.ChangeType change_type = 19 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int $var + * @return $this + */ + public function setChangeType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dataplex\V1\ChangeRequest\ChangeType::class); + $this->change_type = $var; + + return $this; + } + + /** + * Output only. The reason provided for rejecting the ChangeRequest. + * + * Generated from protobuf field string rejection_comment = 16 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getRejectionComment() + { + return $this->rejection_comment; + } + + /** + * Output only. The reason provided for rejecting the ChangeRequest. + * + * Generated from protobuf field string rejection_comment = 16 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setRejectionComment($var) + { + GPBUtil::checkString($var, True); + $this->rejection_comment = $var; + + return $this; + } + + /** + * Output only. The email address of the user who approved/rejected the + * ChangeRequest. + * + * Generated from protobuf field string approver = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getApprover() + { + return $this->approver; + } + + /** + * Output only. The email address of the user who approved/rejected the + * ChangeRequest. + * + * Generated from protobuf field string approver = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setApprover($var) + { + GPBUtil::checkString($var, True); + $this->approver = $var; + + return $this; + } + + /** + * Optional. This checksum is computed by the service. It can be sent on + * update and delete requests to ensure the client has an up-to-date value + * before proceeding. + * + * Generated from protobuf field string etag = 18 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getEtag() + { + return $this->etag; + } + + /** + * Optional. This checksum is computed by the service. It can be sent on + * update and delete requests to ensure the client has an up-to-date value + * before proceeding. + * + * Generated from protobuf field string etag = 18 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setEtag($var) + { + GPBUtil::checkString($var, True); + $this->etag = $var; + + return $this; + } + + /** + * @return string + */ + public function getChangePayload() + { + return $this->whichOneof("change_payload"); + } + +} + diff --git a/Dataplex/src/V1/ChangeRequest/ChangeType.php b/Dataplex/src/V1/ChangeRequest/ChangeType.php new file mode 100644 index 000000000000..a6edce883f50 --- /dev/null +++ b/Dataplex/src/V1/ChangeRequest/ChangeType.php @@ -0,0 +1,152 @@ +google.cloud.dataplex.v1.ChangeRequest.ChangeType + */ +class ChangeType +{ + /** + * State unspecified. + * + * Generated from protobuf enum CHANGE_TYPE_UNSPECIFIED = 0; + */ + const CHANGE_TYPE_UNSPECIFIED = 0; + /** + * Request to create an Entry. + * + * Generated from protobuf enum CREATE_ENTRY = 1; + */ + const CREATE_ENTRY = 1; + /** + * Request to update an Entry. + * + * Generated from protobuf enum UPDATE_ENTRY = 2; + */ + const UPDATE_ENTRY = 2; + /** + * Request to delete an Entry. + * + * Generated from protobuf enum DELETE_ENTRY = 3; + */ + const DELETE_ENTRY = 3; + /** + * Request to create an EntryLink. + * + * Generated from protobuf enum CREATE_ENTRY_LINK = 4; + */ + const CREATE_ENTRY_LINK = 4; + /** + * Request to delete an EntryLink. + * + * Generated from protobuf enum DELETE_ENTRY_LINK = 5; + */ + const DELETE_ENTRY_LINK = 5; + /** + * Request to create a Glossary. + * + * Generated from protobuf enum CREATE_GLOSSARY = 7; + */ + const CREATE_GLOSSARY = 7; + /** + * Request to update a Glossary. + * + * Generated from protobuf enum UPDATE_GLOSSARY = 8; + */ + const UPDATE_GLOSSARY = 8; + /** + * Request to delete a Glossary. + * + * Generated from protobuf enum DELETE_GLOSSARY = 9; + */ + const DELETE_GLOSSARY = 9; + /** + * Request to create a GlossaryCategory. + * + * Generated from protobuf enum CREATE_GLOSSARY_CATEGORY = 10; + */ + const CREATE_GLOSSARY_CATEGORY = 10; + /** + * Request to update a GlossaryCategory. + * + * Generated from protobuf enum UPDATE_GLOSSARY_CATEGORY = 11; + */ + const UPDATE_GLOSSARY_CATEGORY = 11; + /** + * Request to delete a GlossaryCategory. + * + * Generated from protobuf enum DELETE_GLOSSARY_CATEGORY = 13; + */ + const DELETE_GLOSSARY_CATEGORY = 13; + /** + * Request to create a GlossaryTerm. + * + * Generated from protobuf enum CREATE_GLOSSARY_TERM = 14; + */ + const CREATE_GLOSSARY_TERM = 14; + /** + * Request to update a GlossaryTerm. + * + * Generated from protobuf enum UPDATE_GLOSSARY_TERM = 15; + */ + const UPDATE_GLOSSARY_TERM = 15; + /** + * Request to delete a GlossaryTerm. + * + * Generated from protobuf enum DELETE_GLOSSARY_TERM = 17; + */ + const DELETE_GLOSSARY_TERM = 17; + /** + * Request to request Data Product access. + * + * Generated from protobuf enum REQUEST_DATA_PRODUCT_ACCESS = 33; + */ + const REQUEST_DATA_PRODUCT_ACCESS = 33; + + private static $valueToName = [ + self::CHANGE_TYPE_UNSPECIFIED => 'CHANGE_TYPE_UNSPECIFIED', + self::CREATE_ENTRY => 'CREATE_ENTRY', + self::UPDATE_ENTRY => 'UPDATE_ENTRY', + self::DELETE_ENTRY => 'DELETE_ENTRY', + self::CREATE_ENTRY_LINK => 'CREATE_ENTRY_LINK', + self::DELETE_ENTRY_LINK => 'DELETE_ENTRY_LINK', + self::CREATE_GLOSSARY => 'CREATE_GLOSSARY', + self::UPDATE_GLOSSARY => 'UPDATE_GLOSSARY', + self::DELETE_GLOSSARY => 'DELETE_GLOSSARY', + self::CREATE_GLOSSARY_CATEGORY => 'CREATE_GLOSSARY_CATEGORY', + self::UPDATE_GLOSSARY_CATEGORY => 'UPDATE_GLOSSARY_CATEGORY', + self::DELETE_GLOSSARY_CATEGORY => 'DELETE_GLOSSARY_CATEGORY', + self::CREATE_GLOSSARY_TERM => 'CREATE_GLOSSARY_TERM', + self::UPDATE_GLOSSARY_TERM => 'UPDATE_GLOSSARY_TERM', + self::DELETE_GLOSSARY_TERM => 'DELETE_GLOSSARY_TERM', + self::REQUEST_DATA_PRODUCT_ACCESS => 'REQUEST_DATA_PRODUCT_ACCESS', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/Dataplex/src/V1/ChangeRequest/State.php b/Dataplex/src/V1/ChangeRequest/State.php new file mode 100644 index 000000000000..a943d8a4e010 --- /dev/null +++ b/Dataplex/src/V1/ChangeRequest/State.php @@ -0,0 +1,86 @@ +google.cloud.dataplex.v1.ChangeRequest.State + */ +class State +{ + /** + * State unspecified. + * + * Generated from protobuf enum STATE_UNSPECIFIED = 0; + */ + const STATE_UNSPECIFIED = 0; + /** + * The change is proposed and new. + * + * Generated from protobuf enum NEW = 1; + */ + const PBNEW = 1; + /** + * The change has been approved. + * + * Generated from protobuf enum APPROVED = 2; + */ + const APPROVED = 2; + /** + * The change has been rejected. + * + * Generated from protobuf enum REJECTED = 3; + */ + const REJECTED = 3; + /** + * The change request has expired. + * + * Generated from protobuf enum EXPIRED = 4; + */ + const EXPIRED = 4; + /** + * The approved change has been revoked. + * + * Generated from protobuf enum REVOKED = 5; + */ + const REVOKED = 5; + + private static $valueToName = [ + self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED', + self::PBNEW => 'NEW', + self::APPROVED => 'APPROVED', + self::REJECTED => 'REJECTED', + self::EXPIRED => 'EXPIRED', + self::REVOKED => 'REVOKED', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + $pbconst = __CLASS__. '::PB' . strtoupper($name); + if (!defined($pbconst)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($pbconst); + } + return constant($const); + } +} + diff --git a/Dataplex/src/V1/Client/BusinessGlossaryServiceClient.php b/Dataplex/src/V1/Client/BusinessGlossaryServiceClient.php index 6d2b755e5093..8bdead403adb 100644 --- a/Dataplex/src/V1/Client/BusinessGlossaryServiceClient.php +++ b/Dataplex/src/V1/Client/BusinessGlossaryServiceClient.php @@ -128,7 +128,12 @@ final class BusinessGlossaryServiceClient private const CODEGEN_NAME = 'gapic'; /** The default scopes required by the service. */ - public static $serviceScopes = ['https://www.googleapis.com/auth/cloud-platform']; + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/cloud-platform.read-only', + 'https://www.googleapis.com/auth/dataplex.read-write', + 'https://www.googleapis.com/auth/dataplex.readonly', + ]; private $operationsClient; @@ -836,13 +841,21 @@ public function getLocation(GetLocationRequest $request, array $callOptions = [] /** * Lists information about the supported locations for this service. - This method can be called in two ways: - * **List all public locations:** Use the path `GET /v1/locations`. - * **List project-visible locations:** Use the path - `GET /v1/projects/{project_id}/locations`. This may include public - locations as well as private or other locations specifically visible - to the project. + This method lists locations based on the resource scope provided in + the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: * + **Global locations**: If `name` is empty, the method lists the + public locations available to all projects. * **Project-specific + locations**: If `name` follows the format + `projects/{project}`, the method lists locations visible to that + specific project. This includes public, private, or other + project-specific locations enabled for the project. + + For gRPC and client library implementations, the resource name is + passed as the `name` field. For direct service calls, the resource + name is + incorporated into the request path based on the specific service + implementation and version. * * The async variant is {@see BusinessGlossaryServiceClient::listLocationsAsync()} * . diff --git a/Dataplex/src/V1/Client/CatalogServiceClient.php b/Dataplex/src/V1/Client/CatalogServiceClient.php index 321002603538..6748751e64e6 100644 --- a/Dataplex/src/V1/Client/CatalogServiceClient.php +++ b/Dataplex/src/V1/Client/CatalogServiceClient.php @@ -73,6 +73,7 @@ use Google\Cloud\Dataplex\V1\LookupEntryRequest; use Google\Cloud\Dataplex\V1\MetadataFeed; use Google\Cloud\Dataplex\V1\MetadataJob; +use Google\Cloud\Dataplex\V1\ModifyEntryRequest; use Google\Cloud\Dataplex\V1\SearchEntriesRequest; use Google\Cloud\Dataplex\V1\UpdateAspectTypeRequest; use Google\Cloud\Dataplex\V1\UpdateEntryGroupRequest; @@ -138,6 +139,7 @@ * @method PromiseInterface lookupContextAsync(LookupContextRequest $request, array $optionalArgs = []) * @method PromiseInterface lookupEntryAsync(LookupEntryRequest $request, array $optionalArgs = []) * @method PromiseInterface lookupEntryLinksAsync(LookupEntryLinksRequest $request, array $optionalArgs = []) + * @method PromiseInterface modifyEntryAsync(ModifyEntryRequest $request, array $optionalArgs = []) * @method PromiseInterface searchEntriesAsync(SearchEntriesRequest $request, array $optionalArgs = []) * @method PromiseInterface updateAspectTypeAsync(UpdateAspectTypeRequest $request, array $optionalArgs = []) * @method PromiseInterface updateEntryAsync(UpdateEntryRequest $request, array $optionalArgs = []) @@ -1347,6 +1349,32 @@ public function lookupEntryLinks(LookupEntryLinksRequest $request, array $callOp return $this->startApiCall('LookupEntryLinks', $request, $callOptions); } + /** + * Modifies an entry using the permission on the source system. + * + * The async variant is {@see CatalogServiceClient::modifyEntryAsync()} . + * + * @example samples/V1/CatalogServiceClient/modify_entry.php + * + * @param ModifyEntryRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Entry + * + * @throws ApiException Thrown if the API call fails. + */ + public function modifyEntry(ModifyEntryRequest $request, array $callOptions = []): Entry + { + return $this->startApiCall('ModifyEntry', $request, $callOptions)->wait(); + } + /** * Searches for Entries matching the given query and scope. * @@ -1557,13 +1585,21 @@ public function getLocation(GetLocationRequest $request, array $callOptions = [] /** * Lists information about the supported locations for this service. - This method can be called in two ways: - * **List all public locations:** Use the path `GET /v1/locations`. - * **List project-visible locations:** Use the path - `GET /v1/projects/{project_id}/locations`. This may include public - locations as well as private or other locations specifically visible - to the project. + This method lists locations based on the resource scope provided in + the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: * + **Global locations**: If `name` is empty, the method lists the + public locations available to all projects. * **Project-specific + locations**: If `name` follows the format + `projects/{project}`, the method lists locations visible to that + specific project. This includes public, private, or other + project-specific locations enabled for the project. + + For gRPC and client library implementations, the resource name is + passed as the `name` field. For direct service calls, the resource + name is + incorporated into the request path based on the specific service + implementation and version. * * The async variant is {@see CatalogServiceClient::listLocationsAsync()} . * diff --git a/Dataplex/src/V1/Client/CmekServiceClient.php b/Dataplex/src/V1/Client/CmekServiceClient.php index ea97d11a4a56..7f17a0ed06b8 100644 --- a/Dataplex/src/V1/Client/CmekServiceClient.php +++ b/Dataplex/src/V1/Client/CmekServiceClient.php @@ -101,7 +101,10 @@ final class CmekServiceClient private const CODEGEN_NAME = 'gapic'; /** The default scopes required by the service. */ - public static $serviceScopes = ['https://www.googleapis.com/auth/cloud-platform']; + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dataplex.read-write', + ]; private $operationsClient; @@ -488,13 +491,21 @@ public function getLocation(GetLocationRequest $request, array $callOptions = [] /** * Lists information about the supported locations for this service. - This method can be called in two ways: - * **List all public locations:** Use the path `GET /v1/locations`. - * **List project-visible locations:** Use the path - `GET /v1/projects/{project_id}/locations`. This may include public - locations as well as private or other locations specifically visible - to the project. + This method lists locations based on the resource scope provided in + the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: * + **Global locations**: If `name` is empty, the method lists the + public locations available to all projects. * **Project-specific + locations**: If `name` follows the format + `projects/{project}`, the method lists locations visible to that + specific project. This includes public, private, or other + project-specific locations enabled for the project. + + For gRPC and client library implementations, the resource name is + passed as the `name` field. For direct service calls, the resource + name is + incorporated into the request path based on the specific service + implementation and version. * * The async variant is {@see CmekServiceClient::listLocationsAsync()} . * diff --git a/Dataplex/src/V1/Client/ContentServiceClient.php b/Dataplex/src/V1/Client/ContentServiceClient.php index 58dc7ff13441..daae83240214 100644 --- a/Dataplex/src/V1/Client/ContentServiceClient.php +++ b/Dataplex/src/V1/Client/ContentServiceClient.php @@ -197,13 +197,21 @@ public function getLocation(GetLocationRequest $request, array $callOptions = [] /** * Lists information about the supported locations for this service. - This method can be called in two ways: - * **List all public locations:** Use the path `GET /v1/locations`. - * **List project-visible locations:** Use the path - `GET /v1/projects/{project_id}/locations`. This may include public - locations as well as private or other locations specifically visible - to the project. + This method lists locations based on the resource scope provided in + the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: * + **Global locations**: If `name` is empty, the method lists the + public locations available to all projects. * **Project-specific + locations**: If `name` follows the format + `projects/{project}`, the method lists locations visible to that + specific project. This includes public, private, or other + project-specific locations enabled for the project. + + For gRPC and client library implementations, the resource name is + passed as the `name` field. For direct service calls, the resource + name is + incorporated into the request path based on the specific service + implementation and version. * * The async variant is {@see ContentServiceClient::listLocationsAsync()} . * diff --git a/Dataplex/src/V1/Client/DataProductServiceClient.php b/Dataplex/src/V1/Client/DataProductServiceClient.php index 2ab20a879bf4..27a61e333615 100644 --- a/Dataplex/src/V1/Client/DataProductServiceClient.php +++ b/Dataplex/src/V1/Client/DataProductServiceClient.php @@ -45,6 +45,8 @@ use Google\Cloud\Dataplex\V1\GetDataProductRequest; use Google\Cloud\Dataplex\V1\ListDataAssetsRequest; use Google\Cloud\Dataplex\V1\ListDataProductsRequest; +use Google\Cloud\Dataplex\V1\RequestDataProductAccessRequest; +use Google\Cloud\Dataplex\V1\RequestDataProductAccessResponse; use Google\Cloud\Dataplex\V1\UpdateDataAssetRequest; use Google\Cloud\Dataplex\V1\UpdateDataProductRequest; use Google\Cloud\Iam\V1\GetIamPolicyRequest; @@ -80,6 +82,7 @@ * @method PromiseInterface getDataProductAsync(GetDataProductRequest $request, array $optionalArgs = []) * @method PromiseInterface listDataAssetsAsync(ListDataAssetsRequest $request, array $optionalArgs = []) * @method PromiseInterface listDataProductsAsync(ListDataProductsRequest $request, array $optionalArgs = []) + * @method PromiseInterface requestDataProductAccessAsync(RequestDataProductAccessRequest $request, array $optionalArgs = []) * @method PromiseInterface updateDataAssetAsync(UpdateDataAssetRequest $request, array $optionalArgs = []) * @method PromiseInterface updateDataProductAsync(UpdateDataProductRequest $request, array $optionalArgs = []) * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = []) @@ -113,7 +116,12 @@ final class DataProductServiceClient private const CODEGEN_NAME = 'gapic'; /** The default scopes required by the service. */ - public static $serviceScopes = ['https://www.googleapis.com/auth/cloud-platform']; + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/cloud-platform.read-only', + 'https://www.googleapis.com/auth/dataplex.read-write', + 'https://www.googleapis.com/auth/dataplex.readonly', + ]; private $operationsClient; @@ -184,6 +192,25 @@ private function createOperationsClient(array $options) return new OperationsClient($options); } + /** + * Formats a string containing the fully-qualified path to represent a + * change_request resource. + * + * @param string $project + * @param string $location + * @param string $changeRequest + * + * @return string The formatted change_request resource. + */ + public static function changeRequestName(string $project, string $location, string $changeRequest): string + { + return self::getPathTemplate('changeRequest')->render([ + 'project' => $project, + 'location' => $location, + 'change_request' => $changeRequest, + ]); + } + /** * Formats a string containing the fully-qualified path to represent a data_asset * resource. @@ -228,6 +255,140 @@ public static function dataProductName(string $project, string $location, string ]); } + /** + * Formats a string containing the fully-qualified path to represent a entry + * resource. + * + * @param string $project + * @param string $location + * @param string $entryGroup + * @param string $entry + * + * @return string The formatted entry resource. + */ + public static function entryName(string $project, string $location, string $entryGroup, string $entry): string + { + return self::getPathTemplate('entry')->render([ + 'project' => $project, + 'location' => $location, + 'entry_group' => $entryGroup, + 'entry' => $entry, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a entry_group + * resource. + * + * @param string $project + * @param string $location + * @param string $entryGroup + * + * @return string The formatted entry_group resource. + */ + public static function entryGroupName(string $project, string $location, string $entryGroup): string + { + return self::getPathTemplate('entryGroup')->render([ + 'project' => $project, + 'location' => $location, + 'entry_group' => $entryGroup, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a entry_link + * resource. + * + * @param string $project + * @param string $location + * @param string $entryGroup + * @param string $entryLink + * + * @return string The formatted entry_link resource. + */ + public static function entryLinkName( + string $project, + string $location, + string $entryGroup, + string $entryLink + ): string { + return self::getPathTemplate('entryLink')->render([ + 'project' => $project, + 'location' => $location, + 'entry_group' => $entryGroup, + 'entry_link' => $entryLink, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a glossary + * resource. + * + * @param string $project + * @param string $location + * @param string $glossary + * + * @return string The formatted glossary resource. + */ + public static function glossaryName(string $project, string $location, string $glossary): string + { + return self::getPathTemplate('glossary')->render([ + 'project' => $project, + 'location' => $location, + 'glossary' => $glossary, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * glossary_category resource. + * + * @param string $project + * @param string $location + * @param string $glossary + * @param string $glossaryCategory + * + * @return string The formatted glossary_category resource. + */ + public static function glossaryCategoryName( + string $project, + string $location, + string $glossary, + string $glossaryCategory + ): string { + return self::getPathTemplate('glossaryCategory')->render([ + 'project' => $project, + 'location' => $location, + 'glossary' => $glossary, + 'glossary_category' => $glossaryCategory, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * glossary_term resource. + * + * @param string $project + * @param string $location + * @param string $glossary + * @param string $glossaryTerm + * + * @return string The formatted glossary_term resource. + */ + public static function glossaryTermName( + string $project, + string $location, + string $glossary, + string $glossaryTerm + ): string { + return self::getPathTemplate('glossaryTerm')->render([ + 'project' => $project, + 'location' => $location, + 'glossary' => $glossary, + 'glossary_term' => $glossaryTerm, + ]); + } + /** * Formats a string containing the fully-qualified path to represent a location * resource. @@ -249,8 +410,15 @@ public static function locationName(string $project, string $location): string * Parses a formatted name string and returns an associative array of the components in the name. * The following name formats are supported: * Template: Pattern + * - changeRequest: projects/{project}/locations/{location}/changeRequests/{change_request} * - dataAsset: projects/{project}/locations/{location}/dataProducts/{data_product}/dataAssets/{data_asset} * - dataProduct: projects/{project}/locations/{location}/dataProducts/{data_product} + * - entry: projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry} + * - entryGroup: projects/{project}/locations/{location}/entryGroups/{entry_group} + * - entryLink: projects/{project}/locations/{location}/entryGroups/{entry_group}/entryLinks/{entry_link} + * - glossary: projects/{project}/locations/{location}/glossaries/{glossary} + * - glossaryCategory: projects/{project}/locations/{location}/glossaries/{glossary}/categories/{glossary_category} + * - glossaryTerm: projects/{project}/locations/{location}/glossaries/{glossary}/terms/{glossary_term} * - location: projects/{project}/locations/{location} * * The optional $template argument can be supplied to specify a particular pattern, @@ -566,6 +734,37 @@ public function listDataProducts(ListDataProductsRequest $request, array $callOp return $this->startApiCall('ListDataProducts', $request, $callOptions); } + /** + * Requests access to a data product. This will trigger an access approval + * workflow, and the requester will need to wait for the approval to be + * granted before they will be able to access the data product assets. + * + * The async variant is + * {@see DataProductServiceClient::requestDataProductAccessAsync()} . + * + * @example samples/V1/DataProductServiceClient/request_data_product_access.php + * + * @param RequestDataProductAccessRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return RequestDataProductAccessResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function requestDataProductAccess( + RequestDataProductAccessRequest $request, + array $callOptions = [] + ): RequestDataProductAccessResponse { + return $this->startApiCall('RequestDataProductAccess', $request, $callOptions)->wait(); + } + /** * Updates a data asset. * @@ -646,13 +845,21 @@ public function getLocation(GetLocationRequest $request, array $callOptions = [] /** * Lists information about the supported locations for this service. - This method can be called in two ways: - * **List all public locations:** Use the path `GET /v1/locations`. - * **List project-visible locations:** Use the path - `GET /v1/projects/{project_id}/locations`. This may include public - locations as well as private or other locations specifically visible - to the project. + This method lists locations based on the resource scope provided in + the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: * + **Global locations**: If `name` is empty, the method lists the + public locations available to all projects. * **Project-specific + locations**: If `name` follows the format + `projects/{project}`, the method lists locations visible to that + specific project. This includes public, private, or other + project-specific locations enabled for the project. + + For gRPC and client library implementations, the resource name is + passed as the `name` field. For direct service calls, the resource + name is + incorporated into the request path based on the specific service + implementation and version. * * The async variant is {@see DataProductServiceClient::listLocationsAsync()} . * diff --git a/Dataplex/src/V1/Client/DataScanServiceClient.php b/Dataplex/src/V1/Client/DataScanServiceClient.php index 55605066ae34..d43e706d2220 100644 --- a/Dataplex/src/V1/Client/DataScanServiceClient.php +++ b/Dataplex/src/V1/Client/DataScanServiceClient.php @@ -35,6 +35,8 @@ use Google\ApiCore\Transport\TransportInterface; use Google\ApiCore\ValidationException; use Google\Auth\FetchAuthTokenInterface; +use Google\Cloud\Dataplex\V1\CancelDataScanJobRequest; +use Google\Cloud\Dataplex\V1\CancelDataScanJobResponse; use Google\Cloud\Dataplex\V1\CreateDataScanRequest; use Google\Cloud\Dataplex\V1\DataScan; use Google\Cloud\Dataplex\V1\DataScanJob; @@ -74,6 +76,7 @@ * name, and additionally a parseName method to extract the individual identifiers * contained within formatted names that are returned by the API. * + * @method PromiseInterface cancelDataScanJobAsync(CancelDataScanJobRequest $request, array $optionalArgs = []) * @method PromiseInterface createDataScanAsync(CreateDataScanRequest $request, array $optionalArgs = []) * @method PromiseInterface deleteDataScanAsync(DeleteDataScanRequest $request, array $optionalArgs = []) * @method PromiseInterface generateDataQualityRulesAsync(GenerateDataQualityRulesRequest $request, array $optionalArgs = []) @@ -114,7 +117,12 @@ final class DataScanServiceClient private const CODEGEN_NAME = 'gapic'; /** The default scopes required by the service. */ - public static $serviceScopes = ['https://www.googleapis.com/auth/cloud-platform']; + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/cloud-platform.read-only', + 'https://www.googleapis.com/auth/dataplex.read-write', + 'https://www.googleapis.com/auth/dataplex.readonly', + ]; private $operationsClient; @@ -289,6 +297,27 @@ public static function entityName( ]); } + /** + * Formats a string containing the fully-qualified path to represent a entry + * resource. + * + * @param string $project + * @param string $location + * @param string $entryGroup + * @param string $entry + * + * @return string The formatted entry resource. + */ + public static function entryName(string $project, string $location, string $entryGroup, string $entry): string + { + return self::getPathTemplate('entry')->render([ + 'project' => $project, + 'location' => $location, + 'entry_group' => $entryGroup, + 'entry' => $entry, + ]); + } + /** * Formats a string containing the fully-qualified path to represent a location * resource. @@ -330,6 +359,7 @@ public static function projectName(string $project): string * - dataScanJob: projects/{project}/locations/{location}/dataScans/{dataScan}/jobs/{job} * - dataset: projects/{project}/datasets/{dataset} * - entity: projects/{project}/locations/{location}/lakes/{lake}/zones/{zone}/entities/{entity} + * - entry: projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry} * - location: projects/{project}/locations/{location} * - project: projects/{project} * @@ -437,6 +467,34 @@ public function __call($method, $args) return call_user_func_array([$this, 'startAsyncCall'], $args); } + /** + * Cancels a running/pending DataScan job. + * + * The async variant is {@see DataScanServiceClient::cancelDataScanJobAsync()} . + * + * @example samples/V1/DataScanServiceClient/cancel_data_scan_job.php + * + * @param CancelDataScanJobRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return CancelDataScanJobResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function cancelDataScanJob( + CancelDataScanJobRequest $request, + array $callOptions = [] + ): CancelDataScanJobResponse { + return $this->startApiCall('CancelDataScanJob', $request, $callOptions)->wait(); + } + /** * Creates a DataScan resource. * @@ -705,13 +763,21 @@ public function getLocation(GetLocationRequest $request, array $callOptions = [] /** * Lists information about the supported locations for this service. - This method can be called in two ways: - * **List all public locations:** Use the path `GET /v1/locations`. - * **List project-visible locations:** Use the path - `GET /v1/projects/{project_id}/locations`. This may include public - locations as well as private or other locations specifically visible - to the project. + This method lists locations based on the resource scope provided in + the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: * + **Global locations**: If `name` is empty, the method lists the + public locations available to all projects. * **Project-specific + locations**: If `name` follows the format + `projects/{project}`, the method lists locations visible to that + specific project. This includes public, private, or other + project-specific locations enabled for the project. + + For gRPC and client library implementations, the resource name is + passed as the `name` field. For direct service calls, the resource + name is + incorporated into the request path based on the specific service + implementation and version. * * The async variant is {@see DataScanServiceClient::listLocationsAsync()} . * diff --git a/Dataplex/src/V1/Client/DataTaxonomyServiceClient.php b/Dataplex/src/V1/Client/DataTaxonomyServiceClient.php index 302e884f877d..d28d632ffc09 100644 --- a/Dataplex/src/V1/Client/DataTaxonomyServiceClient.php +++ b/Dataplex/src/V1/Client/DataTaxonomyServiceClient.php @@ -126,7 +126,10 @@ final class DataTaxonomyServiceClient private const CODEGEN_NAME = 'gapic'; /** The default scopes required by the service. */ - public static $serviceScopes = ['https://www.googleapis.com/auth/cloud-platform']; + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dataplex.read-write', + ]; private $operationsClient; @@ -867,13 +870,21 @@ public function getLocation(GetLocationRequest $request, array $callOptions = [] /** * Lists information about the supported locations for this service. - This method can be called in two ways: - * **List all public locations:** Use the path `GET /v1/locations`. - * **List project-visible locations:** Use the path - `GET /v1/projects/{project_id}/locations`. This may include public - locations as well as private or other locations specifically visible - to the project. + This method lists locations based on the resource scope provided in + the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: * + **Global locations**: If `name` is empty, the method lists the + public locations available to all projects. * **Project-specific + locations**: If `name` follows the format + `projects/{project}`, the method lists locations visible to that + specific project. This includes public, private, or other + project-specific locations enabled for the project. + + For gRPC and client library implementations, the resource name is + passed as the `name` field. For direct service calls, the resource + name is + incorporated into the request path based on the specific service + implementation and version. * * The async variant is {@see DataTaxonomyServiceClient::listLocationsAsync()} . * diff --git a/Dataplex/src/V1/Client/DataplexServiceClient.php b/Dataplex/src/V1/Client/DataplexServiceClient.php index 3cf8d9f16428..cee279b6b0cc 100644 --- a/Dataplex/src/V1/Client/DataplexServiceClient.php +++ b/Dataplex/src/V1/Client/DataplexServiceClient.php @@ -154,7 +154,12 @@ final class DataplexServiceClient private const CODEGEN_NAME = 'gapic'; /** The default scopes required by the service. */ - public static $serviceScopes = ['https://www.googleapis.com/auth/cloud-platform']; + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/cloud-platform.read-only', + 'https://www.googleapis.com/auth/dataplex.read-write', + 'https://www.googleapis.com/auth/dataplex.readonly', + ]; private $operationsClient; @@ -1200,13 +1205,21 @@ public function getLocation(GetLocationRequest $request, array $callOptions = [] /** * Lists information about the supported locations for this service. - This method can be called in two ways: - * **List all public locations:** Use the path `GET /v1/locations`. - * **List project-visible locations:** Use the path - `GET /v1/projects/{project_id}/locations`. This may include public - locations as well as private or other locations specifically visible - to the project. + This method lists locations based on the resource scope provided in + the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: * + **Global locations**: If `name` is empty, the method lists the + public locations available to all projects. * **Project-specific + locations**: If `name` follows the format + `projects/{project}`, the method lists locations visible to that + specific project. This includes public, private, or other + project-specific locations enabled for the project. + + For gRPC and client library implementations, the resource name is + passed as the `name` field. For direct service calls, the resource + name is + incorporated into the request path based on the specific service + implementation and version. * * The async variant is {@see DataplexServiceClient::listLocationsAsync()} . * diff --git a/Dataplex/src/V1/Client/MetadataServiceClient.php b/Dataplex/src/V1/Client/MetadataServiceClient.php index 36beef3621cc..f9e675833e16 100644 --- a/Dataplex/src/V1/Client/MetadataServiceClient.php +++ b/Dataplex/src/V1/Client/MetadataServiceClient.php @@ -108,7 +108,10 @@ final class MetadataServiceClient private const CODEGEN_NAME = 'gapic'; /** The default scopes required by the service. */ - public static $serviceScopes = ['https://www.googleapis.com/auth/cloud-platform']; + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dataplex.read-write', + ]; private static function getClientDefaults() { @@ -578,13 +581,21 @@ public function getLocation(GetLocationRequest $request, array $callOptions = [] /** * Lists information about the supported locations for this service. - This method can be called in two ways: - * **List all public locations:** Use the path `GET /v1/locations`. - * **List project-visible locations:** Use the path - `GET /v1/projects/{project_id}/locations`. This may include public - locations as well as private or other locations specifically visible - to the project. + This method lists locations based on the resource scope provided in + the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: * + **Global locations**: If `name` is empty, the method lists the + public locations available to all projects. * **Project-specific + locations**: If `name` follows the format + `projects/{project}`, the method lists locations visible to that + specific project. This includes public, private, or other + project-specific locations enabled for the project. + + For gRPC and client library implementations, the resource name is + passed as the `name` field. For direct service calls, the resource + name is + incorporated into the request path based on the specific service + implementation and version. * * The async variant is {@see MetadataServiceClient::listLocationsAsync()} . * diff --git a/Dataplex/src/V1/CreateDataScanRequest.php b/Dataplex/src/V1/CreateDataScanRequest.php index 2389a27e3be8..6cbb738f08c9 100644 --- a/Dataplex/src/V1/CreateDataScanRequest.php +++ b/Dataplex/src/V1/CreateDataScanRequest.php @@ -31,14 +31,15 @@ class CreateDataScanRequest extends \Google\Protobuf\Internal\Message */ protected $data_scan = null; /** - * Required. DataScan identifier. + * Optional. DataScan identifier. If not provided, a unique ID will be + * generated with the prefix "data-scan-". * * Must contain only lowercase letters, numbers and hyphens. * * Must start with a letter. * * Must end with a number or a letter. * * Must be between 1-63 characters. * * Must be unique within the customer project / location. * - * Generated from protobuf field string data_scan_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * Generated from protobuf field string data_scan_id = 3 [(.google.api.field_behavior) = OPTIONAL]; */ protected $data_scan_id = ''; /** @@ -56,7 +57,8 @@ class CreateDataScanRequest extends \Google\Protobuf\Internal\Message * `location_id` refers to a Google Cloud region. Please see * {@see DataScanServiceClient::locationName()} for help formatting this field. * @param \Google\Cloud\Dataplex\V1\DataScan $dataScan Required. DataScan resource. - * @param string $dataScanId Required. DataScan identifier. + * @param string $dataScanId Optional. DataScan identifier. If not provided, a unique ID will be + * generated with the prefix "data-scan-". * * * Must contain only lowercase letters, numbers and hyphens. * * Must start with a letter. @@ -90,7 +92,8 @@ public static function build(string $parent, \Google\Cloud\Dataplex\V1\DataScan * @type \Google\Cloud\Dataplex\V1\DataScan $data_scan * Required. DataScan resource. * @type string $data_scan_id - * Required. DataScan identifier. + * Optional. DataScan identifier. If not provided, a unique ID will be + * generated with the prefix "data-scan-". * * Must contain only lowercase letters, numbers and hyphens. * * Must start with a letter. * * Must end with a number or a letter. @@ -175,14 +178,15 @@ public function setDataScan($var) } /** - * Required. DataScan identifier. + * Optional. DataScan identifier. If not provided, a unique ID will be + * generated with the prefix "data-scan-". * * Must contain only lowercase letters, numbers and hyphens. * * Must start with a letter. * * Must end with a number or a letter. * * Must be between 1-63 characters. * * Must be unique within the customer project / location. * - * Generated from protobuf field string data_scan_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * Generated from protobuf field string data_scan_id = 3 [(.google.api.field_behavior) = OPTIONAL]; * @return string */ public function getDataScanId() @@ -191,14 +195,15 @@ public function getDataScanId() } /** - * Required. DataScan identifier. + * Optional. DataScan identifier. If not provided, a unique ID will be + * generated with the prefix "data-scan-". * * Must contain only lowercase letters, numbers and hyphens. * * Must start with a letter. * * Must end with a number or a letter. * * Must be between 1-63 characters. * * Must be unique within the customer project / location. * - * Generated from protobuf field string data_scan_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * Generated from protobuf field string data_scan_id = 3 [(.google.api.field_behavior) = OPTIONAL]; * @param string $var * @return $this */ diff --git a/Dataplex/src/V1/DataDiscoverySpec/StorageConfig.php b/Dataplex/src/V1/DataDiscoverySpec/StorageConfig.php index e4fb08fe3831..d8a9112f02ae 100644 --- a/Dataplex/src/V1/DataDiscoverySpec/StorageConfig.php +++ b/Dataplex/src/V1/DataDiscoverySpec/StorageConfig.php @@ -48,6 +48,12 @@ class StorageConfig extends \Google\Protobuf\Internal\Message * Generated from protobuf field .google.cloud.dataplex.v1.DataDiscoverySpec.StorageConfig.JsonOptions json_options = 4 [(.google.api.field_behavior) = OPTIONAL]; */ protected $json_options = null; + /** + * Optional. Specifies configuration for unstructured data discovery. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DataDiscoverySpec.StorageConfig.UnstructuredDataOptions unstructured_data_options = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $unstructured_data_options = null; /** * Constructor. @@ -72,6 +78,8 @@ class StorageConfig extends \Google\Protobuf\Internal\Message * Optional. Configuration for CSV data. * @type \Google\Cloud\Dataplex\V1\DataDiscoverySpec\StorageConfig\JsonOptions $json_options * Optional. Configuration for JSON data. + * @type \Google\Cloud\Dataplex\V1\DataDiscoverySpec\StorageConfig\UnstructuredDataOptions $unstructured_data_options + * Optional. Specifies configuration for unstructured data discovery. * } */ public function __construct($data = NULL) { @@ -221,5 +229,41 @@ public function setJsonOptions($var) return $this; } + /** + * Optional. Specifies configuration for unstructured data discovery. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DataDiscoverySpec.StorageConfig.UnstructuredDataOptions unstructured_data_options = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dataplex\V1\DataDiscoverySpec\StorageConfig\UnstructuredDataOptions|null + */ + public function getUnstructuredDataOptions() + { + return $this->unstructured_data_options; + } + + public function hasUnstructuredDataOptions() + { + return isset($this->unstructured_data_options); + } + + public function clearUnstructuredDataOptions() + { + unset($this->unstructured_data_options); + } + + /** + * Optional. Specifies configuration for unstructured data discovery. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DataDiscoverySpec.StorageConfig.UnstructuredDataOptions unstructured_data_options = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dataplex\V1\DataDiscoverySpec\StorageConfig\UnstructuredDataOptions $var + * @return $this + */ + public function setUnstructuredDataOptions($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\DataDiscoverySpec\StorageConfig\UnstructuredDataOptions::class); + $this->unstructured_data_options = $var; + + return $this; + } + } diff --git a/Dataplex/src/V1/DataDiscoverySpec/StorageConfig/UnstructuredDataOptions.php b/Dataplex/src/V1/DataDiscoverySpec/StorageConfig/UnstructuredDataOptions.php new file mode 100644 index 000000000000..8e41f634eb67 --- /dev/null +++ b/Dataplex/src/V1/DataDiscoverySpec/StorageConfig/UnstructuredDataOptions.php @@ -0,0 +1,71 @@ +google.cloud.dataplex.v1.DataDiscoverySpec.StorageConfig.UnstructuredDataOptions + */ +class UnstructuredDataOptions extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. Specifies whether deeper semantic inference over the objects' + * contents using GenAI is enabled. + * + * Generated from protobuf field bool semantic_inference_enabled = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $semantic_inference_enabled = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type bool $semantic_inference_enabled + * Optional. Specifies whether deeper semantic inference over the objects' + * contents using GenAI is enabled. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\DataDiscovery::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Specifies whether deeper semantic inference over the objects' + * contents using GenAI is enabled. + * + * Generated from protobuf field bool semantic_inference_enabled = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getSemanticInferenceEnabled() + { + return $this->semantic_inference_enabled; + } + + /** + * Optional. Specifies whether deeper semantic inference over the objects' + * contents using GenAI is enabled. + * + * Generated from protobuf field bool semantic_inference_enabled = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setSemanticInferenceEnabled($var) + { + GPBUtil::checkBool($var); + $this->semantic_inference_enabled = $var; + + return $this; + } + +} + diff --git a/Dataplex/src/V1/DataProduct.php b/Dataplex/src/V1/DataProduct.php index 2639a88ccd26..5ea6efdba3bf 100644 --- a/Dataplex/src/V1/DataProduct.php +++ b/Dataplex/src/V1/DataProduct.php @@ -122,6 +122,12 @@ class DataProduct extends \Google\Protobuf\Internal\Message * Generated from protobuf field map access_groups = 14 [(.google.api.field_behavior) = OPTIONAL]; */ private $access_groups; + /** + * Optional. Configuration for access approval for the data product. + * + * Generated from protobuf field optional .google.cloud.dataplex.v1.DataProduct.AccessApprovalConfig access_approval_config = 15 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $access_approval_config = null; /** * Constructor. @@ -186,6 +192,8 @@ class DataProduct extends \Google\Protobuf\Internal\Message * } * } * ``` + * @type \Google\Cloud\Dataplex\V1\DataProduct\AccessApprovalConfig $access_approval_config + * Optional. Configuration for access approval for the data product. * } */ public function __construct($data = NULL) { @@ -591,5 +599,41 @@ public function setAccessGroups($var) return $this; } + /** + * Optional. Configuration for access approval for the data product. + * + * Generated from protobuf field optional .google.cloud.dataplex.v1.DataProduct.AccessApprovalConfig access_approval_config = 15 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dataplex\V1\DataProduct\AccessApprovalConfig|null + */ + public function getAccessApprovalConfig() + { + return $this->access_approval_config; + } + + public function hasAccessApprovalConfig() + { + return isset($this->access_approval_config); + } + + public function clearAccessApprovalConfig() + { + unset($this->access_approval_config); + } + + /** + * Optional. Configuration for access approval for the data product. + * + * Generated from protobuf field optional .google.cloud.dataplex.v1.DataProduct.AccessApprovalConfig access_approval_config = 15 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dataplex\V1\DataProduct\AccessApprovalConfig $var + * @return $this + */ + public function setAccessApprovalConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\DataProduct\AccessApprovalConfig::class); + $this->access_approval_config = $var; + + return $this; + } + } diff --git a/Dataplex/src/V1/DataProduct/AccessApprovalConfig.php b/Dataplex/src/V1/DataProduct/AccessApprovalConfig.php new file mode 100644 index 000000000000..c464ccedc7b8 --- /dev/null +++ b/Dataplex/src/V1/DataProduct/AccessApprovalConfig.php @@ -0,0 +1,75 @@ +google.cloud.dataplex.v1.DataProduct.AccessApprovalConfig + */ +class AccessApprovalConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. Specifies the email addresses of users who are potential + * approvers and are notified when an access request is made for the data + * product. The maximum number of emails allowed is 10. + * + * Generated from protobuf field repeated string approver_emails = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $approver_emails; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string[] $approver_emails + * Optional. Specifies the email addresses of users who are potential + * approvers and are notified when an access request is made for the data + * product. The maximum number of emails allowed is 10. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\DataProducts::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Specifies the email addresses of users who are potential + * approvers and are notified when an access request is made for the data + * product. The maximum number of emails allowed is 10. + * + * Generated from protobuf field repeated string approver_emails = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return RepeatedField + */ + public function getApproverEmails() + { + return $this->approver_emails; + } + + /** + * Optional. Specifies the email addresses of users who are potential + * approvers and are notified when an access request is made for the data + * product. The maximum number of emails allowed is 10. + * + * Generated from protobuf field repeated string approver_emails = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string[] $var + * @return $this + */ + public function setApproverEmails($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->approver_emails = $arr; + + return $this; + } + +} + diff --git a/Dataplex/src/V1/DataProduct/Principal.php b/Dataplex/src/V1/DataProduct/Principal.php index d5bc9cacd1e2..558e897b2f80 100644 --- a/Dataplex/src/V1/DataProduct/Principal.php +++ b/Dataplex/src/V1/DataProduct/Principal.php @@ -16,6 +16,13 @@ */ class Principal extends \Google\Protobuf\Internal\Message { + /** + * Optional. Specifies the email of the producer service account, as per + * https://cloud.google.com/iam/docs/principals-overview#service-account. + * + * Generated from protobuf field optional string service_account = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $service_account = null; protected $type; /** @@ -27,6 +34,9 @@ class Principal extends \Google\Protobuf\Internal\Message * @type string $google_group * Optional. Email of the Google Group, as per * https://cloud.google.com/iam/docs/principals-overview#google-group. + * @type string $service_account + * Optional. Specifies the email of the producer service account, as per + * https://cloud.google.com/iam/docs/principals-overview#service-account. * } */ public function __construct($data = NULL) { @@ -67,6 +77,44 @@ public function setGoogleGroup($var) return $this; } + /** + * Optional. Specifies the email of the producer service account, as per + * https://cloud.google.com/iam/docs/principals-overview#service-account. + * + * Generated from protobuf field optional string service_account = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getServiceAccount() + { + return isset($this->service_account) ? $this->service_account : ''; + } + + public function hasServiceAccount() + { + return isset($this->service_account); + } + + public function clearServiceAccount() + { + unset($this->service_account); + } + + /** + * Optional. Specifies the email of the producer service account, as per + * https://cloud.google.com/iam/docs/principals-overview#service-account. + * + * Generated from protobuf field optional string service_account = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setServiceAccount($var) + { + GPBUtil::checkString($var, True); + $this->service_account = $var; + + return $this; + } + /** * @return string */ diff --git a/Dataplex/src/V1/DataProductAccessRequest.php b/Dataplex/src/V1/DataProductAccessRequest.php new file mode 100644 index 000000000000..f4fb431c0056 --- /dev/null +++ b/Dataplex/src/V1/DataProductAccessRequest.php @@ -0,0 +1,216 @@ +google.cloud.dataplex.v1.DataProductAccessRequest + */ +class DataProductAccessRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The resource name of the data product. + * Format: + * projects/{project_number}/locations/{location_id}/dataProducts/{data_product_id} + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The ID of the access group for which access is being requested. + * This corresponds to the unique identifier of the AccessGroup defined in the + * Data Product. + * + * Generated from protobuf field string access_group_id = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $access_group_id = ''; + /** + * Output only. The display name of the access group defined in the Data + * Product for which access is being requested. + * + * Generated from protobuf field string access_group_display_name = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $access_group_display_name = ''; + /** + * Optional. The principal for which access is being requested in IAM format. + * If not specified, the requestor's principal will be used. + * Example: `serviceAccount:my-sa\@my-project.iam.gserviceaccount.com`. + * Only service account principals are currently supported. + * https://cloud.google.com/iam/docs/principal-identifiers + * + * Generated from protobuf field optional string requested_principal = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $requested_principal = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The resource name of the data product. + * Format: + * projects/{project_number}/locations/{location_id}/dataProducts/{data_product_id} + * @type string $access_group_id + * Required. The ID of the access group for which access is being requested. + * This corresponds to the unique identifier of the AccessGroup defined in the + * Data Product. + * @type string $access_group_display_name + * Output only. The display name of the access group defined in the Data + * Product for which access is being requested. + * @type string $requested_principal + * Optional. The principal for which access is being requested in IAM format. + * If not specified, the requestor's principal will be used. + * Example: `serviceAccount:my-sa\@my-project.iam.gserviceaccount.com`. + * Only service account principals are currently supported. + * https://cloud.google.com/iam/docs/principal-identifiers + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\ApprovalWorkflow::initOnce(); + parent::__construct($data); + } + + /** + * Required. The resource name of the data product. + * Format: + * projects/{project_number}/locations/{location_id}/dataProducts/{data_product_id} + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The resource name of the data product. + * Format: + * projects/{project_number}/locations/{location_id}/dataProducts/{data_product_id} + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The ID of the access group for which access is being requested. + * This corresponds to the unique identifier of the AccessGroup defined in the + * Data Product. + * + * Generated from protobuf field string access_group_id = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getAccessGroupId() + { + return $this->access_group_id; + } + + /** + * Required. The ID of the access group for which access is being requested. + * This corresponds to the unique identifier of the AccessGroup defined in the + * Data Product. + * + * Generated from protobuf field string access_group_id = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setAccessGroupId($var) + { + GPBUtil::checkString($var, True); + $this->access_group_id = $var; + + return $this; + } + + /** + * Output only. The display name of the access group defined in the Data + * Product for which access is being requested. + * + * Generated from protobuf field string access_group_display_name = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getAccessGroupDisplayName() + { + return $this->access_group_display_name; + } + + /** + * Output only. The display name of the access group defined in the Data + * Product for which access is being requested. + * + * Generated from protobuf field string access_group_display_name = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setAccessGroupDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->access_group_display_name = $var; + + return $this; + } + + /** + * Optional. The principal for which access is being requested in IAM format. + * If not specified, the requestor's principal will be used. + * Example: `serviceAccount:my-sa\@my-project.iam.gserviceaccount.com`. + * Only service account principals are currently supported. + * https://cloud.google.com/iam/docs/principal-identifiers + * + * Generated from protobuf field optional string requested_principal = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getRequestedPrincipal() + { + return isset($this->requested_principal) ? $this->requested_principal : ''; + } + + public function hasRequestedPrincipal() + { + return isset($this->requested_principal); + } + + public function clearRequestedPrincipal() + { + unset($this->requested_principal); + } + + /** + * Optional. The principal for which access is being requested in IAM format. + * If not specified, the requestor's principal will be used. + * Example: `serviceAccount:my-sa\@my-project.iam.gserviceaccount.com`. + * Only service account principals are currently supported. + * https://cloud.google.com/iam/docs/principal-identifiers + * + * Generated from protobuf field optional string requested_principal = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setRequestedPrincipal($var) + { + GPBUtil::checkString($var, True); + $this->requested_principal = $var; + + return $this; + } + +} + diff --git a/Dataplex/src/V1/DataProfileSpec.php b/Dataplex/src/V1/DataProfileSpec.php index efb736dec377..c9f0f682394b 100644 --- a/Dataplex/src/V1/DataProfileSpec.php +++ b/Dataplex/src/V1/DataProfileSpec.php @@ -64,6 +64,12 @@ class DataProfileSpec extends \Google\Protobuf\Internal\Message * Generated from protobuf field bool catalog_publishing_enabled = 8 [(.google.api.field_behavior) = OPTIONAL]; */ protected $catalog_publishing_enabled = false; + /** + * Optional. The execution mode for the profile scan. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DataProfileSpec.Mode mode = 9 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $mode = 0; /** * Constructor. @@ -96,6 +102,8 @@ class DataProfileSpec extends \Google\Protobuf\Internal\Message * @type bool $catalog_publishing_enabled * Optional. If set, the latest DataScan job result will be published as * Dataplex Universal Catalog metadata. + * @type int $mode + * Optional. The execution mode for the profile scan. * } */ public function __construct($data = NULL) { @@ -315,5 +323,31 @@ public function setCatalogPublishingEnabled($var) return $this; } + /** + * Optional. The execution mode for the profile scan. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DataProfileSpec.Mode mode = 9 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getMode() + { + return $this->mode; + } + + /** + * Optional. The execution mode for the profile scan. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DataProfileSpec.Mode mode = 9 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setMode($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dataplex\V1\DataProfileSpec\Mode::class); + $this->mode = $var; + + return $this; + } + } diff --git a/Dataplex/src/V1/DataProfileSpec/Mode.php b/Dataplex/src/V1/DataProfileSpec/Mode.php new file mode 100644 index 000000000000..ae4854e6c3b1 --- /dev/null +++ b/Dataplex/src/V1/DataProfileSpec/Mode.php @@ -0,0 +1,66 @@ +google.cloud.dataplex.v1.DataProfileSpec.Mode + */ +class Mode +{ + /** + * Default value. This value is unused. + * + * Generated from protobuf enum MODE_UNSPECIFIED = 0; + */ + const MODE_UNSPECIFIED = 0; + /** + * Performs standard profiling. The behavior is controlled by other fields + * such as `sampling_percent`, `row_filter`, and column filters. + * This mode allows for full scans or custom sampling. + * + * Generated from protobuf enum STANDARD = 1; + */ + const STANDARD = 1; + /** + * Specifies lightweight profiling mode. This mode is optimized for + * low-latency, low-fidelity profiling. + * When this mode is selected, the following fields must not be set: + * `sampling_percent`, `row_filter`, `include_fields`, and `exclude_fields`. + * + * Generated from protobuf enum LIGHTWEIGHT = 2; + */ + const LIGHTWEIGHT = 2; + + private static $valueToName = [ + self::MODE_UNSPECIFIED => 'MODE_UNSPECIFIED', + self::STANDARD => 'STANDARD', + self::LIGHTWEIGHT => 'LIGHTWEIGHT', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/Dataplex/src/V1/DataQualityRule.php b/Dataplex/src/V1/DataQualityRule.php index a532bc1d9c4b..94c6a80933c2 100644 --- a/Dataplex/src/V1/DataQualityRule.php +++ b/Dataplex/src/V1/DataQualityRule.php @@ -76,6 +76,21 @@ class DataQualityRule extends \Google\Protobuf\Internal\Message * Generated from protobuf field bool suspended = 506 [(.google.api.field_behavior) = OPTIONAL]; */ protected $suspended = false; + /** + * Optional. Map of attribute name and value linked to the rule. The rules to + * evaluate can be filtered based on attributes provided here and a filter + * expression provided in the DataQualitySpec.filter field. + * + * Generated from protobuf field map attributes = 507 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $attributes; + /** + * Output only. Contains information about the source of the rule and its + * relationship with the BigQuery table, where applicable. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DataQualityRule.RuleSource rule_source = 508 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $rule_source = null; /** * Optional. Specifies the debug queries for this rule. * Currently, only one query is supported, but this may be expanded in the @@ -117,6 +132,10 @@ class DataQualityRule extends \Google\Protobuf\Internal\Message * @type \Google\Cloud\Dataplex\V1\DataQualityRule\SqlAssertion $sql_assertion * Aggregate rule which evaluates the number of rows returned for the * provided statement. If any rows are returned, this rule fails. + * @type \Google\Cloud\Dataplex\V1\DataQualityRule\TemplateReference $template_reference + * Aggregate rule which references a rule template and provides the + * parameters to be substituted in the template. If any rows are returned, + * this rule fails. * @type string $column * Optional. The unnested column which this rule is evaluated against. * @type bool $ignore_null @@ -150,6 +169,13 @@ class DataQualityRule extends \Google\Protobuf\Internal\Message * @type bool $suspended * Optional. Whether the Rule is active or suspended. * Default is false. + * @type array|\Google\Protobuf\Internal\MapField $attributes + * Optional. Map of attribute name and value linked to the rule. The rules to + * evaluate can be filtered based on attributes provided here and a filter + * expression provided in the DataQualitySpec.filter field. + * @type \Google\Cloud\Dataplex\V1\DataQualityRule\RuleSource $rule_source + * Output only. Contains information about the source of the rule and its + * relationship with the BigQuery table, where applicable. * @type \Google\Cloud\Dataplex\V1\DataQualityRule\DebugQuery[] $debug_queries * Optional. Specifies the debug queries for this rule. * Currently, only one query is supported, but this may be expanded in the @@ -454,6 +480,41 @@ public function setSqlAssertion($var) return $this; } + /** + * Aggregate rule which references a rule template and provides the + * parameters to be substituted in the template. If any rows are returned, + * this rule fails. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DataQualityRule.TemplateReference template_reference = 5; + * @return \Google\Cloud\Dataplex\V1\DataQualityRule\TemplateReference|null + */ + public function getTemplateReference() + { + return $this->readOneof(5); + } + + public function hasTemplateReference() + { + return $this->hasOneof(5); + } + + /** + * Aggregate rule which references a rule template and provides the + * parameters to be substituted in the template. If any rows are returned, + * this rule fails. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DataQualityRule.TemplateReference template_reference = 5; + * @param \Google\Cloud\Dataplex\V1\DataQualityRule\TemplateReference $var + * @return $this + */ + public function setTemplateReference($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\DataQualityRule\TemplateReference::class); + $this->writeOneof(5, $var); + + return $this; + } + /** * Optional. The unnested column which this rule is evaluated against. * @@ -674,6 +735,74 @@ public function setSuspended($var) return $this; } + /** + * Optional. Map of attribute name and value linked to the rule. The rules to + * evaluate can be filtered based on attributes provided here and a filter + * expression provided in the DataQualitySpec.filter field. + * + * Generated from protobuf field map attributes = 507 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\MapField + */ + public function getAttributes() + { + return $this->attributes; + } + + /** + * Optional. Map of attribute name and value linked to the rule. The rules to + * evaluate can be filtered based on attributes provided here and a filter + * expression provided in the DataQualitySpec.filter field. + * + * Generated from protobuf field map attributes = 507 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setAttributes($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->attributes = $arr; + + return $this; + } + + /** + * Output only. Contains information about the source of the rule and its + * relationship with the BigQuery table, where applicable. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DataQualityRule.RuleSource rule_source = 508 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Dataplex\V1\DataQualityRule\RuleSource|null + */ + public function getRuleSource() + { + return $this->rule_source; + } + + public function hasRuleSource() + { + return isset($this->rule_source); + } + + public function clearRuleSource() + { + unset($this->rule_source); + } + + /** + * Output only. Contains information about the source of the rule and its + * relationship with the BigQuery table, where applicable. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DataQualityRule.RuleSource rule_source = 508 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Dataplex\V1\DataQualityRule\RuleSource $var + * @return $this + */ + public function setRuleSource($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\DataQualityRule\RuleSource::class); + $this->rule_source = $var; + + return $this; + } + /** * Optional. Specifies the debug queries for this rule. * Currently, only one query is supported, but this may be expanded in the diff --git a/Dataplex/src/V1/DataQualityRule/RuleSource.php b/Dataplex/src/V1/DataQualityRule/RuleSource.php new file mode 100644 index 000000000000..df974ce23fce --- /dev/null +++ b/Dataplex/src/V1/DataQualityRule/RuleSource.php @@ -0,0 +1,75 @@ +google.cloud.dataplex.v1.DataQualityRule.RuleSource + */ +class RuleSource extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. Rule path elements represent information about the + * individual items in the relationship path between the scan resource and + * rule origin in that order. + * + * Generated from protobuf field repeated .google.cloud.dataplex.v1.DataQualityRule.RuleSource.RulePathElement rule_path_elements = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + private $rule_path_elements; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dataplex\V1\DataQualityRule\RuleSource\RulePathElement[] $rule_path_elements + * Output only. Rule path elements represent information about the + * individual items in the relationship path between the scan resource and + * rule origin in that order. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\DataQuality::initOnce(); + parent::__construct($data); + } + + /** + * Output only. Rule path elements represent information about the + * individual items in the relationship path between the scan resource and + * rule origin in that order. + * + * Generated from protobuf field repeated .google.cloud.dataplex.v1.DataQualityRule.RuleSource.RulePathElement rule_path_elements = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return RepeatedField<\Google\Cloud\Dataplex\V1\DataQualityRule\RuleSource\RulePathElement> + */ + public function getRulePathElements() + { + return $this->rule_path_elements; + } + + /** + * Output only. Rule path elements represent information about the + * individual items in the relationship path between the scan resource and + * rule origin in that order. + * + * Generated from protobuf field repeated .google.cloud.dataplex.v1.DataQualityRule.RuleSource.RulePathElement rule_path_elements = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Dataplex\V1\DataQualityRule\RuleSource\RulePathElement[] $var + * @return $this + */ + public function setRulePathElements($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dataplex\V1\DataQualityRule\RuleSource\RulePathElement::class); + $this->rule_path_elements = $arr; + + return $this; + } + +} + diff --git a/Dataplex/src/V1/DataQualityRule/RuleSource/RulePathElement.php b/Dataplex/src/V1/DataQualityRule/RuleSource/RulePathElement.php new file mode 100644 index 000000000000..f896d32d936d --- /dev/null +++ b/Dataplex/src/V1/DataQualityRule/RuleSource/RulePathElement.php @@ -0,0 +1,118 @@ +google.cloud.dataplex.v1.DataQualityRule.RuleSource.RulePathElement + */ +class RulePathElement extends \Google\Protobuf\Internal\Message +{ + protected $source_type; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dataplex\V1\DataQualityRule\RuleSource\RulePathElement\EntrySource $entry_source + * Output only. Entry source represents information about the related + * source entry. + * @type \Google\Cloud\Dataplex\V1\DataQualityRule\RuleSource\RulePathElement\EntryLinkSource $entry_link_source + * Output only. Entry link source represents information about the entry + * link. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\DataQuality::initOnce(); + parent::__construct($data); + } + + /** + * Output only. Entry source represents information about the related + * source entry. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DataQualityRule.RuleSource.RulePathElement.EntrySource entry_source = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Dataplex\V1\DataQualityRule\RuleSource\RulePathElement\EntrySource|null + */ + public function getEntrySource() + { + return $this->readOneof(1); + } + + public function hasEntrySource() + { + return $this->hasOneof(1); + } + + /** + * Output only. Entry source represents information about the related + * source entry. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DataQualityRule.RuleSource.RulePathElement.EntrySource entry_source = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Dataplex\V1\DataQualityRule\RuleSource\RulePathElement\EntrySource $var + * @return $this + */ + public function setEntrySource($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\DataQualityRule\RuleSource\RulePathElement\EntrySource::class); + $this->writeOneof(1, $var); + + return $this; + } + + /** + * Output only. Entry link source represents information about the entry + * link. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DataQualityRule.RuleSource.RulePathElement.EntryLinkSource entry_link_source = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Dataplex\V1\DataQualityRule\RuleSource\RulePathElement\EntryLinkSource|null + */ + public function getEntryLinkSource() + { + return $this->readOneof(2); + } + + public function hasEntryLinkSource() + { + return $this->hasOneof(2); + } + + /** + * Output only. Entry link source represents information about the entry + * link. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DataQualityRule.RuleSource.RulePathElement.EntryLinkSource entry_link_source = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Dataplex\V1\DataQualityRule\RuleSource\RulePathElement\EntryLinkSource $var + * @return $this + */ + public function setEntryLinkSource($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\DataQualityRule\RuleSource\RulePathElement\EntryLinkSource::class); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * @return string + */ + public function getSourceType() + { + return $this->whichOneof("source_type"); + } + +} + diff --git a/Dataplex/src/V1/DataQualityRule/RuleSource/RulePathElement/EntryLinkSource.php b/Dataplex/src/V1/DataQualityRule/RuleSource/RulePathElement/EntryLinkSource.php new file mode 100644 index 000000000000..d30ce4bedea6 --- /dev/null +++ b/Dataplex/src/V1/DataQualityRule/RuleSource/RulePathElement/EntryLinkSource.php @@ -0,0 +1,117 @@ +google.cloud.dataplex.v1.DataQualityRule.RuleSource.RulePathElement.EntryLinkSource + */ +class EntryLinkSource extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The entry link type to represent the current + * relationship between the entry and the next entry in the path. + * In the form of: + * `projects/{project_id_or_number}/locations/{location_id}/entryLinkTypes/{entry_link_type_id}` + * + * Generated from protobuf field string entry_link_type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $entry_link_type = ''; + /** + * Output only. The entry link name in the form of: + * `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entryLinks/{entry_link_id}` + * + * Generated from protobuf field string entry_link = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $entry_link = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $entry_link_type + * Output only. The entry link type to represent the current + * relationship between the entry and the next entry in the path. + * In the form of: + * `projects/{project_id_or_number}/locations/{location_id}/entryLinkTypes/{entry_link_type_id}` + * @type string $entry_link + * Output only. The entry link name in the form of: + * `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entryLinks/{entry_link_id}` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\DataQuality::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The entry link type to represent the current + * relationship between the entry and the next entry in the path. + * In the form of: + * `projects/{project_id_or_number}/locations/{location_id}/entryLinkTypes/{entry_link_type_id}` + * + * Generated from protobuf field string entry_link_type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getEntryLinkType() + { + return $this->entry_link_type; + } + + /** + * Output only. The entry link type to represent the current + * relationship between the entry and the next entry in the path. + * In the form of: + * `projects/{project_id_or_number}/locations/{location_id}/entryLinkTypes/{entry_link_type_id}` + * + * Generated from protobuf field string entry_link_type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setEntryLinkType($var) + { + GPBUtil::checkString($var, True); + $this->entry_link_type = $var; + + return $this; + } + + /** + * Output only. The entry link name in the form of: + * `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entryLinks/{entry_link_id}` + * + * Generated from protobuf field string entry_link = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getEntryLink() + { + return $this->entry_link; + } + + /** + * Output only. The entry link name in the form of: + * `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entryLinks/{entry_link_id}` + * + * Generated from protobuf field string entry_link = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setEntryLink($var) + { + GPBUtil::checkString($var, True); + $this->entry_link = $var; + + return $this; + } + +} + diff --git a/Dataplex/src/V1/DataQualityRule/RuleSource/RulePathElement/EntrySource.php b/Dataplex/src/V1/DataQualityRule/RuleSource/RulePathElement/EntrySource.php new file mode 100644 index 000000000000..bae1eb1a8d6a --- /dev/null +++ b/Dataplex/src/V1/DataQualityRule/RuleSource/RulePathElement/EntrySource.php @@ -0,0 +1,147 @@ +google.cloud.dataplex.v1.DataQualityRule.RuleSource.RulePathElement.EntrySource + */ +class EntrySource extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The entry type to represent the current characteristics + * of the entry in the form of: + * `projects/{project_id_or_number}/locations/{location_id}/entryTypes/{entry-type-id}`. + * + * Generated from protobuf field string entry_type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $entry_type = ''; + /** + * Output only. The entry name in the form of: + * `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}` + * + * Generated from protobuf field string entry = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $entry = ''; + /** + * Output only. The display name of the entry. + * + * Generated from protobuf field string display_name = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $display_name = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $entry_type + * Output only. The entry type to represent the current characteristics + * of the entry in the form of: + * `projects/{project_id_or_number}/locations/{location_id}/entryTypes/{entry-type-id}`. + * @type string $entry + * Output only. The entry name in the form of: + * `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}` + * @type string $display_name + * Output only. The display name of the entry. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\DataQuality::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The entry type to represent the current characteristics + * of the entry in the form of: + * `projects/{project_id_or_number}/locations/{location_id}/entryTypes/{entry-type-id}`. + * + * Generated from protobuf field string entry_type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getEntryType() + { + return $this->entry_type; + } + + /** + * Output only. The entry type to represent the current characteristics + * of the entry in the form of: + * `projects/{project_id_or_number}/locations/{location_id}/entryTypes/{entry-type-id}`. + * + * Generated from protobuf field string entry_type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setEntryType($var) + { + GPBUtil::checkString($var, True); + $this->entry_type = $var; + + return $this; + } + + /** + * Output only. The entry name in the form of: + * `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}` + * + * Generated from protobuf field string entry = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getEntry() + { + return $this->entry; + } + + /** + * Output only. The entry name in the form of: + * `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}` + * + * Generated from protobuf field string entry = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setEntry($var) + { + GPBUtil::checkString($var, True); + $this->entry = $var; + + return $this; + } + + /** + * Output only. The display name of the entry. + * + * Generated from protobuf field string display_name = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getDisplayName() + { + return $this->display_name; + } + + /** + * Output only. The display name of the entry. + * + * Generated from protobuf field string display_name = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->display_name = $var; + + return $this; + } + +} + diff --git a/Dataplex/src/V1/DataQualityRule/TemplateReference.php b/Dataplex/src/V1/DataQualityRule/TemplateReference.php new file mode 100644 index 000000000000..9e17a784b7af --- /dev/null +++ b/Dataplex/src/V1/DataQualityRule/TemplateReference.php @@ -0,0 +1,213 @@ +google.cloud.dataplex.v1.DataQualityRule.TemplateReference + */ +class TemplateReference extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The template entry name. Entry must be of EntryType + * `projects/dataplex-types/locations/global/entryTypes/data-quality-rule-template` + * and contains top-level aspect of AspectType + * `projects/dataplex-types/locations/global/aspectTypes/data-quality-rule-template`. + * The format is: + * `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + /** + * Optional. Provides the map of parameter name and value. + * The maximum size of the field is 120KB (encoded as UTF-8). + * + * Generated from protobuf field map values = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $values; + /** + * Output only. The resolved SQL statement generated from the template with + * parameters substituted. It is only populated in the result. + * + * Generated from protobuf field string resolved_sql = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $resolved_sql = ''; + /** + * Output only. The rule template used to resolve the rule. It is only + * populated in the result. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DataQualityRuleTemplate rule_template = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $rule_template = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The template entry name. Entry must be of EntryType + * `projects/dataplex-types/locations/global/entryTypes/data-quality-rule-template` + * and contains top-level aspect of AspectType + * `projects/dataplex-types/locations/global/aspectTypes/data-quality-rule-template`. + * The format is: + * `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}` + * @type array|\Google\Protobuf\Internal\MapField $values + * Optional. Provides the map of parameter name and value. + * The maximum size of the field is 120KB (encoded as UTF-8). + * @type string $resolved_sql + * Output only. The resolved SQL statement generated from the template with + * parameters substituted. It is only populated in the result. + * @type \Google\Cloud\Dataplex\V1\DataQualityRuleTemplate $rule_template + * Output only. The rule template used to resolve the rule. It is only + * populated in the result. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\DataQuality::initOnce(); + parent::__construct($data); + } + + /** + * Required. The template entry name. Entry must be of EntryType + * `projects/dataplex-types/locations/global/entryTypes/data-quality-rule-template` + * and contains top-level aspect of AspectType + * `projects/dataplex-types/locations/global/aspectTypes/data-quality-rule-template`. + * The format is: + * `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The template entry name. Entry must be of EntryType + * `projects/dataplex-types/locations/global/entryTypes/data-quality-rule-template` + * and contains top-level aspect of AspectType + * `projects/dataplex-types/locations/global/aspectTypes/data-quality-rule-template`. + * The format is: + * `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Optional. Provides the map of parameter name and value. + * The maximum size of the field is 120KB (encoded as UTF-8). + * + * Generated from protobuf field map values = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\MapField + */ + public function getValues() + { + return $this->values; + } + + /** + * Optional. Provides the map of parameter name and value. + * The maximum size of the field is 120KB (encoded as UTF-8). + * + * Generated from protobuf field map values = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setValues($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dataplex\V1\DataQualityRule\TemplateReference\ParameterValue::class); + $this->values = $arr; + + return $this; + } + + /** + * Output only. The resolved SQL statement generated from the template with + * parameters substituted. It is only populated in the result. + * + * Generated from protobuf field string resolved_sql = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getResolvedSql() + { + return $this->resolved_sql; + } + + /** + * Output only. The resolved SQL statement generated from the template with + * parameters substituted. It is only populated in the result. + * + * Generated from protobuf field string resolved_sql = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setResolvedSql($var) + { + GPBUtil::checkString($var, True); + $this->resolved_sql = $var; + + return $this; + } + + /** + * Output only. The rule template used to resolve the rule. It is only + * populated in the result. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DataQualityRuleTemplate rule_template = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Dataplex\V1\DataQualityRuleTemplate|null + */ + public function getRuleTemplate() + { + return $this->rule_template; + } + + public function hasRuleTemplate() + { + return isset($this->rule_template); + } + + public function clearRuleTemplate() + { + unset($this->rule_template); + } + + /** + * Output only. The rule template used to resolve the rule. It is only + * populated in the result. + * + * Generated from protobuf field .google.cloud.dataplex.v1.DataQualityRuleTemplate rule_template = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Dataplex\V1\DataQualityRuleTemplate $var + * @return $this + */ + public function setRuleTemplate($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\DataQualityRuleTemplate::class); + $this->rule_template = $var; + + return $this; + } + +} + diff --git a/Dataplex/src/V1/DataQualityRule/TemplateReference/ParameterValue.php b/Dataplex/src/V1/DataQualityRule/TemplateReference/ParameterValue.php new file mode 100644 index 000000000000..ab4ca0c95183 --- /dev/null +++ b/Dataplex/src/V1/DataQualityRule/TemplateReference/ParameterValue.php @@ -0,0 +1,67 @@ +google.cloud.dataplex.v1.DataQualityRule.TemplateReference.ParameterValue + */ +class ParameterValue extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Represents the string value of the parameter. + * + * Generated from protobuf field string value = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $value = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $value + * Required. Represents the string value of the parameter. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\DataQuality::initOnce(); + parent::__construct($data); + } + + /** + * Required. Represents the string value of the parameter. + * + * Generated from protobuf field string value = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getValue() + { + return $this->value; + } + + /** + * Required. Represents the string value of the parameter. + * + * Generated from protobuf field string value = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setValue($var) + { + GPBUtil::checkString($var, True); + $this->value = $var; + + return $this; + } + +} + diff --git a/Dataplex/src/V1/DataQualityRuleTemplate.php b/Dataplex/src/V1/DataQualityRuleTemplate.php new file mode 100644 index 000000000000..c1756214ac97 --- /dev/null +++ b/Dataplex/src/V1/DataQualityRuleTemplate.php @@ -0,0 +1,220 @@ +google.cloud.dataplex.v1.DataQualityRuleTemplate + */ +class DataQualityRuleTemplate extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The name of the rule template in the format: + * `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $name = ''; + /** + * Output only. The dimension a rule template belongs to. Rule level results + * are also aggregated at the dimension level. + * + * Generated from protobuf field string dimension = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $dimension = ''; + /** + * Output only. Collection of SQLs for data quality rules. Currently only one + * SQL is supported. + * + * Generated from protobuf field repeated .google.cloud.dataplex.v1.DataQualityRuleTemplate.Sql sql_collection = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + private $sql_collection; + /** + * Output only. Description for input parameters + * + * Generated from protobuf field map input_parameters = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + private $input_parameters; + /** + * Output only. A list of features or properties supported by this rule + * template. + * + * Generated from protobuf field repeated string capabilities = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + private $capabilities; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Output only. The name of the rule template in the format: + * `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}` + * @type string $dimension + * Output only. The dimension a rule template belongs to. Rule level results + * are also aggregated at the dimension level. + * @type \Google\Cloud\Dataplex\V1\DataQualityRuleTemplate\Sql[] $sql_collection + * Output only. Collection of SQLs for data quality rules. Currently only one + * SQL is supported. + * @type array|\Google\Protobuf\Internal\MapField $input_parameters + * Output only. Description for input parameters + * @type string[] $capabilities + * Output only. A list of features or properties supported by this rule + * template. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\DataQualityRuleTemplate::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The name of the rule template in the format: + * `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Output only. The name of the rule template in the format: + * `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Output only. The dimension a rule template belongs to. Rule level results + * are also aggregated at the dimension level. + * + * Generated from protobuf field string dimension = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getDimension() + { + return $this->dimension; + } + + /** + * Output only. The dimension a rule template belongs to. Rule level results + * are also aggregated at the dimension level. + * + * Generated from protobuf field string dimension = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setDimension($var) + { + GPBUtil::checkString($var, True); + $this->dimension = $var; + + return $this; + } + + /** + * Output only. Collection of SQLs for data quality rules. Currently only one + * SQL is supported. + * + * Generated from protobuf field repeated .google.cloud.dataplex.v1.DataQualityRuleTemplate.Sql sql_collection = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return RepeatedField<\Google\Cloud\Dataplex\V1\DataQualityRuleTemplate\Sql> + */ + public function getSqlCollection() + { + return $this->sql_collection; + } + + /** + * Output only. Collection of SQLs for data quality rules. Currently only one + * SQL is supported. + * + * Generated from protobuf field repeated .google.cloud.dataplex.v1.DataQualityRuleTemplate.Sql sql_collection = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Dataplex\V1\DataQualityRuleTemplate\Sql[] $var + * @return $this + */ + public function setSqlCollection($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dataplex\V1\DataQualityRuleTemplate\Sql::class); + $this->sql_collection = $arr; + + return $this; + } + + /** + * Output only. Description for input parameters + * + * Generated from protobuf field map input_parameters = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Internal\MapField + */ + public function getInputParameters() + { + return $this->input_parameters; + } + + /** + * Output only. Description for input parameters + * + * Generated from protobuf field map input_parameters = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setInputParameters($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dataplex\V1\DataQualityRuleTemplate\ParameterDescription::class); + $this->input_parameters = $arr; + + return $this; + } + + /** + * Output only. A list of features or properties supported by this rule + * template. + * + * Generated from protobuf field repeated string capabilities = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return RepeatedField + */ + public function getCapabilities() + { + return $this->capabilities; + } + + /** + * Output only. A list of features or properties supported by this rule + * template. + * + * Generated from protobuf field repeated string capabilities = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string[] $var + * @return $this + */ + public function setCapabilities($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->capabilities = $arr; + + return $this; + } + +} + diff --git a/Dataplex/src/V1/DataQualityRuleTemplate/ParameterDescription.php b/Dataplex/src/V1/DataQualityRuleTemplate/ParameterDescription.php new file mode 100644 index 000000000000..e87be15f2d67 --- /dev/null +++ b/Dataplex/src/V1/DataQualityRuleTemplate/ParameterDescription.php @@ -0,0 +1,115 @@ +google.cloud.dataplex.v1.DataQualityRuleTemplate.ParameterDescription + */ +class ParameterDescription extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. Description of the input parameter. It can include the + * type(s) supported by the parameter and intended usage. It is for + * information purposes only and does not affect the behavior of the rule + * template. + * + * Generated from protobuf field string description = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $description = ''; + /** + * Output only. The default value for the parameter if no value is provided. + * + * Generated from protobuf field string default_value = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $default_value = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $description + * Output only. Description of the input parameter. It can include the + * type(s) supported by the parameter and intended usage. It is for + * information purposes only and does not affect the behavior of the rule + * template. + * @type string $default_value + * Output only. The default value for the parameter if no value is provided. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\DataQualityRuleTemplate::initOnce(); + parent::__construct($data); + } + + /** + * Output only. Description of the input parameter. It can include the + * type(s) supported by the parameter and intended usage. It is for + * information purposes only and does not affect the behavior of the rule + * template. + * + * Generated from protobuf field string description = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Output only. Description of the input parameter. It can include the + * type(s) supported by the parameter and intended usage. It is for + * information purposes only and does not affect the behavior of the rule + * template. + * + * Generated from protobuf field string description = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * Output only. The default value for the parameter if no value is provided. + * + * Generated from protobuf field string default_value = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getDefaultValue() + { + return $this->default_value; + } + + /** + * Output only. The default value for the parameter if no value is provided. + * + * Generated from protobuf field string default_value = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setDefaultValue($var) + { + GPBUtil::checkString($var, True); + $this->default_value = $var; + + return $this; + } + +} + diff --git a/Dataplex/src/V1/DataQualityRuleTemplate/Sql.php b/Dataplex/src/V1/DataQualityRuleTemplate/Sql.php new file mode 100644 index 000000000000..cc971bee0aa0 --- /dev/null +++ b/Dataplex/src/V1/DataQualityRuleTemplate/Sql.php @@ -0,0 +1,68 @@ +google.cloud.dataplex.v1.DataQualityRuleTemplate.Sql + */ +class Sql extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. Templatized SQL query for data quality rules. + * + * Generated from protobuf field string query = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $query = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $query + * Output only. Templatized SQL query for data quality rules. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\DataQualityRuleTemplate::initOnce(); + parent::__construct($data); + } + + /** + * Output only. Templatized SQL query for data quality rules. + * + * Generated from protobuf field string query = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getQuery() + { + return $this->query; + } + + /** + * Output only. Templatized SQL query for data quality rules. + * + * Generated from protobuf field string query = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setQuery($var) + { + GPBUtil::checkString($var, True); + $this->query = $var; + + return $this; + } + +} + diff --git a/Dataplex/src/V1/DataQualityScanRuleResult/RuleType.php b/Dataplex/src/V1/DataQualityScanRuleResult/RuleType.php index 99e48fc7e6ca..b7519f675823 100644 --- a/Dataplex/src/V1/DataQualityScanRuleResult/RuleType.php +++ b/Dataplex/src/V1/DataQualityScanRuleResult/RuleType.php @@ -82,6 +82,13 @@ class RuleType * Generated from protobuf enum SQL_ASSERTION = 9; */ const SQL_ASSERTION = 9; + /** + * See + * [DataQualityRule.TemplateReference][google.cloud.dataplex.v1.DataQualityRule.TemplateReference]. + * + * Generated from protobuf enum TEMPLATE_REFERENCE = 10; + */ + const TEMPLATE_REFERENCE = 10; private static $valueToName = [ self::RULE_TYPE_UNSPECIFIED => 'RULE_TYPE_UNSPECIFIED', @@ -94,6 +101,7 @@ class RuleType self::TABLE_CONDITION_EXPECTATION => 'TABLE_CONDITION_EXPECTATION', self::UNIQUENESS_EXPECTATION => 'UNIQUENESS_EXPECTATION', self::SQL_ASSERTION => 'SQL_ASSERTION', + self::TEMPLATE_REFERENCE => 'TEMPLATE_REFERENCE', ]; public static function name($value) diff --git a/Dataplex/src/V1/DataQualitySpec.php b/Dataplex/src/V1/DataQualitySpec.php index 7ecdbcc5ad4d..48caf1a03755 100644 --- a/Dataplex/src/V1/DataQualitySpec.php +++ b/Dataplex/src/V1/DataQualitySpec.php @@ -56,6 +56,34 @@ class DataQualitySpec extends \Google\Protobuf\Internal\Message * Generated from protobuf field bool catalog_publishing_enabled = 8 [(.google.api.field_behavior) = OPTIONAL]; */ protected $catalog_publishing_enabled = false; + /** + * Optional. If enabled, the data scan will retrieve rules defined in the + * dataplex-types.global.data-rules aspect on all paths of the catalog entry + * corresponding to the BigQuery table resource and all attached glossary + * terms. The path that data-rules aspect is attached on the table entry + * defines the column that the rule will be evaluated against. For glossary + * terms, the path that the terms are attached on the table entry defines the + * column that the rule will be evaluated against. At the start of scan + * execution, the rules reflect the latest state retrieved from the catalog + * entry and any updates on the rules thereafter are ignored for that + * execution. The updates will be reflected from the next execution. Rules + * defined in the datascan must be empty if this field is enabled. + * + * Generated from protobuf field bool enable_catalog_based_rules = 10 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $enable_catalog_based_rules = false; + /** + * Optional. Filter for selectively running a subset of rules. You can filter + * the request by the name or attribute key-value pairs defined on the rule. + * If not specified, all rules are run. The filter is applicable to both, the + * rules retrieved from catalog and explicitly defined rules in the scan. + * Please see [filter + * syntax](https://docs.cloud.google.com/dataplex/docs/auto-data-quality-overview#rule-filtering) + * for more details. + * + * Generated from protobuf field string filter = 11 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $filter = ''; /** * Constructor. @@ -84,6 +112,26 @@ class DataQualitySpec extends \Google\Protobuf\Internal\Message * @type bool $catalog_publishing_enabled * Optional. If set, the latest DataScan job result will be published as * Dataplex Universal Catalog metadata. + * @type bool $enable_catalog_based_rules + * Optional. If enabled, the data scan will retrieve rules defined in the + * dataplex-types.global.data-rules aspect on all paths of the catalog entry + * corresponding to the BigQuery table resource and all attached glossary + * terms. The path that data-rules aspect is attached on the table entry + * defines the column that the rule will be evaluated against. For glossary + * terms, the path that the terms are attached on the table entry defines the + * column that the rule will be evaluated against. At the start of scan + * execution, the rules reflect the latest state retrieved from the catalog + * entry and any updates on the rules thereafter are ignored for that + * execution. The updates will be reflected from the next execution. Rules + * defined in the datascan must be empty if this field is enabled. + * @type string $filter + * Optional. Filter for selectively running a subset of rules. You can filter + * the request by the name or attribute key-value pairs defined on the rule. + * If not specified, all rules are run. The filter is applicable to both, the + * rules retrieved from catalog and explicitly defined rules in the scan. + * Please see [filter + * syntax](https://docs.cloud.google.com/dataplex/docs/auto-data-quality-overview#rule-filtering) + * for more details. * } */ public function __construct($data = NULL) { @@ -253,5 +301,89 @@ public function setCatalogPublishingEnabled($var) return $this; } + /** + * Optional. If enabled, the data scan will retrieve rules defined in the + * dataplex-types.global.data-rules aspect on all paths of the catalog entry + * corresponding to the BigQuery table resource and all attached glossary + * terms. The path that data-rules aspect is attached on the table entry + * defines the column that the rule will be evaluated against. For glossary + * terms, the path that the terms are attached on the table entry defines the + * column that the rule will be evaluated against. At the start of scan + * execution, the rules reflect the latest state retrieved from the catalog + * entry and any updates on the rules thereafter are ignored for that + * execution. The updates will be reflected from the next execution. Rules + * defined in the datascan must be empty if this field is enabled. + * + * Generated from protobuf field bool enable_catalog_based_rules = 10 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getEnableCatalogBasedRules() + { + return $this->enable_catalog_based_rules; + } + + /** + * Optional. If enabled, the data scan will retrieve rules defined in the + * dataplex-types.global.data-rules aspect on all paths of the catalog entry + * corresponding to the BigQuery table resource and all attached glossary + * terms. The path that data-rules aspect is attached on the table entry + * defines the column that the rule will be evaluated against. For glossary + * terms, the path that the terms are attached on the table entry defines the + * column that the rule will be evaluated against. At the start of scan + * execution, the rules reflect the latest state retrieved from the catalog + * entry and any updates on the rules thereafter are ignored for that + * execution. The updates will be reflected from the next execution. Rules + * defined in the datascan must be empty if this field is enabled. + * + * Generated from protobuf field bool enable_catalog_based_rules = 10 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setEnableCatalogBasedRules($var) + { + GPBUtil::checkBool($var); + $this->enable_catalog_based_rules = $var; + + return $this; + } + + /** + * Optional. Filter for selectively running a subset of rules. You can filter + * the request by the name or attribute key-value pairs defined on the rule. + * If not specified, all rules are run. The filter is applicable to both, the + * rules retrieved from catalog and explicitly defined rules in the scan. + * Please see [filter + * syntax](https://docs.cloud.google.com/dataplex/docs/auto-data-quality-overview#rule-filtering) + * for more details. + * + * Generated from protobuf field string filter = 11 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getFilter() + { + return $this->filter; + } + + /** + * Optional. Filter for selectively running a subset of rules. You can filter + * the request by the name or attribute key-value pairs defined on the rule. + * If not specified, all rules are run. The filter is applicable to both, the + * rules retrieved from catalog and explicitly defined rules in the scan. + * Please see [filter + * syntax](https://docs.cloud.google.com/dataplex/docs/auto-data-quality-overview#rule-filtering) + * for more details. + * + * Generated from protobuf field string filter = 11 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setFilter($var) + { + GPBUtil::checkString($var, True); + $this->filter = $var; + + return $this; + } + } diff --git a/Dataplex/src/V1/DataScan.php b/Dataplex/src/V1/DataScan.php index b3e21cb75988..fc8507dac394 100644 --- a/Dataplex/src/V1/DataScan.php +++ b/Dataplex/src/V1/DataScan.php @@ -23,10 +23,11 @@ * * Data discovery: scans data in Cloud Storage buckets to extract and then * catalog metadata. For more information, see [Discover and catalog Cloud * Storage data](https://cloud.google.com/bigquery/docs/automatic-discovery). - * * Data documentation: analyzes the table details and generates insights - * including descriptions and sample SQL queries for the table. For more - * information, see [Generate data insights in - * BigQuery](https://cloud.google.com/bigquery/docs/data-insights). + * * Data documentation: analyzes the table or dataset metadata and generates + * insights. For tables, insights include descriptions and sample SQL + * queries. For datasets, insights include descriptions, schema relationships + * and sample SQL queries. For more information, see [Generate data insights + * in BigQuery](https://cloud.google.com/bigquery/docs/data-insights). * * Generated from protobuf message google.cloud.dataplex.v1.DataScan */ @@ -111,6 +112,13 @@ class DataScan extends \Google\Protobuf\Internal\Message * Generated from protobuf field .google.cloud.dataplex.v1.DataScanType type = 12 [(.google.api.field_behavior) = OUTPUT_ONLY]; */ protected $type = 0; + /** + * Optional. Immutable. The identity to run the datascan. + * If not specified, defaults to the Dataplex Service Agent. + * + * Generated from protobuf field .google.cloud.dataplex.v1.ExecutionIdentity execution_identity = 300 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = IMMUTABLE]; + */ + protected $execution_identity = null; protected $spec; protected $result; @@ -167,6 +175,9 @@ class DataScan extends \Google\Protobuf\Internal\Message * Output only. The result of a data discovery scan. * @type \Google\Cloud\Dataplex\V1\DataDocumentationResult $data_documentation_result * Output only. The result of a data documentation scan. + * @type \Google\Cloud\Dataplex\V1\ExecutionIdentity $execution_identity + * Optional. Immutable. The identity to run the datascan. + * If not specified, defaults to the Dataplex Service Agent. * } */ public function __construct($data = NULL) { @@ -798,6 +809,44 @@ public function setDataDocumentationResult($var) return $this; } + /** + * Optional. Immutable. The identity to run the datascan. + * If not specified, defaults to the Dataplex Service Agent. + * + * Generated from protobuf field .google.cloud.dataplex.v1.ExecutionIdentity execution_identity = 300 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = IMMUTABLE]; + * @return \Google\Cloud\Dataplex\V1\ExecutionIdentity|null + */ + public function getExecutionIdentity() + { + return $this->execution_identity; + } + + public function hasExecutionIdentity() + { + return isset($this->execution_identity); + } + + public function clearExecutionIdentity() + { + unset($this->execution_identity); + } + + /** + * Optional. Immutable. The identity to run the datascan. + * If not specified, defaults to the Dataplex Service Agent. + * + * Generated from protobuf field .google.cloud.dataplex.v1.ExecutionIdentity execution_identity = 300 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = IMMUTABLE]; + * @param \Google\Cloud\Dataplex\V1\ExecutionIdentity $var + * @return $this + */ + public function setExecutionIdentity($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\ExecutionIdentity::class); + $this->execution_identity = $var; + + return $this; + } + /** * @return string */ diff --git a/Dataplex/src/V1/DataScanJob.php b/Dataplex/src/V1/DataScanJob.php index ef30f5bcf510..e0799f3623cf 100644 --- a/Dataplex/src/V1/DataScanJob.php +++ b/Dataplex/src/V1/DataScanJob.php @@ -37,6 +37,12 @@ class DataScanJob extends \Google\Protobuf\Internal\Message * Generated from protobuf field .google.protobuf.Timestamp create_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; */ protected $create_time = null; + /** + * Output only. A message indicating partial failure details. + * + * Generated from protobuf field string partial_failure_message = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $partial_failure_message = ''; /** * Output only. The time when the DataScanJob was started. * @@ -86,6 +92,8 @@ class DataScanJob extends \Google\Protobuf\Internal\Message * Output only. System generated globally unique ID for the DataScanJob. * @type \Google\Protobuf\Timestamp $create_time * Output only. The time when the DataScanJob was created. + * @type string $partial_failure_message + * Output only. A message indicating partial failure details. * @type \Google\Protobuf\Timestamp $start_time * Output only. The time when the DataScanJob was started. * @type \Google\Protobuf\Timestamp $end_time @@ -215,6 +223,32 @@ public function setCreateTime($var) return $this; } + /** + * Output only. A message indicating partial failure details. + * + * Generated from protobuf field string partial_failure_message = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getPartialFailureMessage() + { + return $this->partial_failure_message; + } + + /** + * Output only. A message indicating partial failure details. + * + * Generated from protobuf field string partial_failure_message = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setPartialFailureMessage($var) + { + GPBUtil::checkString($var, True); + $this->partial_failure_message = $var; + + return $this; + } + /** * Output only. The time when the DataScanJob was started. * diff --git a/Dataplex/src/V1/DataScanJob/State.php b/Dataplex/src/V1/DataScanJob/State.php index 2709a4d239fa..5f79ddc321e2 100644 --- a/Dataplex/src/V1/DataScanJob/State.php +++ b/Dataplex/src/V1/DataScanJob/State.php @@ -55,6 +55,12 @@ class State * Generated from protobuf enum PENDING = 7; */ const PENDING = 7; + /** + * The DataScanJob succeeded with errors. + * + * Generated from protobuf enum SUCCEEDED_WITH_ERRORS = 8; + */ + const SUCCEEDED_WITH_ERRORS = 8; private static $valueToName = [ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED', @@ -64,6 +70,7 @@ class State self::SUCCEEDED => 'SUCCEEDED', self::FAILED => 'FAILED', self::PENDING => 'PENDING', + self::SUCCEEDED_WITH_ERRORS => 'SUCCEEDED_WITH_ERRORS', ]; public static function name($value) diff --git a/Dataplex/src/V1/DataSource.php b/Dataplex/src/V1/DataSource.php index a6def1dea490..38e25bb9c433 100644 --- a/Dataplex/src/V1/DataSource.php +++ b/Dataplex/src/V1/DataSource.php @@ -34,8 +34,13 @@ class DataSource extends \Google\Protobuf\Internal\Message * //storage.googleapis.com/projects/PROJECT_ID/buckets/BUCKET_ID * or * BigQuery table of type "TABLE" for - * DataProfileScan/DataQualityScan/DataDocumentationScan Format: + * DataProfileScan/DataQualityScan/DataDocumentationScan + * Format: * //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID + * or + * BigQuery dataset for DataDocumentationScan only + * Format: + * //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID * } */ public function __construct($data = NULL) { @@ -85,8 +90,13 @@ public function setEntity($var) * //storage.googleapis.com/projects/PROJECT_ID/buckets/BUCKET_ID * or * BigQuery table of type "TABLE" for - * DataProfileScan/DataQualityScan/DataDocumentationScan Format: + * DataProfileScan/DataQualityScan/DataDocumentationScan + * Format: * //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID + * or + * BigQuery dataset for DataDocumentationScan only + * Format: + * //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID * * Generated from protobuf field string resource = 101 [(.google.api.field_behavior) = IMMUTABLE]; * @return string @@ -108,8 +118,13 @@ public function hasResource() * //storage.googleapis.com/projects/PROJECT_ID/buckets/BUCKET_ID * or * BigQuery table of type "TABLE" for - * DataProfileScan/DataQualityScan/DataDocumentationScan Format: + * DataProfileScan/DataQualityScan/DataDocumentationScan + * Format: * //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID + * or + * BigQuery dataset for DataDocumentationScan only + * Format: + * //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID * * Generated from protobuf field string resource = 101 [(.google.api.field_behavior) = IMMUTABLE]; * @param string $var diff --git a/Dataplex/src/V1/ExecutionIdentity.php b/Dataplex/src/V1/ExecutionIdentity.php new file mode 100644 index 000000000000..02f5c114a548 --- /dev/null +++ b/Dataplex/src/V1/ExecutionIdentity.php @@ -0,0 +1,144 @@ +google.cloud.dataplex.v1.ExecutionIdentity + */ +class ExecutionIdentity extends \Google\Protobuf\Internal\Message +{ + protected $identity; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dataplex\V1\ExecutionIdentity\DataplexServiceAgent $dataplex_service_agent + * Optional. The Dataplex service agent associated with the user's project. + * @type \Google\Cloud\Dataplex\V1\ExecutionIdentity\UserCredential $user_credential + * Optional. The credential of the calling user. Supports only ONE_TIME + * trigger type. + * @type \Google\Cloud\Dataplex\V1\ExecutionIdentity\ServiceAccount $service_account + * Optional. The provided service account. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\Datascans::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The Dataplex service agent associated with the user's project. + * + * Generated from protobuf field .google.cloud.dataplex.v1.ExecutionIdentity.DataplexServiceAgent dataplex_service_agent = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dataplex\V1\ExecutionIdentity\DataplexServiceAgent|null + */ + public function getDataplexServiceAgent() + { + return $this->readOneof(1); + } + + public function hasDataplexServiceAgent() + { + return $this->hasOneof(1); + } + + /** + * Optional. The Dataplex service agent associated with the user's project. + * + * Generated from protobuf field .google.cloud.dataplex.v1.ExecutionIdentity.DataplexServiceAgent dataplex_service_agent = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dataplex\V1\ExecutionIdentity\DataplexServiceAgent $var + * @return $this + */ + public function setDataplexServiceAgent($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\ExecutionIdentity\DataplexServiceAgent::class); + $this->writeOneof(1, $var); + + return $this; + } + + /** + * Optional. The credential of the calling user. Supports only ONE_TIME + * trigger type. + * + * Generated from protobuf field .google.cloud.dataplex.v1.ExecutionIdentity.UserCredential user_credential = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dataplex\V1\ExecutionIdentity\UserCredential|null + */ + public function getUserCredential() + { + return $this->readOneof(2); + } + + public function hasUserCredential() + { + return $this->hasOneof(2); + } + + /** + * Optional. The credential of the calling user. Supports only ONE_TIME + * trigger type. + * + * Generated from protobuf field .google.cloud.dataplex.v1.ExecutionIdentity.UserCredential user_credential = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dataplex\V1\ExecutionIdentity\UserCredential $var + * @return $this + */ + public function setUserCredential($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\ExecutionIdentity\UserCredential::class); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * Optional. The provided service account. + * + * Generated from protobuf field .google.cloud.dataplex.v1.ExecutionIdentity.ServiceAccount service_account = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dataplex\V1\ExecutionIdentity\ServiceAccount|null + */ + public function getServiceAccount() + { + return $this->readOneof(3); + } + + public function hasServiceAccount() + { + return $this->hasOneof(3); + } + + /** + * Optional. The provided service account. + * + * Generated from protobuf field .google.cloud.dataplex.v1.ExecutionIdentity.ServiceAccount service_account = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dataplex\V1\ExecutionIdentity\ServiceAccount $var + * @return $this + */ + public function setServiceAccount($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\ExecutionIdentity\ServiceAccount::class); + $this->writeOneof(3, $var); + + return $this; + } + + /** + * @return string + */ + public function getIdentity() + { + return $this->whichOneof("identity"); + } + +} + diff --git a/Dataplex/src/V1/ExecutionIdentity/DataplexServiceAgent.php b/Dataplex/src/V1/ExecutionIdentity/DataplexServiceAgent.php new file mode 100644 index 000000000000..3acec9b3ed4b --- /dev/null +++ b/Dataplex/src/V1/ExecutionIdentity/DataplexServiceAgent.php @@ -0,0 +1,33 @@ +google.cloud.dataplex.v1.ExecutionIdentity.DataplexServiceAgent + */ +class DataplexServiceAgent extends \Google\Protobuf\Internal\Message +{ + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\Datascans::initOnce(); + parent::__construct($data); + } + +} + diff --git a/Dataplex/src/V1/ExecutionIdentity/ServiceAccount.php b/Dataplex/src/V1/ExecutionIdentity/ServiceAccount.php new file mode 100644 index 000000000000..fd0af2eafa19 --- /dev/null +++ b/Dataplex/src/V1/ExecutionIdentity/ServiceAccount.php @@ -0,0 +1,83 @@ +google.cloud.dataplex.v1.ExecutionIdentity.ServiceAccount + */ +class ServiceAccount extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Service account email. The datascan will execute with this + * service account's credentials. The user calling this API must have + * permissions to act as this service account. Dataplex service agent must + * be granted iam.serviceAccounts.getAccessToken permission on this service + * account, for example, through the iam.serviceAccountTokenCreator role . + * + * Generated from protobuf field string email = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $email = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $email + * Required. Service account email. The datascan will execute with this + * service account's credentials. The user calling this API must have + * permissions to act as this service account. Dataplex service agent must + * be granted iam.serviceAccounts.getAccessToken permission on this service + * account, for example, through the iam.serviceAccountTokenCreator role . + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\Datascans::initOnce(); + parent::__construct($data); + } + + /** + * Required. Service account email. The datascan will execute with this + * service account's credentials. The user calling this API must have + * permissions to act as this service account. Dataplex service agent must + * be granted iam.serviceAccounts.getAccessToken permission on this service + * account, for example, through the iam.serviceAccountTokenCreator role . + * + * Generated from protobuf field string email = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getEmail() + { + return $this->email; + } + + /** + * Required. Service account email. The datascan will execute with this + * service account's credentials. The user calling this API must have + * permissions to act as this service account. Dataplex service agent must + * be granted iam.serviceAccounts.getAccessToken permission on this service + * account, for example, through the iam.serviceAccountTokenCreator role . + * + * Generated from protobuf field string email = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setEmail($var) + { + GPBUtil::checkString($var, True); + $this->email = $var; + + return $this; + } + +} + diff --git a/Dataplex/src/V1/ExecutionIdentity/UserCredential.php b/Dataplex/src/V1/ExecutionIdentity/UserCredential.php new file mode 100644 index 000000000000..8efb59845cb0 --- /dev/null +++ b/Dataplex/src/V1/ExecutionIdentity/UserCredential.php @@ -0,0 +1,33 @@ +google.cloud.dataplex.v1.ExecutionIdentity.UserCredential + */ +class UserCredential extends \Google\Protobuf\Internal\Message +{ + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\Datascans::initOnce(); + parent::__construct($data); + } + +} + diff --git a/Dataplex/src/V1/GetEntryRequest.php b/Dataplex/src/V1/GetEntryRequest.php index e4099479ce1f..425cfc062f0b 100644 --- a/Dataplex/src/V1/GetEntryRequest.php +++ b/Dataplex/src/V1/GetEntryRequest.php @@ -25,6 +25,9 @@ class GetEntryRequest extends \Google\Protobuf\Internal\Message /** * Optional. View to control which parts of an entry the service should * return. + * **Please check the limitations on returned aspects in the Entry view + * documentation. Amount of returned aspects depends on the selected Entry + * View.** * * Generated from protobuf field .google.cloud.dataplex.v1.EntryView view = 2 [(.google.api.field_behavior) = OPTIONAL]; */ @@ -71,6 +74,9 @@ public static function build(string $name): self * @type int $view * Optional. View to control which parts of an entry the service should * return. + * **Please check the limitations on returned aspects in the Entry view + * documentation. Amount of returned aspects depends on the selected Entry + * View.** * @type string[] $aspect_types * Optional. Limits the aspects returned to the provided aspect types. * It only works for CUSTOM view. @@ -115,6 +121,9 @@ public function setName($var) /** * Optional. View to control which parts of an entry the service should * return. + * **Please check the limitations on returned aspects in the Entry view + * documentation. Amount of returned aspects depends on the selected Entry + * View.** * * Generated from protobuf field .google.cloud.dataplex.v1.EntryView view = 2 [(.google.api.field_behavior) = OPTIONAL]; * @return int @@ -127,6 +136,9 @@ public function getView() /** * Optional. View to control which parts of an entry the service should * return. + * **Please check the limitations on returned aspects in the Entry view + * documentation. Amount of returned aspects depends on the selected Entry + * View.** * * Generated from protobuf field .google.cloud.dataplex.v1.EntryView view = 2 [(.google.api.field_behavior) = OPTIONAL]; * @param int $var diff --git a/Dataplex/src/V1/LookupContextRequest.php b/Dataplex/src/V1/LookupContextRequest.php index fad3ee9c0fed..aad7968a1d54 100644 --- a/Dataplex/src/V1/LookupContextRequest.php +++ b/Dataplex/src/V1/LookupContextRequest.php @@ -23,16 +23,29 @@ class LookupContextRequest extends \Google\Protobuf\Internal\Message */ protected $name = ''; /** - * Required. The entry names to lookup context for. The request should have - * max 10 of those. + * Required. The entry names to look up the context for. The maximum number of + * resources for a request is limited to 10. * ## Examples: - * projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry} + * `projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}` * * Generated from protobuf field repeated string resources = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { */ private $resources; + /** + * Optional. The text representing contextual information for which metadata + * context is being requested. + * + * Generated from protobuf field string context = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $context = ''; /** * Optional. Allows to configure the context. + * Supported options: + * - `format` - The format of the context (one of `yaml`, + * `xml`, `json`, default is `yaml`). + * - `context_budget` - If provided, the output will be intelligently + * truncated on a best-effort basis to contain approximately the desired + * amount of characters. There is no guarantee to achieve the specific amount. * * Generated from protobuf field map options = 4 [(.google.api.field_behavior) = OPTIONAL]; */ @@ -48,12 +61,21 @@ class LookupContextRequest extends \Google\Protobuf\Internal\Message * Required. The project to which the request should be attributed in the * following form: `projects/{project}/locations/{location}`. * @type string[] $resources - * Required. The entry names to lookup context for. The request should have - * max 10 of those. + * Required. The entry names to look up the context for. The maximum number of + * resources for a request is limited to 10. * ## Examples: - * projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry} + * `projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}` + * @type string $context + * Optional. The text representing contextual information for which metadata + * context is being requested. * @type array|\Google\Protobuf\Internal\MapField $options * Optional. Allows to configure the context. + * Supported options: + * - `format` - The format of the context (one of `yaml`, + * `xml`, `json`, default is `yaml`). + * - `context_budget` - If provided, the output will be intelligently + * truncated on a best-effort basis to contain approximately the desired + * amount of characters. There is no guarantee to achieve the specific amount. * } */ public function __construct($data = NULL) { @@ -90,10 +112,10 @@ public function setName($var) } /** - * Required. The entry names to lookup context for. The request should have - * max 10 of those. + * Required. The entry names to look up the context for. The maximum number of + * resources for a request is limited to 10. * ## Examples: - * projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry} + * `projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}` * * Generated from protobuf field repeated string resources = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { * @return RepeatedField @@ -104,10 +126,10 @@ public function getResources() } /** - * Required. The entry names to lookup context for. The request should have - * max 10 of those. + * Required. The entry names to look up the context for. The maximum number of + * resources for a request is limited to 10. * ## Examples: - * projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry} + * `projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}` * * Generated from protobuf field repeated string resources = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { * @param string[] $var @@ -121,8 +143,42 @@ public function setResources($var) return $this; } + /** + * Optional. The text representing contextual information for which metadata + * context is being requested. + * + * Generated from protobuf field string context = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getContext() + { + return $this->context; + } + + /** + * Optional. The text representing contextual information for which metadata + * context is being requested. + * + * Generated from protobuf field string context = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setContext($var) + { + GPBUtil::checkString($var, True); + $this->context = $var; + + return $this; + } + /** * Optional. Allows to configure the context. + * Supported options: + * - `format` - The format of the context (one of `yaml`, + * `xml`, `json`, default is `yaml`). + * - `context_budget` - If provided, the output will be intelligently + * truncated on a best-effort basis to contain approximately the desired + * amount of characters. There is no guarantee to achieve the specific amount. * * Generated from protobuf field map options = 4 [(.google.api.field_behavior) = OPTIONAL]; * @return \Google\Protobuf\Internal\MapField @@ -134,6 +190,12 @@ public function getOptions() /** * Optional. Allows to configure the context. + * Supported options: + * - `format` - The format of the context (one of `yaml`, + * `xml`, `json`, default is `yaml`). + * - `context_budget` - If provided, the output will be intelligently + * truncated on a best-effort basis to contain approximately the desired + * amount of characters. There is no guarantee to achieve the specific amount. * * Generated from protobuf field map options = 4 [(.google.api.field_behavior) = OPTIONAL]; * @param array|\Google\Protobuf\Internal\MapField $var diff --git a/Dataplex/src/V1/LookupContextResponse.php b/Dataplex/src/V1/LookupContextResponse.php index 6edb7ca58100..8d292fb2d3b6 100644 --- a/Dataplex/src/V1/LookupContextResponse.php +++ b/Dataplex/src/V1/LookupContextResponse.php @@ -16,7 +16,8 @@ class LookupContextResponse extends \Google\Protobuf\Internal\Message { /** - * LLM generated context for the resources. + * Pre-formatted block of text containing the context for the requested + * resources. * * Generated from protobuf field string context = 1; */ @@ -29,7 +30,8 @@ class LookupContextResponse extends \Google\Protobuf\Internal\Message * Optional. Data for populating the Message object. * * @type string $context - * LLM generated context for the resources. + * Pre-formatted block of text containing the context for the requested + * resources. * } */ public function __construct($data = NULL) { @@ -38,7 +40,8 @@ public function __construct($data = NULL) { } /** - * LLM generated context for the resources. + * Pre-formatted block of text containing the context for the requested + * resources. * * Generated from protobuf field string context = 1; * @return string @@ -49,7 +52,8 @@ public function getContext() } /** - * LLM generated context for the resources. + * Pre-formatted block of text containing the context for the requested + * resources. * * Generated from protobuf field string context = 1; * @param string $var diff --git a/Dataplex/src/V1/LookupEntryRequest.php b/Dataplex/src/V1/LookupEntryRequest.php index 1fbba3f0f92a..34e44e82a6c1 100644 --- a/Dataplex/src/V1/LookupEntryRequest.php +++ b/Dataplex/src/V1/LookupEntryRequest.php @@ -25,6 +25,9 @@ class LookupEntryRequest extends \Google\Protobuf\Internal\Message /** * Optional. View to control which parts of an entry the service should * return. + * **Please check the limitations on returned aspects in the Entry view + * documentation. Amount of returned aspects depends on the selected Entry + * View.** * * Generated from protobuf field .google.cloud.dataplex.v1.EntryView view = 2 [(.google.api.field_behavior) = OPTIONAL]; */ @@ -63,6 +66,9 @@ class LookupEntryRequest extends \Google\Protobuf\Internal\Message * @type int $view * Optional. View to control which parts of an entry the service should * return. + * **Please check the limitations on returned aspects in the Entry view + * documentation. Amount of returned aspects depends on the selected Entry + * View.** * @type string[] $aspect_types * Optional. Limits the aspects returned to the provided aspect types. * It only works for CUSTOM view. @@ -110,6 +116,9 @@ public function setName($var) /** * Optional. View to control which parts of an entry the service should * return. + * **Please check the limitations on returned aspects in the Entry view + * documentation. Amount of returned aspects depends on the selected Entry + * View.** * * Generated from protobuf field .google.cloud.dataplex.v1.EntryView view = 2 [(.google.api.field_behavior) = OPTIONAL]; * @return int @@ -122,6 +131,9 @@ public function getView() /** * Optional. View to control which parts of an entry the service should * return. + * **Please check the limitations on returned aspects in the Entry view + * documentation. Amount of returned aspects depends on the selected Entry + * View.** * * Generated from protobuf field .google.cloud.dataplex.v1.EntryView view = 2 [(.google.api.field_behavior) = OPTIONAL]; * @param int $var diff --git a/Dataplex/src/V1/ModifyEntryRequest.php b/Dataplex/src/V1/ModifyEntryRequest.php new file mode 100644 index 000000000000..015927c9a6d1 --- /dev/null +++ b/Dataplex/src/V1/ModifyEntryRequest.php @@ -0,0 +1,299 @@ +google.cloud.dataplex.v1.ModifyEntryRequest + */ +class ModifyEntryRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project to which the request should be attributed in the + * following form: `projects/{project}/locations/{location}`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $name = ''; + /** + * Required. The entry to modify. + * + * Generated from protobuf field .google.cloud.dataplex.v1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $entry = null; + /** + * Optional. Mask of fields to update. To update Aspects, the update_mask must + * contain the value "aspects". + * If the update_mask is empty, the service will update all modifiable fields + * present in the request. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $update_mask = null; + /** + * Optional. If set to true, any aspects not specified in the request will be + * deleted. The default is false. + * + * Generated from protobuf field bool delete_missing_aspects = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $delete_missing_aspects = false; + /** + * Optional. The aspect keys which the service should modify. It supports + * the following syntaxes: + * * `` - matches an aspect of the given type and empty + * path. + * * `\@path` - matches an aspect of the given type and + * specified path. For example, to attach an aspect to a field that is + * specified by the `schema` aspect, the path should have the format + * `Schema.`. + * * `\@*` - matches aspects of the given type for all + * paths. + * * `*\@path` - matches aspects of all types on the given path. + * The service will not remove existing aspects matching the syntax unless + * `delete_missing_aspects` is set to true. + * If this field is left empty, the service treats it as specifying + * exactly those Aspects present in the request. + * + * Generated from protobuf field repeated string aspect_keys = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $aspect_keys; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The project to which the request should be attributed in the + * following form: `projects/{project}/locations/{location}`. + * @type \Google\Cloud\Dataplex\V1\Entry $entry + * Required. The entry to modify. + * @type \Google\Protobuf\FieldMask $update_mask + * Optional. Mask of fields to update. To update Aspects, the update_mask must + * contain the value "aspects". + * If the update_mask is empty, the service will update all modifiable fields + * present in the request. + * @type bool $delete_missing_aspects + * Optional. If set to true, any aspects not specified in the request will be + * deleted. The default is false. + * @type string[] $aspect_keys + * Optional. The aspect keys which the service should modify. It supports + * the following syntaxes: + * * `` - matches an aspect of the given type and empty + * path. + * * `\@path` - matches an aspect of the given type and + * specified path. For example, to attach an aspect to a field that is + * specified by the `schema` aspect, the path should have the format + * `Schema.`. + * * `\@*` - matches aspects of the given type for all + * paths. + * * `*\@path` - matches aspects of all types on the given path. + * The service will not remove existing aspects matching the syntax unless + * `delete_missing_aspects` is set to true. + * If this field is left empty, the service treats it as specifying + * exactly those Aspects present in the request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\Catalog::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project to which the request should be attributed in the + * following form: `projects/{project}/locations/{location}`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The project to which the request should be attributed in the + * following form: `projects/{project}/locations/{location}`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Required. The entry to modify. + * + * Generated from protobuf field .google.cloud.dataplex.v1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dataplex\V1\Entry|null + */ + public function getEntry() + { + return $this->entry; + } + + public function hasEntry() + { + return isset($this->entry); + } + + public function clearEntry() + { + unset($this->entry); + } + + /** + * Required. The entry to modify. + * + * Generated from protobuf field .google.cloud.dataplex.v1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dataplex\V1\Entry $var + * @return $this + */ + public function setEntry($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\Entry::class); + $this->entry = $var; + + return $this; + } + + /** + * Optional. Mask of fields to update. To update Aspects, the update_mask must + * contain the value "aspects". + * If the update_mask is empty, the service will update all modifiable fields + * present in the request. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\FieldMask|null + */ + public function getUpdateMask() + { + return $this->update_mask; + } + + public function hasUpdateMask() + { + return isset($this->update_mask); + } + + public function clearUpdateMask() + { + unset($this->update_mask); + } + + /** + * Optional. Mask of fields to update. To update Aspects, the update_mask must + * contain the value "aspects". + * If the update_mask is empty, the service will update all modifiable fields + * present in the request. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setUpdateMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->update_mask = $var; + + return $this; + } + + /** + * Optional. If set to true, any aspects not specified in the request will be + * deleted. The default is false. + * + * Generated from protobuf field bool delete_missing_aspects = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getDeleteMissingAspects() + { + return $this->delete_missing_aspects; + } + + /** + * Optional. If set to true, any aspects not specified in the request will be + * deleted. The default is false. + * + * Generated from protobuf field bool delete_missing_aspects = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setDeleteMissingAspects($var) + { + GPBUtil::checkBool($var); + $this->delete_missing_aspects = $var; + + return $this; + } + + /** + * Optional. The aspect keys which the service should modify. It supports + * the following syntaxes: + * * `` - matches an aspect of the given type and empty + * path. + * * `\@path` - matches an aspect of the given type and + * specified path. For example, to attach an aspect to a field that is + * specified by the `schema` aspect, the path should have the format + * `Schema.`. + * * `\@*` - matches aspects of the given type for all + * paths. + * * `*\@path` - matches aspects of all types on the given path. + * The service will not remove existing aspects matching the syntax unless + * `delete_missing_aspects` is set to true. + * If this field is left empty, the service treats it as specifying + * exactly those Aspects present in the request. + * + * Generated from protobuf field repeated string aspect_keys = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return RepeatedField + */ + public function getAspectKeys() + { + return $this->aspect_keys; + } + + /** + * Optional. The aspect keys which the service should modify. It supports + * the following syntaxes: + * * `` - matches an aspect of the given type and empty + * path. + * * `\@path` - matches an aspect of the given type and + * specified path. For example, to attach an aspect to a field that is + * specified by the `schema` aspect, the path should have the format + * `Schema.`. + * * `\@*` - matches aspects of the given type for all + * paths. + * * `*\@path` - matches aspects of all types on the given path. + * The service will not remove existing aspects matching the syntax unless + * `delete_missing_aspects` is set to true. + * If this field is left empty, the service treats it as specifying + * exactly those Aspects present in the request. + * + * Generated from protobuf field repeated string aspect_keys = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param string[] $var + * @return $this + */ + public function setAspectKeys($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->aspect_keys = $arr; + + return $this; + } + +} + diff --git a/Dataplex/src/V1/RequestDataProductAccessRequest.php b/Dataplex/src/V1/RequestDataProductAccessRequest.php new file mode 100644 index 000000000000..195591139df8 --- /dev/null +++ b/Dataplex/src/V1/RequestDataProductAccessRequest.php @@ -0,0 +1,175 @@ +google.cloud.dataplex.v1.RequestDataProductAccessRequest + */ +class RequestDataProductAccessRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The resource name of the data product. + * Format: + * projects/{project_number}/locations/{location_id}/dataProducts/{data_product_id} + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The change request for the data product access request. + * + * Generated from protobuf field .google.cloud.dataplex.v1.ChangeRequest change_request = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $change_request = null; + /** + * Optional. Validates the request without actually creating the access change + * request. Defaults to false. + * + * Generated from protobuf field bool validate_only = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $validate_only = false; + + /** + * @param string $parent Required. The resource name of the data product. + * Format: + * projects/{project_number}/locations/{location_id}/dataProducts/{data_product_id} + * Please see {@see DataProductServiceClient::dataProductName()} for help formatting this field. + * @param \Google\Cloud\Dataplex\V1\ChangeRequest $changeRequest Required. The change request for the data product access request. + * + * @return \Google\Cloud\Dataplex\V1\RequestDataProductAccessRequest + * + * @experimental + */ + public static function build(string $parent, \Google\Cloud\Dataplex\V1\ChangeRequest $changeRequest): self + { + return (new self()) + ->setParent($parent) + ->setChangeRequest($changeRequest); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The resource name of the data product. + * Format: + * projects/{project_number}/locations/{location_id}/dataProducts/{data_product_id} + * @type \Google\Cloud\Dataplex\V1\ChangeRequest $change_request + * Required. The change request for the data product access request. + * @type bool $validate_only + * Optional. Validates the request without actually creating the access change + * request. Defaults to false. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\DataProducts::initOnce(); + parent::__construct($data); + } + + /** + * Required. The resource name of the data product. + * Format: + * projects/{project_number}/locations/{location_id}/dataProducts/{data_product_id} + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The resource name of the data product. + * Format: + * projects/{project_number}/locations/{location_id}/dataProducts/{data_product_id} + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The change request for the data product access request. + * + * Generated from protobuf field .google.cloud.dataplex.v1.ChangeRequest change_request = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dataplex\V1\ChangeRequest|null + */ + public function getChangeRequest() + { + return $this->change_request; + } + + public function hasChangeRequest() + { + return isset($this->change_request); + } + + public function clearChangeRequest() + { + unset($this->change_request); + } + + /** + * Required. The change request for the data product access request. + * + * Generated from protobuf field .google.cloud.dataplex.v1.ChangeRequest change_request = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dataplex\V1\ChangeRequest $var + * @return $this + */ + public function setChangeRequest($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dataplex\V1\ChangeRequest::class); + $this->change_request = $var; + + return $this; + } + + /** + * Optional. Validates the request without actually creating the access change + * request. Defaults to false. + * + * Generated from protobuf field bool validate_only = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getValidateOnly() + { + return $this->validate_only; + } + + /** + * Optional. Validates the request without actually creating the access change + * request. Defaults to false. + * + * Generated from protobuf field bool validate_only = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setValidateOnly($var) + { + GPBUtil::checkBool($var); + $this->validate_only = $var; + + return $this; + } + +} + diff --git a/Dataplex/src/V1/RequestDataProductAccessResponse.php b/Dataplex/src/V1/RequestDataProductAccessResponse.php new file mode 100644 index 000000000000..af9f4d7d8a79 --- /dev/null +++ b/Dataplex/src/V1/RequestDataProductAccessResponse.php @@ -0,0 +1,75 @@ +google.cloud.dataplex.v1.RequestDataProductAccessResponse + */ +class RequestDataProductAccessResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The resource name of the created ChangeRequest. + * Format: + * projects/{project_number}/locations/{location_id}/changeRequests/{change_request_id} + * + * Generated from protobuf field string change_request_name = 1 [(.google.api.resource_reference) = { + */ + protected $change_request_name = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $change_request_name + * The resource name of the created ChangeRequest. + * Format: + * projects/{project_number}/locations/{location_id}/changeRequests/{change_request_id} + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dataplex\V1\DataProducts::initOnce(); + parent::__construct($data); + } + + /** + * The resource name of the created ChangeRequest. + * Format: + * projects/{project_number}/locations/{location_id}/changeRequests/{change_request_id} + * + * Generated from protobuf field string change_request_name = 1 [(.google.api.resource_reference) = { + * @return string + */ + public function getChangeRequestName() + { + return $this->change_request_name; + } + + /** + * The resource name of the created ChangeRequest. + * Format: + * projects/{project_number}/locations/{location_id}/changeRequests/{change_request_id} + * + * Generated from protobuf field string change_request_name = 1 [(.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setChangeRequestName($var) + { + GPBUtil::checkString($var, True); + $this->change_request_name = $var; + + return $this; + } + +} + diff --git a/Dataplex/src/V1/gapic_metadata.json b/Dataplex/src/V1/gapic_metadata.json index 2bdcfb90f45e..fb49daf13f33 100644 --- a/Dataplex/src/V1/gapic_metadata.json +++ b/Dataplex/src/V1/gapic_metadata.json @@ -438,6 +438,11 @@ "lookupEntryLinks" ] }, + "ModifyEntry": { + "methods": [ + "modifyEntry" + ] + }, "SearchEntries": { "methods": [ "searchEntries" @@ -640,6 +645,11 @@ "listDataProducts" ] }, + "RequestDataProductAccess": { + "methods": [ + "requestDataProductAccess" + ] + }, "UpdateDataAsset": { "methods": [ "updateDataAsset" @@ -793,6 +803,11 @@ "grpc": { "libraryClient": "DataScanServiceGapicClient", "rpcs": { + "CancelDataScanJob": { + "methods": [ + "cancelDataScanJob" + ] + }, "CreateDataScan": { "methods": [ "createDataScan" diff --git a/Dataplex/src/V1/resources/business_glossary_service_rest_client_config.php b/Dataplex/src/V1/resources/business_glossary_service_rest_client_config.php index 96a57becffff..b4af8f0da8f0 100644 --- a/Dataplex/src/V1/resources/business_glossary_service_rest_client_config.php +++ b/Dataplex/src/V1/resources/business_glossary_service_rest_client_config.php @@ -257,10 +257,6 @@ 'method' => 'get', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:getIamPolicy', ], - [ - 'method' => 'get', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:getIamPolicy', - ], [ 'method' => 'get', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:getIamPolicy', @@ -321,6 +317,10 @@ 'method' => 'get', 'uriTemplate' => '/v1/{resource=organizations/*/locations/*/encryptionConfigs/*}:getIamPolicy', ], + [ + 'method' => 'get', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:getIamPolicy', + ], ], 'placeholders' => [ 'resource' => [ @@ -350,11 +350,6 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:setIamPolicy', 'body' => '*', ], - [ - 'method' => 'post', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:setIamPolicy', - 'body' => '*', - ], [ 'method' => 'post', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:setIamPolicy', @@ -430,6 +425,11 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataProducts/*}:setIamPolicy', 'body' => '*', ], + [ + 'method' => 'post', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:setIamPolicy', + 'body' => '*', + ], ], 'placeholders' => [ 'resource' => [ @@ -459,11 +459,6 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:testIamPermissions', 'body' => '*', ], - [ - 'method' => 'post', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:testIamPermissions', - 'body' => '*', - ], [ 'method' => 'post', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:testIamPermissions', @@ -539,6 +534,11 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataProducts/*}:testIamPermissions', 'body' => '*', ], + [ + 'method' => 'post', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:testIamPermissions', + 'body' => '*', + ], ], 'placeholders' => [ 'resource' => [ diff --git a/Dataplex/src/V1/resources/catalog_service_client_config.json b/Dataplex/src/V1/resources/catalog_service_client_config.json index bb323a0bb67f..4a3df73c84c8 100644 --- a/Dataplex/src/V1/resources/catalog_service_client_config.json +++ b/Dataplex/src/V1/resources/catalog_service_client_config.json @@ -97,8 +97,8 @@ }, "CreateEntryLink": { "timeout_millis": 60000, - "retry_codes_name": "no_retry_codes", - "retry_params_name": "no_retry_params" + "retry_codes_name": "no_retry_4_codes", + "retry_params_name": "no_retry_4_params" }, "CreateEntryType": { "timeout_millis": 60000, @@ -132,8 +132,8 @@ }, "DeleteEntryLink": { "timeout_millis": 60000, - "retry_codes_name": "no_retry_codes", - "retry_params_name": "no_retry_params" + "retry_codes_name": "no_retry_4_codes", + "retry_params_name": "no_retry_4_params" }, "DeleteEntryType": { "timeout_millis": 60000, @@ -161,9 +161,9 @@ "retry_params_name": "retry_policy_9_params" }, "GetEntryLink": { - "timeout_millis": 60000, - "retry_codes_name": "no_retry_codes", - "retry_params_name": "no_retry_params" + "timeout_millis": 20000, + "retry_codes_name": "retry_policy_7_codes", + "retry_params_name": "retry_policy_7_params" }, "GetEntryType": { "timeout_millis": 60000, @@ -221,6 +221,11 @@ "retry_params_name": "retry_policy_7_params" }, "LookupEntryLinks": { + "timeout_millis": 20000, + "retry_codes_name": "retry_policy_7_codes", + "retry_params_name": "retry_policy_7_params" + }, + "ModifyEntry": { "timeout_millis": 60000, "retry_codes_name": "no_retry_codes", "retry_params_name": "no_retry_params" @@ -247,8 +252,8 @@ }, "UpdateEntryLink": { "timeout_millis": 60000, - "retry_codes_name": "no_retry_codes", - "retry_params_name": "no_retry_params" + "retry_codes_name": "retry_policy_8_codes", + "retry_params_name": "retry_policy_8_params" }, "UpdateEntryType": { "timeout_millis": 60000, diff --git a/Dataplex/src/V1/resources/catalog_service_descriptor_config.php b/Dataplex/src/V1/resources/catalog_service_descriptor_config.php index 5e3abfad63e8..cb51ee721ce0 100644 --- a/Dataplex/src/V1/resources/catalog_service_descriptor_config.php +++ b/Dataplex/src/V1/resources/catalog_service_descriptor_config.php @@ -582,6 +582,18 @@ ], ], ], + 'ModifyEntry' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dataplex\V1\Entry', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], 'SearchEntries' => [ 'pageStreaming' => [ 'requestPageTokenGetMethod' => 'getPageToken', diff --git a/Dataplex/src/V1/resources/catalog_service_rest_client_config.php b/Dataplex/src/V1/resources/catalog_service_rest_client_config.php index 5129dca486b5..6bad68b73f4b 100644 --- a/Dataplex/src/V1/resources/catalog_service_rest_client_config.php +++ b/Dataplex/src/V1/resources/catalog_service_rest_client_config.php @@ -377,6 +377,18 @@ ], ], ], + 'ModifyEntry' => [ + 'method' => 'post', + 'uriTemplate' => '/v1/{name=projects/*/locations/*}:modifyEntry', + 'body' => '*', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], 'SearchEntries' => [ 'method' => 'post', 'uriTemplate' => '/v1/{name=projects/*/locations/*}:searchEntries', @@ -517,10 +529,6 @@ 'method' => 'get', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:getIamPolicy', ], - [ - 'method' => 'get', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:getIamPolicy', - ], [ 'method' => 'get', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:getIamPolicy', @@ -581,6 +589,10 @@ 'method' => 'get', 'uriTemplate' => '/v1/{resource=organizations/*/locations/*/encryptionConfigs/*}:getIamPolicy', ], + [ + 'method' => 'get', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:getIamPolicy', + ], ], 'placeholders' => [ 'resource' => [ @@ -610,11 +622,6 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:setIamPolicy', 'body' => '*', ], - [ - 'method' => 'post', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:setIamPolicy', - 'body' => '*', - ], [ 'method' => 'post', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:setIamPolicy', @@ -690,6 +697,11 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataProducts/*}:setIamPolicy', 'body' => '*', ], + [ + 'method' => 'post', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:setIamPolicy', + 'body' => '*', + ], ], 'placeholders' => [ 'resource' => [ @@ -719,11 +731,6 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:testIamPermissions', 'body' => '*', ], - [ - 'method' => 'post', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:testIamPermissions', - 'body' => '*', - ], [ 'method' => 'post', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:testIamPermissions', @@ -799,6 +806,11 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataProducts/*}:testIamPermissions', 'body' => '*', ], + [ + 'method' => 'post', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:testIamPermissions', + 'body' => '*', + ], ], 'placeholders' => [ 'resource' => [ diff --git a/Dataplex/src/V1/resources/cmek_service_rest_client_config.php b/Dataplex/src/V1/resources/cmek_service_rest_client_config.php index 8397272482de..92929f11e178 100644 --- a/Dataplex/src/V1/resources/cmek_service_rest_client_config.php +++ b/Dataplex/src/V1/resources/cmek_service_rest_client_config.php @@ -126,10 +126,6 @@ 'method' => 'get', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:getIamPolicy', ], - [ - 'method' => 'get', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:getIamPolicy', - ], [ 'method' => 'get', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:getIamPolicy', @@ -190,6 +186,10 @@ 'method' => 'get', 'uriTemplate' => '/v1/{resource=organizations/*/locations/*/encryptionConfigs/*}:getIamPolicy', ], + [ + 'method' => 'get', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:getIamPolicy', + ], ], 'placeholders' => [ 'resource' => [ @@ -219,11 +219,6 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:setIamPolicy', 'body' => '*', ], - [ - 'method' => 'post', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:setIamPolicy', - 'body' => '*', - ], [ 'method' => 'post', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:setIamPolicy', @@ -299,6 +294,11 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataProducts/*}:setIamPolicy', 'body' => '*', ], + [ + 'method' => 'post', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:setIamPolicy', + 'body' => '*', + ], ], 'placeholders' => [ 'resource' => [ @@ -328,11 +328,6 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:testIamPermissions', 'body' => '*', ], - [ - 'method' => 'post', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:testIamPermissions', - 'body' => '*', - ], [ 'method' => 'post', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:testIamPermissions', @@ -408,6 +403,11 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataProducts/*}:testIamPermissions', 'body' => '*', ], + [ + 'method' => 'post', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:testIamPermissions', + 'body' => '*', + ], ], 'placeholders' => [ 'resource' => [ diff --git a/Dataplex/src/V1/resources/content_service_rest_client_config.php b/Dataplex/src/V1/resources/content_service_rest_client_config.php index 7a036781f50f..159c091da02d 100644 --- a/Dataplex/src/V1/resources/content_service_rest_client_config.php +++ b/Dataplex/src/V1/resources/content_service_rest_client_config.php @@ -63,10 +63,6 @@ 'method' => 'get', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:getIamPolicy', ], - [ - 'method' => 'get', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:getIamPolicy', - ], [ 'method' => 'get', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:getIamPolicy', @@ -127,6 +123,10 @@ 'method' => 'get', 'uriTemplate' => '/v1/{resource=organizations/*/locations/*/encryptionConfigs/*}:getIamPolicy', ], + [ + 'method' => 'get', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:getIamPolicy', + ], ], 'placeholders' => [ 'resource' => [ @@ -156,11 +156,6 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:setIamPolicy', 'body' => '*', ], - [ - 'method' => 'post', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:setIamPolicy', - 'body' => '*', - ], [ 'method' => 'post', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:setIamPolicy', @@ -236,6 +231,11 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataProducts/*}:setIamPolicy', 'body' => '*', ], + [ + 'method' => 'post', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:setIamPolicy', + 'body' => '*', + ], ], 'placeholders' => [ 'resource' => [ @@ -265,11 +265,6 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:testIamPermissions', 'body' => '*', ], - [ - 'method' => 'post', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:testIamPermissions', - 'body' => '*', - ], [ 'method' => 'post', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:testIamPermissions', @@ -345,6 +340,11 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataProducts/*}:testIamPermissions', 'body' => '*', ], + [ + 'method' => 'post', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:testIamPermissions', + 'body' => '*', + ], ], 'placeholders' => [ 'resource' => [ diff --git a/Dataplex/src/V1/resources/data_product_service_client_config.json b/Dataplex/src/V1/resources/data_product_service_client_config.json index 8337b1ae330a..f160b2345b6c 100644 --- a/Dataplex/src/V1/resources/data_product_service_client_config.json +++ b/Dataplex/src/V1/resources/data_product_service_client_config.json @@ -56,6 +56,11 @@ "retry_codes_name": "no_retry_codes", "retry_params_name": "no_retry_params" }, + "RequestDataProductAccess": { + "timeout_millis": 60000, + "retry_codes_name": "no_retry_codes", + "retry_params_name": "no_retry_params" + }, "UpdateDataAsset": { "timeout_millis": 60000, "retry_codes_name": "no_retry_codes", diff --git a/Dataplex/src/V1/resources/data_product_service_descriptor_config.php b/Dataplex/src/V1/resources/data_product_service_descriptor_config.php index a9ac24f0d32c..5c49c5557a20 100644 --- a/Dataplex/src/V1/resources/data_product_service_descriptor_config.php +++ b/Dataplex/src/V1/resources/data_product_service_descriptor_config.php @@ -203,6 +203,18 @@ ], ], ], + 'RequestDataProductAccess' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dataplex\V1\RequestDataProductAccessResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], 'GetLocation' => [ 'callType' => \Google\ApiCore\Call::UNARY_CALL, 'responseType' => 'Google\Cloud\Location\Location', @@ -277,8 +289,15 @@ 'interfaceOverride' => 'google.iam.v1.IAMPolicy', ], 'templateMap' => [ + 'changeRequest' => 'projects/{project}/locations/{location}/changeRequests/{change_request}', 'dataAsset' => 'projects/{project}/locations/{location}/dataProducts/{data_product}/dataAssets/{data_asset}', 'dataProduct' => 'projects/{project}/locations/{location}/dataProducts/{data_product}', + 'entry' => 'projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}', + 'entryGroup' => 'projects/{project}/locations/{location}/entryGroups/{entry_group}', + 'entryLink' => 'projects/{project}/locations/{location}/entryGroups/{entry_group}/entryLinks/{entry_link}', + 'glossary' => 'projects/{project}/locations/{location}/glossaries/{glossary}', + 'glossaryCategory' => 'projects/{project}/locations/{location}/glossaries/{glossary}/categories/{glossary_category}', + 'glossaryTerm' => 'projects/{project}/locations/{location}/glossaries/{glossary}/terms/{glossary_term}', 'location' => 'projects/{project}/locations/{location}', ], ], diff --git a/Dataplex/src/V1/resources/data_product_service_rest_client_config.php b/Dataplex/src/V1/resources/data_product_service_rest_client_config.php index 322310fe1c60..ddc88c1c8330 100644 --- a/Dataplex/src/V1/resources/data_product_service_rest_client_config.php +++ b/Dataplex/src/V1/resources/data_product_service_rest_client_config.php @@ -113,6 +113,18 @@ ], ], ], + 'RequestDataProductAccess' => [ + 'method' => 'post', + 'uriTemplate' => '/v1/{parent=projects/*/locations/*/dataProducts/*}:requestAccess', + 'body' => '*', + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], 'UpdateDataAsset' => [ 'method' => 'patch', 'uriTemplate' => '/v1/{data_asset.name=projects/*/locations/*/dataProducts/*/dataAssets/*}', @@ -181,10 +193,6 @@ 'method' => 'get', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:getIamPolicy', ], - [ - 'method' => 'get', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:getIamPolicy', - ], [ 'method' => 'get', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:getIamPolicy', @@ -245,6 +253,10 @@ 'method' => 'get', 'uriTemplate' => '/v1/{resource=organizations/*/locations/*/encryptionConfigs/*}:getIamPolicy', ], + [ + 'method' => 'get', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:getIamPolicy', + ], ], 'placeholders' => [ 'resource' => [ @@ -274,11 +286,6 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:setIamPolicy', 'body' => '*', ], - [ - 'method' => 'post', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:setIamPolicy', - 'body' => '*', - ], [ 'method' => 'post', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:setIamPolicy', @@ -354,6 +361,11 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataProducts/*}:setIamPolicy', 'body' => '*', ], + [ + 'method' => 'post', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:setIamPolicy', + 'body' => '*', + ], ], 'placeholders' => [ 'resource' => [ @@ -383,11 +395,6 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:testIamPermissions', 'body' => '*', ], - [ - 'method' => 'post', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:testIamPermissions', - 'body' => '*', - ], [ 'method' => 'post', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:testIamPermissions', @@ -463,6 +470,11 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataProducts/*}:testIamPermissions', 'body' => '*', ], + [ + 'method' => 'post', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:testIamPermissions', + 'body' => '*', + ], ], 'placeholders' => [ 'resource' => [ diff --git a/Dataplex/src/V1/resources/data_scan_service_client_config.json b/Dataplex/src/V1/resources/data_scan_service_client_config.json index 270ba2b2b0ee..405f258d4ce6 100644 --- a/Dataplex/src/V1/resources/data_scan_service_client_config.json +++ b/Dataplex/src/V1/resources/data_scan_service_client_config.json @@ -16,6 +16,11 @@ } }, "methods": { + "CancelDataScanJob": { + "timeout_millis": 60000, + "retry_codes_name": "no_retry_codes", + "retry_params_name": "no_retry_params" + }, "CreateDataScan": { "timeout_millis": 60000, "retry_codes_name": "no_retry_codes", diff --git a/Dataplex/src/V1/resources/data_scan_service_descriptor_config.php b/Dataplex/src/V1/resources/data_scan_service_descriptor_config.php index 1607f45f33c5..fba6acfda371 100644 --- a/Dataplex/src/V1/resources/data_scan_service_descriptor_config.php +++ b/Dataplex/src/V1/resources/data_scan_service_descriptor_config.php @@ -81,6 +81,18 @@ ], ], ], + 'CancelDataScanJob' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dataplex\V1\CancelDataScanJobResponse', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], 'GenerateDataQualityRules' => [ 'callType' => \Google\ApiCore\Call::UNARY_CALL, 'responseType' => 'Google\Cloud\Dataplex\V1\GenerateDataQualityRulesResponse', @@ -248,6 +260,7 @@ 'dataScanJob' => 'projects/{project}/locations/{location}/dataScans/{dataScan}/jobs/{job}', 'dataset' => 'projects/{project}/datasets/{dataset}', 'entity' => 'projects/{project}/locations/{location}/lakes/{lake}/zones/{zone}/entities/{entity}', + 'entry' => 'projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}', 'location' => 'projects/{project}/locations/{location}', 'project' => 'projects/{project}', ], diff --git a/Dataplex/src/V1/resources/data_scan_service_rest_client_config.php b/Dataplex/src/V1/resources/data_scan_service_rest_client_config.php index 480471fbb267..3314387a5a45 100644 --- a/Dataplex/src/V1/resources/data_scan_service_rest_client_config.php +++ b/Dataplex/src/V1/resources/data_scan_service_rest_client_config.php @@ -23,6 +23,18 @@ return [ 'interfaces' => [ 'google.cloud.dataplex.v1.DataScanService' => [ + 'CancelDataScanJob' => [ + 'method' => 'post', + 'uriTemplate' => '/v1/{name=projects/*/locations/*/dataScans/*/jobs/*}:cancel', + 'body' => '*', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], 'CreateDataScan' => [ 'method' => 'post', 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/dataScans', @@ -34,9 +46,6 @@ ], ], ], - 'queryParams' => [ - 'data_scan_id', - ], ], 'DeleteDataScan' => [ 'method' => 'delete', @@ -179,10 +188,6 @@ 'method' => 'get', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:getIamPolicy', ], - [ - 'method' => 'get', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:getIamPolicy', - ], [ 'method' => 'get', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:getIamPolicy', @@ -243,6 +248,10 @@ 'method' => 'get', 'uriTemplate' => '/v1/{resource=organizations/*/locations/*/encryptionConfigs/*}:getIamPolicy', ], + [ + 'method' => 'get', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:getIamPolicy', + ], ], 'placeholders' => [ 'resource' => [ @@ -272,11 +281,6 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:setIamPolicy', 'body' => '*', ], - [ - 'method' => 'post', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:setIamPolicy', - 'body' => '*', - ], [ 'method' => 'post', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:setIamPolicy', @@ -352,6 +356,11 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataProducts/*}:setIamPolicy', 'body' => '*', ], + [ + 'method' => 'post', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:setIamPolicy', + 'body' => '*', + ], ], 'placeholders' => [ 'resource' => [ @@ -381,11 +390,6 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:testIamPermissions', 'body' => '*', ], - [ - 'method' => 'post', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:testIamPermissions', - 'body' => '*', - ], [ 'method' => 'post', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:testIamPermissions', @@ -461,6 +465,11 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataProducts/*}:testIamPermissions', 'body' => '*', ], + [ + 'method' => 'post', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:testIamPermissions', + 'body' => '*', + ], ], 'placeholders' => [ 'resource' => [ diff --git a/Dataplex/src/V1/resources/data_taxonomy_service_rest_client_config.php b/Dataplex/src/V1/resources/data_taxonomy_service_rest_client_config.php index bd73f6bcc608..57ea87f5b17d 100644 --- a/Dataplex/src/V1/resources/data_taxonomy_service_rest_client_config.php +++ b/Dataplex/src/V1/resources/data_taxonomy_service_rest_client_config.php @@ -260,10 +260,6 @@ 'method' => 'get', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:getIamPolicy', ], - [ - 'method' => 'get', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:getIamPolicy', - ], [ 'method' => 'get', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:getIamPolicy', @@ -324,6 +320,10 @@ 'method' => 'get', 'uriTemplate' => '/v1/{resource=organizations/*/locations/*/encryptionConfigs/*}:getIamPolicy', ], + [ + 'method' => 'get', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:getIamPolicy', + ], ], 'placeholders' => [ 'resource' => [ @@ -353,11 +353,6 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:setIamPolicy', 'body' => '*', ], - [ - 'method' => 'post', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:setIamPolicy', - 'body' => '*', - ], [ 'method' => 'post', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:setIamPolicy', @@ -433,6 +428,11 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataProducts/*}:setIamPolicy', 'body' => '*', ], + [ + 'method' => 'post', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:setIamPolicy', + 'body' => '*', + ], ], 'placeholders' => [ 'resource' => [ @@ -462,11 +462,6 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:testIamPermissions', 'body' => '*', ], - [ - 'method' => 'post', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:testIamPermissions', - 'body' => '*', - ], [ 'method' => 'post', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:testIamPermissions', @@ -542,6 +537,11 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataProducts/*}:testIamPermissions', 'body' => '*', ], + [ + 'method' => 'post', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:testIamPermissions', + 'body' => '*', + ], ], 'placeholders' => [ 'resource' => [ diff --git a/Dataplex/src/V1/resources/dataplex_service_rest_client_config.php b/Dataplex/src/V1/resources/dataplex_service_rest_client_config.php index a6695c5d366a..49c1eabad1ce 100644 --- a/Dataplex/src/V1/resources/dataplex_service_rest_client_config.php +++ b/Dataplex/src/V1/resources/dataplex_service_rest_client_config.php @@ -400,10 +400,6 @@ 'method' => 'get', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:getIamPolicy', ], - [ - 'method' => 'get', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:getIamPolicy', - ], [ 'method' => 'get', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:getIamPolicy', @@ -464,6 +460,10 @@ 'method' => 'get', 'uriTemplate' => '/v1/{resource=organizations/*/locations/*/encryptionConfigs/*}:getIamPolicy', ], + [ + 'method' => 'get', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:getIamPolicy', + ], ], 'placeholders' => [ 'resource' => [ @@ -493,11 +493,6 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:setIamPolicy', 'body' => '*', ], - [ - 'method' => 'post', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:setIamPolicy', - 'body' => '*', - ], [ 'method' => 'post', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:setIamPolicy', @@ -573,6 +568,11 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataProducts/*}:setIamPolicy', 'body' => '*', ], + [ + 'method' => 'post', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:setIamPolicy', + 'body' => '*', + ], ], 'placeholders' => [ 'resource' => [ @@ -602,11 +602,6 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:testIamPermissions', 'body' => '*', ], - [ - 'method' => 'post', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:testIamPermissions', - 'body' => '*', - ], [ 'method' => 'post', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:testIamPermissions', @@ -682,6 +677,11 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataProducts/*}:testIamPermissions', 'body' => '*', ], + [ + 'method' => 'post', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:testIamPermissions', + 'body' => '*', + ], ], 'placeholders' => [ 'resource' => [ diff --git a/Dataplex/src/V1/resources/metadata_service_rest_client_config.php b/Dataplex/src/V1/resources/metadata_service_rest_client_config.php index 2b86d2e82fe5..bc18d323dbe2 100644 --- a/Dataplex/src/V1/resources/metadata_service_rest_client_config.php +++ b/Dataplex/src/V1/resources/metadata_service_rest_client_config.php @@ -174,10 +174,6 @@ 'method' => 'get', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:getIamPolicy', ], - [ - 'method' => 'get', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:getIamPolicy', - ], [ 'method' => 'get', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:getIamPolicy', @@ -238,6 +234,10 @@ 'method' => 'get', 'uriTemplate' => '/v1/{resource=organizations/*/locations/*/encryptionConfigs/*}:getIamPolicy', ], + [ + 'method' => 'get', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:getIamPolicy', + ], ], 'placeholders' => [ 'resource' => [ @@ -267,11 +267,6 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:setIamPolicy', 'body' => '*', ], - [ - 'method' => 'post', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:setIamPolicy', - 'body' => '*', - ], [ 'method' => 'post', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:setIamPolicy', @@ -347,6 +342,11 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataProducts/*}:setIamPolicy', 'body' => '*', ], + [ + 'method' => 'post', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:setIamPolicy', + 'body' => '*', + ], ], 'placeholders' => [ 'resource' => [ @@ -376,11 +376,6 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/tasks/*}:testIamPermissions', 'body' => '*', ], - [ - 'method' => 'post', - 'uriTemplate' => '/v1/{resource=projects/*/locations/*/lakes/*/environments/*}:testIamPermissions', - 'body' => '*', - ], [ 'method' => 'post', 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataScans/*}:testIamPermissions', @@ -456,6 +451,11 @@ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataProducts/*}:testIamPermissions', 'body' => '*', ], + [ + 'method' => 'post', + 'uriTemplate' => '/v1/{resource=projects/*/locations/*/dataDomains/*}:testIamPermissions', + 'body' => '*', + ], ], 'placeholders' => [ 'resource' => [ diff --git a/Dataplex/tests/Unit/V1/Client/CatalogServiceClientTest.php b/Dataplex/tests/Unit/V1/Client/CatalogServiceClientTest.php index 7915da08a750..68903aadaa3c 100644 --- a/Dataplex/tests/Unit/V1/Client/CatalogServiceClientTest.php +++ b/Dataplex/tests/Unit/V1/Client/CatalogServiceClientTest.php @@ -75,6 +75,7 @@ use Google\Cloud\Dataplex\V1\MetadataFeed\Scope; use Google\Cloud\Dataplex\V1\MetadataJob; use Google\Cloud\Dataplex\V1\MetadataJob\Type; +use Google\Cloud\Dataplex\V1\ModifyEntryRequest; use Google\Cloud\Dataplex\V1\SearchEntriesRequest; use Google\Cloud\Dataplex\V1\SearchEntriesResponse; use Google\Cloud\Dataplex\V1\SearchEntriesResult; @@ -2654,9 +2655,9 @@ public function lookupContextTest() ]); $this->assertTrue($transport->isExhausted()); // Mock response - $context = 'context951530927'; + $context2 = 'context2-406810206'; $expectedResponse = new LookupContextResponse(); - $expectedResponse->setContext($context); + $expectedResponse->setContext($context2); $transport->addResponse($expectedResponse); // Mock request $name = 'name3373707'; @@ -2864,6 +2865,85 @@ public function lookupEntryLinksExceptionTest() $this->assertTrue($transport->isExhausted()); } + /** @test */ + public function modifyEntryTest() + { + $transport = $this->createTransport(); + $gapicClient = $this->createClient([ + 'transport' => $transport, + ]); + $this->assertTrue($transport->isExhausted()); + // Mock response + $name2 = 'name2-1052831874'; + $entryType = 'entryType-1965312281'; + $parentEntry = 'parentEntry1393020061'; + $fullyQualifiedName = 'fullyQualifiedName338146659'; + $expectedResponse = new Entry(); + $expectedResponse->setName($name2); + $expectedResponse->setEntryType($entryType); + $expectedResponse->setParentEntry($parentEntry); + $expectedResponse->setFullyQualifiedName($fullyQualifiedName); + $transport->addResponse($expectedResponse); + // Mock request + $name = 'name3373707'; + $entry = new Entry(); + $entryEntryType = 'entryEntryType884603514'; + $entry->setEntryType($entryEntryType); + $request = (new ModifyEntryRequest())->setName($name)->setEntry($entry); + $response = $gapicClient->modifyEntry($request); + $this->assertEquals($expectedResponse, $response); + $actualRequests = $transport->popReceivedCalls(); + $this->assertSame(1, count($actualRequests)); + $actualFuncCall = $actualRequests[0]->getFuncCall(); + $actualRequestObject = $actualRequests[0]->getRequestObject(); + $this->assertSame('/google.cloud.dataplex.v1.CatalogService/ModifyEntry', $actualFuncCall); + $actualValue = $actualRequestObject->getName(); + $this->assertProtobufEquals($name, $actualValue); + $actualValue = $actualRequestObject->getEntry(); + $this->assertProtobufEquals($entry, $actualValue); + $this->assertTrue($transport->isExhausted()); + } + + /** @test */ + public function modifyEntryExceptionTest() + { + $transport = $this->createTransport(); + $gapicClient = $this->createClient([ + 'transport' => $transport, + ]); + $this->assertTrue($transport->isExhausted()); + $status = new stdClass(); + $status->code = Code::DATA_LOSS; + $status->details = 'internal error'; + $expectedExceptionMessage = json_encode( + [ + 'message' => 'internal error', + 'code' => Code::DATA_LOSS, + 'status' => 'DATA_LOSS', + 'details' => [], + ], + JSON_PRETTY_PRINT + ); + $transport->addResponse(null, $status); + // Mock request + $name = 'name3373707'; + $entry = new Entry(); + $entryEntryType = 'entryEntryType884603514'; + $entry->setEntryType($entryEntryType); + $request = (new ModifyEntryRequest())->setName($name)->setEntry($entry); + try { + $gapicClient->modifyEntry($request); + // If the $gapicClient method call did not throw, fail the test + $this->fail('Expected an ApiException, but no exception was thrown.'); + } catch (ApiException $ex) { + $this->assertEquals($status->code, $ex->getCode()); + $this->assertEquals($expectedExceptionMessage, $ex->getMessage()); + } + // Call popReceivedCalls to ensure the stub is exhausted + $transport->popReceivedCalls(); + $this->assertTrue($transport->isExhausted()); + } + /** @test */ public function searchEntriesTest() { diff --git a/Dataplex/tests/Unit/V1/Client/DataProductServiceClientTest.php b/Dataplex/tests/Unit/V1/Client/DataProductServiceClientTest.php index 6b8dd56e8659..565c97e20603 100644 --- a/Dataplex/tests/Unit/V1/Client/DataProductServiceClientTest.php +++ b/Dataplex/tests/Unit/V1/Client/DataProductServiceClientTest.php @@ -26,6 +26,7 @@ use Google\ApiCore\CredentialsWrapper; use Google\ApiCore\Testing\GeneratedTest; use Google\ApiCore\Testing\MockTransport; +use Google\Cloud\Dataplex\V1\ChangeRequest; use Google\Cloud\Dataplex\V1\Client\DataProductServiceClient; use Google\Cloud\Dataplex\V1\CreateDataAssetRequest; use Google\Cloud\Dataplex\V1\CreateDataProductRequest; @@ -39,6 +40,8 @@ use Google\Cloud\Dataplex\V1\ListDataAssetsResponse; use Google\Cloud\Dataplex\V1\ListDataProductsRequest; use Google\Cloud\Dataplex\V1\ListDataProductsResponse; +use Google\Cloud\Dataplex\V1\RequestDataProductAccessRequest; +use Google\Cloud\Dataplex\V1\RequestDataProductAccessResponse; use Google\Cloud\Dataplex\V1\UpdateDataAssetRequest; use Google\Cloud\Dataplex\V1\UpdateDataProductRequest; use Google\Cloud\Iam\V1\GetIamPolicyRequest; @@ -908,6 +911,79 @@ public function listDataProductsExceptionTest() $this->assertTrue($transport->isExhausted()); } + /** @test */ + public function requestDataProductAccessTest() + { + $transport = $this->createTransport(); + $gapicClient = $this->createClient([ + 'transport' => $transport, + ]); + $this->assertTrue($transport->isExhausted()); + // Mock response + $changeRequestName = 'changeRequestName-180005270'; + $expectedResponse = new RequestDataProductAccessResponse(); + $expectedResponse->setChangeRequestName($changeRequestName); + $transport->addResponse($expectedResponse); + // Mock request + $formattedParent = $gapicClient->dataProductName('[PROJECT]', '[LOCATION]', '[DATA_PRODUCT]'); + $changeRequest = new ChangeRequest(); + $request = (new RequestDataProductAccessRequest()) + ->setParent($formattedParent) + ->setChangeRequest($changeRequest); + $response = $gapicClient->requestDataProductAccess($request); + $this->assertEquals($expectedResponse, $response); + $actualRequests = $transport->popReceivedCalls(); + $this->assertSame(1, count($actualRequests)); + $actualFuncCall = $actualRequests[0]->getFuncCall(); + $actualRequestObject = $actualRequests[0]->getRequestObject(); + $this->assertSame('/google.cloud.dataplex.v1.DataProductService/RequestDataProductAccess', $actualFuncCall); + $actualValue = $actualRequestObject->getParent(); + $this->assertProtobufEquals($formattedParent, $actualValue); + $actualValue = $actualRequestObject->getChangeRequest(); + $this->assertProtobufEquals($changeRequest, $actualValue); + $this->assertTrue($transport->isExhausted()); + } + + /** @test */ + public function requestDataProductAccessExceptionTest() + { + $transport = $this->createTransport(); + $gapicClient = $this->createClient([ + 'transport' => $transport, + ]); + $this->assertTrue($transport->isExhausted()); + $status = new stdClass(); + $status->code = Code::DATA_LOSS; + $status->details = 'internal error'; + $expectedExceptionMessage = json_encode( + [ + 'message' => 'internal error', + 'code' => Code::DATA_LOSS, + 'status' => 'DATA_LOSS', + 'details' => [], + ], + JSON_PRETTY_PRINT + ); + $transport->addResponse(null, $status); + // Mock request + $formattedParent = $gapicClient->dataProductName('[PROJECT]', '[LOCATION]', '[DATA_PRODUCT]'); + $changeRequest = new ChangeRequest(); + $request = (new RequestDataProductAccessRequest()) + ->setParent($formattedParent) + ->setChangeRequest($changeRequest); + try { + $gapicClient->requestDataProductAccess($request); + // If the $gapicClient method call did not throw, fail the test + $this->fail('Expected an ApiException, but no exception was thrown.'); + } catch (ApiException $ex) { + $this->assertEquals($status->code, $ex->getCode()); + $this->assertEquals($expectedExceptionMessage, $ex->getMessage()); + } + // Call popReceivedCalls to ensure the stub is exhausted + $transport->popReceivedCalls(); + $this->assertTrue($transport->isExhausted()); + } + /** @test */ public function updateDataAssetTest() { diff --git a/Dataplex/tests/Unit/V1/Client/DataScanServiceClientTest.php b/Dataplex/tests/Unit/V1/Client/DataScanServiceClientTest.php index 046d398e8397..d020bff1fdf4 100644 --- a/Dataplex/tests/Unit/V1/Client/DataScanServiceClientTest.php +++ b/Dataplex/tests/Unit/V1/Client/DataScanServiceClientTest.php @@ -26,6 +26,8 @@ use Google\ApiCore\CredentialsWrapper; use Google\ApiCore\Testing\GeneratedTest; use Google\ApiCore\Testing\MockTransport; +use Google\Cloud\Dataplex\V1\CancelDataScanJobRequest; +use Google\Cloud\Dataplex\V1\CancelDataScanJobResponse; use Google\Cloud\Dataplex\V1\Client\DataScanServiceClient; use Google\Cloud\Dataplex\V1\CreateDataScanRequest; use Google\Cloud\Dataplex\V1\DataScan; @@ -90,6 +92,69 @@ private function createClient(array $options = []) return new DataScanServiceClient($options); } + /** @test */ + public function cancelDataScanJobTest() + { + $transport = $this->createTransport(); + $gapicClient = $this->createClient([ + 'transport' => $transport, + ]); + $this->assertTrue($transport->isExhausted()); + // Mock response + $expectedResponse = new CancelDataScanJobResponse(); + $transport->addResponse($expectedResponse); + // Mock request + $formattedName = $gapicClient->dataScanJobName('[PROJECT]', '[LOCATION]', '[DATASCAN]', '[JOB]'); + $request = (new CancelDataScanJobRequest())->setName($formattedName); + $response = $gapicClient->cancelDataScanJob($request); + $this->assertEquals($expectedResponse, $response); + $actualRequests = $transport->popReceivedCalls(); + $this->assertSame(1, count($actualRequests)); + $actualFuncCall = $actualRequests[0]->getFuncCall(); + $actualRequestObject = $actualRequests[0]->getRequestObject(); + $this->assertSame('/google.cloud.dataplex.v1.DataScanService/CancelDataScanJob', $actualFuncCall); + $actualValue = $actualRequestObject->getName(); + $this->assertProtobufEquals($formattedName, $actualValue); + $this->assertTrue($transport->isExhausted()); + } + + /** @test */ + public function cancelDataScanJobExceptionTest() + { + $transport = $this->createTransport(); + $gapicClient = $this->createClient([ + 'transport' => $transport, + ]); + $this->assertTrue($transport->isExhausted()); + $status = new stdClass(); + $status->code = Code::DATA_LOSS; + $status->details = 'internal error'; + $expectedExceptionMessage = json_encode( + [ + 'message' => 'internal error', + 'code' => Code::DATA_LOSS, + 'status' => 'DATA_LOSS', + 'details' => [], + ], + JSON_PRETTY_PRINT + ); + $transport->addResponse(null, $status); + // Mock request + $formattedName = $gapicClient->dataScanJobName('[PROJECT]', '[LOCATION]', '[DATASCAN]', '[JOB]'); + $request = (new CancelDataScanJobRequest())->setName($formattedName); + try { + $gapicClient->cancelDataScanJob($request); + // If the $gapicClient method call did not throw, fail the test + $this->fail('Expected an ApiException, but no exception was thrown.'); + } catch (ApiException $ex) { + $this->assertEquals($status->code, $ex->getCode()); + $this->assertEquals($expectedExceptionMessage, $ex->getMessage()); + } + // Call popReceivedCalls to ensure the stub is exhausted + $transport->popReceivedCalls(); + $this->assertTrue($transport->isExhausted()); + } + /** @test */ public function createDataScanTest() { @@ -132,11 +197,7 @@ public function createDataScanTest() $dataScan = new DataScan(); $dataScanData = new DataSource(); $dataScan->setData($dataScanData); - $dataScanId = 'dataScanId1236798088'; - $request = (new CreateDataScanRequest()) - ->setParent($formattedParent) - ->setDataScan($dataScan) - ->setDataScanId($dataScanId); + $request = (new CreateDataScanRequest())->setParent($formattedParent)->setDataScan($dataScan); $response = $gapicClient->createDataScan($request); $this->assertFalse($response->isDone()); $this->assertNull($response->getResult()); @@ -151,8 +212,6 @@ public function createDataScanTest() $this->assertProtobufEquals($formattedParent, $actualValue); $actualValue = $actualApiRequestObject->getDataScan(); $this->assertProtobufEquals($dataScan, $actualValue); - $actualValue = $actualApiRequestObject->getDataScanId(); - $this->assertProtobufEquals($dataScanId, $actualValue); $expectedOperationsRequestObject = new GetOperationRequest(); $expectedOperationsRequestObject->setName('operations/createDataScanTest'); $response->pollUntilComplete([ @@ -211,11 +270,7 @@ public function createDataScanExceptionTest() $dataScan = new DataScan(); $dataScanData = new DataSource(); $dataScan->setData($dataScanData); - $dataScanId = 'dataScanId1236798088'; - $request = (new CreateDataScanRequest()) - ->setParent($formattedParent) - ->setDataScan($dataScan) - ->setDataScanId($dataScanId); + $request = (new CreateDataScanRequest())->setParent($formattedParent)->setDataScan($dataScan); $response = $gapicClient->createDataScan($request); $this->assertFalse($response->isDone()); $this->assertNull($response->getResult()); @@ -505,10 +560,12 @@ public function getDataScanJobTest() // Mock response $name2 = 'name2-1052831874'; $uid = 'uid115792'; + $partialFailureMessage = 'partialFailureMessage564046740'; $message = 'message954925063'; $expectedResponse = new DataScanJob(); $expectedResponse->setName($name2); $expectedResponse->setUid($uid); + $expectedResponse->setPartialFailureMessage($partialFailureMessage); $expectedResponse->setMessage($message); $transport->addResponse($expectedResponse); // Mock request @@ -1236,84 +1293,28 @@ public function testIamPermissionsExceptionTest() } /** @test */ - public function createDataScanAsyncTest() + public function cancelDataScanJobAsyncTest() { - $operationsTransport = $this->createTransport(); - $operationsClient = new OperationsClient([ - 'apiEndpoint' => '', - 'transport' => $operationsTransport, - 'credentials' => $this->createCredentials(), - ]); $transport = $this->createTransport(); $gapicClient = $this->createClient([ 'transport' => $transport, - 'operationsClient' => $operationsClient, ]); $this->assertTrue($transport->isExhausted()); - $this->assertTrue($operationsTransport->isExhausted()); // Mock response - $incompleteOperation = new Operation(); - $incompleteOperation->setName('operations/createDataScanTest'); - $incompleteOperation->setDone(false); - $transport->addResponse($incompleteOperation); - $name = 'name3373707'; - $uid = 'uid115792'; - $description = 'description-1724546052'; - $displayName = 'displayName1615086568'; - $expectedResponse = new DataScan(); - $expectedResponse->setName($name); - $expectedResponse->setUid($uid); - $expectedResponse->setDescription($description); - $expectedResponse->setDisplayName($displayName); - $anyResponse = new Any(); - $anyResponse->setValue($expectedResponse->serializeToString()); - $completeOperation = new Operation(); - $completeOperation->setName('operations/createDataScanTest'); - $completeOperation->setDone(true); - $completeOperation->setResponse($anyResponse); - $operationsTransport->addResponse($completeOperation); + $expectedResponse = new CancelDataScanJobResponse(); + $transport->addResponse($expectedResponse); // Mock request - $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]'); - $dataScan = new DataScan(); - $dataScanData = new DataSource(); - $dataScan->setData($dataScanData); - $dataScanId = 'dataScanId1236798088'; - $request = (new CreateDataScanRequest()) - ->setParent($formattedParent) - ->setDataScan($dataScan) - ->setDataScanId($dataScanId); - $response = $gapicClient->createDataScanAsync($request)->wait(); - $this->assertFalse($response->isDone()); - $this->assertNull($response->getResult()); - $apiRequests = $transport->popReceivedCalls(); - $this->assertSame(1, count($apiRequests)); - $operationsRequestsEmpty = $operationsTransport->popReceivedCalls(); - $this->assertSame(0, count($operationsRequestsEmpty)); - $actualApiFuncCall = $apiRequests[0]->getFuncCall(); - $actualApiRequestObject = $apiRequests[0]->getRequestObject(); - $this->assertSame('/google.cloud.dataplex.v1.DataScanService/CreateDataScan', $actualApiFuncCall); - $actualValue = $actualApiRequestObject->getParent(); - $this->assertProtobufEquals($formattedParent, $actualValue); - $actualValue = $actualApiRequestObject->getDataScan(); - $this->assertProtobufEquals($dataScan, $actualValue); - $actualValue = $actualApiRequestObject->getDataScanId(); - $this->assertProtobufEquals($dataScanId, $actualValue); - $expectedOperationsRequestObject = new GetOperationRequest(); - $expectedOperationsRequestObject->setName('operations/createDataScanTest'); - $response->pollUntilComplete([ - 'initialPollDelayMillis' => 1, - ]); - $this->assertTrue($response->isDone()); - $this->assertEquals($expectedResponse, $response->getResult()); - $apiRequestsEmpty = $transport->popReceivedCalls(); - $this->assertSame(0, count($apiRequestsEmpty)); - $operationsRequests = $operationsTransport->popReceivedCalls(); - $this->assertSame(1, count($operationsRequests)); - $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall(); - $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject(); - $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall); - $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject); + $formattedName = $gapicClient->dataScanJobName('[PROJECT]', '[LOCATION]', '[DATASCAN]', '[JOB]'); + $request = (new CancelDataScanJobRequest())->setName($formattedName); + $response = $gapicClient->cancelDataScanJobAsync($request)->wait(); + $this->assertEquals($expectedResponse, $response); + $actualRequests = $transport->popReceivedCalls(); + $this->assertSame(1, count($actualRequests)); + $actualFuncCall = $actualRequests[0]->getFuncCall(); + $actualRequestObject = $actualRequests[0]->getRequestObject(); + $this->assertSame('/google.cloud.dataplex.v1.DataScanService/CancelDataScanJob', $actualFuncCall); + $actualValue = $actualRequestObject->getName(); + $this->assertProtobufEquals($formattedName, $actualValue); $this->assertTrue($transport->isExhausted()); - $this->assertTrue($operationsTransport->isExhausted()); } } From 8925a0d9d06f4a7f6a57bbddce0791e33811e116 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 27 May 2026 17:24:53 -0400 Subject: [PATCH 2/7] feat: [StorageControl] add support for GCS Storage Control Intelligence Finding APIs (#9217) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add support for GCS Storage Control Intelligence Finding APIs Stages public GAPIC client libraries in Java, Go, Python, Node.js, and Ruby for the GCS Storage Control Intelligence Finding service. This includes the addition of the following RPC methods for retrieving and summarizing telemetry findings (such as security, performance, or cost-related insights) at the project, organization, or folder level: - `GetIntelligenceFinding` - `ListIntelligenceFindings` - `SummarizeIntelligenceFindings` - `GetIntelligenceFindingRevision` - `ListIntelligenceFindingRevisions` PiperOrigin-RevId: 922200845 Source-Link: https://github.com/googleapis/googleapis/commit/6d5b8533de2746391e5c32a18cdb47b5c2ed0266 Source-Link: https://github.com/googleapis/googleapis-gen/commit/94bb285e999d02a8946954f3559e20d8febaad4c Copy-Tag: eyJwIjoiU3RvcmFnZUNvbnRyb2wvLk93bEJvdC55YW1sIiwiaCI6Ijk0YmIyODVlOTk5ZDAyYTg5NDY5NTRmMzU1OWUyMGQ4ZmViYWFkNGMifQ== * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- StorageControl/metadata/V2/StorageControl.php | 4 +- .../get_intelligence_finding.php | 78 +++ .../get_intelligence_finding_revision.php | 79 +++ .../list_intelligence_finding_revisions.php | 83 +++ .../list_intelligence_findings.php | 78 +++ .../summarize_intelligence_findings.php | 80 +++ .../src/V2/Client/StorageControlClient.php | 225 +++++++ StorageControl/src/V2/FindingCategory.php | 61 ++ StorageControl/src/V2/FindingSeverity.php | 54 ++ StorageControl/src/V2/FindingSummary.php | 307 +++++++++ .../src/V2/FindingSummary/SummaryDetails.php | 176 ++++++ .../SummaryDetails/ResourceType.php | 61 ++ StorageControl/src/V2/FindingType.php | 77 +++ .../src/V2/GetIntelligenceFindingRequest.php | 93 +++ .../GetIntelligenceFindingRevisionRequest.php | 93 +++ StorageControl/src/V2/IntelligenceFinding.php | 594 ++++++++++++++++++ ...dlineAndArchivalStorageOperationsSpike.php | 142 +++++ .../BucketContribution.php | 213 +++++++ .../BucketContribution/Contribution.php | 72 +++ .../Contribution/PrefixContribution.php | 143 +++++ .../CrossRegionEgressSpike.php | 149 +++++ .../BucketContribution.php | 221 +++++++ .../BucketContribution/Contribution.php | 72 +++ .../Contribution/PrefixContribution.php | 148 +++++ .../StorageGrowthAboveTrend.php | 140 +++++ .../BucketContribution.php | 180 ++++++ .../ThrottledRequestSpike.php | 145 +++++ .../BucketContribution.php | 217 +++++++ .../BucketContribution/Contribution.php | 72 +++ .../Contribution/PrefixContribution.php | 143 +++++ .../src/V2/IntelligenceFindingRevision.php | 172 +++++ ...istIntelligenceFindingRevisionsRequest.php | 181 ++++++ ...stIntelligenceFindingRevisionsResponse.php | 102 +++ .../V2/ListIntelligenceFindingsRequest.php | 218 +++++++ .../V2/ListIntelligenceFindingsResponse.php | 106 ++++ .../SummarizeIntelligenceFindingsRequest.php | 301 +++++++++ .../ResourceScope.php | 61 ++ .../SummarizeIntelligenceFindingsResponse.php | 110 ++++ StorageControl/src/V2/gapic_metadata.json | 25 + .../storage_control_client_config.json | 25 + .../storage_control_descriptor_config.php | 87 +++ .../storage_control_rest_client_config.php | 65 ++ .../V2/Client/StorageControlClientTest.php | 371 +++++++++++ 43 files changed, 6023 insertions(+), 1 deletion(-) create mode 100644 StorageControl/samples/V2/StorageControlClient/get_intelligence_finding.php create mode 100644 StorageControl/samples/V2/StorageControlClient/get_intelligence_finding_revision.php create mode 100644 StorageControl/samples/V2/StorageControlClient/list_intelligence_finding_revisions.php create mode 100644 StorageControl/samples/V2/StorageControlClient/list_intelligence_findings.php create mode 100644 StorageControl/samples/V2/StorageControlClient/summarize_intelligence_findings.php create mode 100644 StorageControl/src/V2/FindingCategory.php create mode 100644 StorageControl/src/V2/FindingSeverity.php create mode 100644 StorageControl/src/V2/FindingSummary.php create mode 100644 StorageControl/src/V2/FindingSummary/SummaryDetails.php create mode 100644 StorageControl/src/V2/FindingSummary/SummaryDetails/ResourceType.php create mode 100644 StorageControl/src/V2/FindingType.php create mode 100644 StorageControl/src/V2/GetIntelligenceFindingRequest.php create mode 100644 StorageControl/src/V2/GetIntelligenceFindingRevisionRequest.php create mode 100644 StorageControl/src/V2/IntelligenceFinding.php create mode 100644 StorageControl/src/V2/IntelligenceFinding/ColdlineAndArchivalStorageOperationsSpike.php create mode 100644 StorageControl/src/V2/IntelligenceFinding/ColdlineAndArchivalStorageOperationsSpike/BucketContribution.php create mode 100644 StorageControl/src/V2/IntelligenceFinding/ColdlineAndArchivalStorageOperationsSpike/BucketContribution/Contribution.php create mode 100644 StorageControl/src/V2/IntelligenceFinding/ColdlineAndArchivalStorageOperationsSpike/BucketContribution/Contribution/PrefixContribution.php create mode 100644 StorageControl/src/V2/IntelligenceFinding/CrossRegionEgressSpike.php create mode 100644 StorageControl/src/V2/IntelligenceFinding/CrossRegionEgressSpike/BucketContribution.php create mode 100644 StorageControl/src/V2/IntelligenceFinding/CrossRegionEgressSpike/BucketContribution/Contribution.php create mode 100644 StorageControl/src/V2/IntelligenceFinding/CrossRegionEgressSpike/BucketContribution/Contribution/PrefixContribution.php create mode 100644 StorageControl/src/V2/IntelligenceFinding/StorageGrowthAboveTrend.php create mode 100644 StorageControl/src/V2/IntelligenceFinding/StorageGrowthAboveTrend/BucketContribution.php create mode 100644 StorageControl/src/V2/IntelligenceFinding/ThrottledRequestSpike.php create mode 100644 StorageControl/src/V2/IntelligenceFinding/ThrottledRequestSpike/BucketContribution.php create mode 100644 StorageControl/src/V2/IntelligenceFinding/ThrottledRequestSpike/BucketContribution/Contribution.php create mode 100644 StorageControl/src/V2/IntelligenceFinding/ThrottledRequestSpike/BucketContribution/Contribution/PrefixContribution.php create mode 100644 StorageControl/src/V2/IntelligenceFindingRevision.php create mode 100644 StorageControl/src/V2/ListIntelligenceFindingRevisionsRequest.php create mode 100644 StorageControl/src/V2/ListIntelligenceFindingRevisionsResponse.php create mode 100644 StorageControl/src/V2/ListIntelligenceFindingsRequest.php create mode 100644 StorageControl/src/V2/ListIntelligenceFindingsResponse.php create mode 100644 StorageControl/src/V2/SummarizeIntelligenceFindingsRequest.php create mode 100644 StorageControl/src/V2/SummarizeIntelligenceFindingsRequest/ResourceScope.php create mode 100644 StorageControl/src/V2/SummarizeIntelligenceFindingsResponse.php diff --git a/StorageControl/metadata/V2/StorageControl.php b/StorageControl/metadata/V2/StorageControl.php index 93fc3e37a005..67592ef0b934 100644 --- a/StorageControl/metadata/V2/StorageControl.php +++ b/StorageControl/metadata/V2/StorageControl.php @@ -27,8 +27,10 @@ public static function initOnce() { \GPBMetadata\Google\Protobuf\GPBEmpty::initOnce(); \GPBMetadata\Google\Protobuf\FieldMask::initOnce(); \GPBMetadata\Google\Protobuf\Timestamp::initOnce(); + \GPBMetadata\Google\Rpc\Status::initOnce(); + \GPBMetadata\Google\Type\Interval::initOnce(); $pool->internalAddGeneratedFile( - "\x0A\xFB}\x0A/google/storage/control/v2/storage_control.proto\x12\x19google.storage.control.v2\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x1Bgoogle/api/field_info.proto\x1A\x19google/api/resource.proto\x1A\x18google/api/routing.proto\x1A\x1Egoogle/iam/v1/iam_policy.proto\x1A\x1Agoogle/iam/v1/policy.proto\x1A#google/longrunning/operations.proto\x1A\x1Egoogle/protobuf/duration.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"+\x0A\x11PendingRenameInfo\x12\x16\x0A\x09operation\x18\x01 \x01(\x09B\x03\xE0A\x03\"\xE2\x02\x0A\x06Folder\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12\x1B\x0A\x0Emetageneration\x18\x03 \x01(\x03B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12N\x0A\x13pending_rename_info\x18\x07 \x01(\x0B2,.google.storage.control.v2.PendingRenameInfoB\x03\xE0A\x03:l\xEAAi\x0A\x1Dstorage.googleapis.com/Folder\x127projects/{project}/buckets/{bucket}/folders/{folder=**}*\x07folders2\x06folder\"\xF4\x01\x0A\x10GetFolderRequest\x123\x0A\x04name\x18\x06 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Dstorage.googleapis.com/Folder\x12\$\x0A\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\x0A\x1Bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x1F\x0A\x0Arequest_id\x18\x05 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01B\x1A\x0A\x18_if_metageneration_matchB\x1E\x0A\x1C_if_metageneration_not_match\"\xD5\x01\x0A\x13CreateFolderRequest\x125\x0A\x06parent\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x12\x1Dstorage.googleapis.com/Folder\x126\x0A\x06folder\x18\x02 \x01(\x0B2!.google.storage.control.v2.FolderB\x03\xE0A\x02\x12\x16\x0A\x09folder_id\x18\x03 \x01(\x09B\x03\xE0A\x02\x12\x16\x0A\x09recursive\x18\x04 \x01(\x08B\x03\xE0A\x01\x12\x1F\x0A\x0Arequest_id\x18\x05 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"\xF7\x01\x0A\x13DeleteFolderRequest\x123\x0A\x04name\x18\x06 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Dstorage.googleapis.com/Folder\x12\$\x0A\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\x0A\x1Bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x1F\x0A\x0Arequest_id\x18\x05 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01B\x1A\x0A\x18_if_metageneration_matchB\x1E\x0A\x1C_if_metageneration_not_match\"\x8C\x02\x0A\x12ListFoldersRequest\x125\x0A\x06parent\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x12\x1Dstorage.googleapis.com/Folder\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06prefix\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x16\x0A\x09delimiter\x18\x08 \x01(\x09B\x03\xE0A\x01\x12 \x0A\x13lexicographic_start\x18\x06 \x01(\x09B\x03\xE0A\x01\x12\x1E\x0A\x11lexicographic_end\x18\x07 \x01(\x09B\x03\xE0A\x01\x12\x1F\x0A\x0Arequest_id\x18\x09 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"b\x0A\x13ListFoldersResponse\x122\x0A\x07folders\x18\x01 \x03(\x0B2!.google.storage.control.v2.Folder\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"\x9B\x02\x0A\x13RenameFolderRequest\x123\x0A\x04name\x18\x07 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Dstorage.googleapis.com/Folder\x12\"\x0A\x15destination_folder_id\x18\x08 \x01(\x09B\x03\xE0A\x02\x12\$\x0A\x17if_metageneration_match\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12(\x0A\x1Bif_metageneration_not_match\x18\x05 \x01(\x03H\x01\x88\x01\x01\x12\x1F\x0A\x0Arequest_id\x18\x06 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01B\x1A\x0A\x18_if_metageneration_matchB\x1E\x0A\x1C_if_metageneration_not_match\"\x8A\x02\x0A\x1CDeleteFolderRecursiveRequest\x123\x0A\x04name\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Dstorage.googleapis.com/Folder\x12)\x0A\x17if_metageneration_match\x18\x02 \x01(\x03B\x03\xE0A\x01H\x00\x88\x01\x01\x12-\x0A\x1Bif_metageneration_not_match\x18\x03 \x01(\x03B\x03\xE0A\x01H\x01\x88\x01\x01\x12\x1F\x0A\x0Arequest_id\x18\x04 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01B\x1A\x0A\x18_if_metageneration_matchB\x1E\x0A\x1C_if_metageneration_not_match\"\x9A\x02\x0A\"CommonLongRunningOperationMetadata\x124\x0A\x0Bcreate_time\x18\x01 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x121\x0A\x08end_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x11\x0A\x04type\x18\x04 \x01(\x09B\x03\xE0A\x03\x12#\x0A\x16requested_cancellation\x18\x05 \x01(\x08B\x03\xE0A\x03\x12\x1D\x0A\x10progress_percent\x18\x06 \x01(\x05B\x03\xE0A\x03\"\xA7\x01\x0A\x14RenameFolderMetadata\x12V\x0A\x0Fcommon_metadata\x18\x01 \x01(\x0B2=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x18\x0A\x10source_folder_id\x18\x02 \x01(\x09\x12\x1D\x0A\x15destination_folder_id\x18\x03 \x01(\x09\"\x8A\x01\x0A\x1DDeleteFolderRecursiveMetadata\x12V\x0A\x0Fcommon_metadata\x18\x01 \x01(\x0B2=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x11\x0A\x09folder_id\x18\x02 \x01(\x09\"\xF8\x03\x0A\x0DStorageLayout\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x15\x0A\x08location\x18\x02 \x01(\x09B\x03\xE0A\x03\x12\x1A\x0A\x0Dlocation_type\x18\x03 \x01(\x09B\x03\xE0A\x03\x12d\x0A\x17custom_placement_config\x18\x04 \x01(\x0B2>.google.storage.control.v2.StorageLayout.CustomPlacementConfigB\x03\xE0A\x03\x12c\x0A\x16hierarchical_namespace\x18\x05 \x01(\x0B2>.google.storage.control.v2.StorageLayout.HierarchicalNamespaceB\x03\xE0A\x03\x1A/\x0A\x15CustomPlacementConfig\x12\x16\x0A\x0Edata_locations\x18\x01 \x03(\x09\x1A(\x0A\x15HierarchicalNamespace\x12\x0F\x0A\x07enabled\x18\x01 \x01(\x08:{\xEAAx\x0A\$storage.googleapis.com/StorageLayout\x121projects/{project}/buckets/{bucket}/storageLayout*\x0EstorageLayouts2\x0DstorageLayout\"\x86\x01\x0A\x17GetStorageLayoutRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$storage.googleapis.com/StorageLayout\x12\x0E\x0A\x06prefix\x18\x02 \x01(\x09\x12\x1F\x0A\x0Arequest_id\x18\x03 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"\xBF\x02\x0A\x0DManagedFolder\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12\x1B\x0A\x0Emetageneration\x18\x03 \x01(\x03B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03:\x91\x01\xEAA\x8D\x01\x0A\$storage.googleapis.com/ManagedFolder\x12Fprojects/{project}/buckets/{bucket}/managedFolders/{managed_folder=**}*\x0EmanagedFolders2\x0DmanagedFolder\"\x82\x02\x0A\x17GetManagedFolderRequest\x12:\x0A\x04name\x18\x06 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$storage.googleapis.com/ManagedFolder\x12\$\x0A\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\x0A\x1Bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x1F\x0A\x0Arequest_id\x18\x05 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01B\x1A\x0A\x18_if_metageneration_matchB\x1E\x0A\x1C_if_metageneration_not_match\"\xE2\x01\x0A\x1ACreateManagedFolderRequest\x12<\x0A\x06parent\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x12\$storage.googleapis.com/ManagedFolder\x12E\x0A\x0Emanaged_folder\x18\x02 \x01(\x0B2(.google.storage.control.v2.ManagedFolderB\x03\xE0A\x02\x12\x1E\x0A\x11managed_folder_id\x18\x03 \x01(\x09B\x03\xE0A\x02\x12\x1F\x0A\x0Arequest_id\x18\x04 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"\x9E\x02\x0A\x1ADeleteManagedFolderRequest\x12:\x0A\x04name\x18\x07 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$storage.googleapis.com/ManagedFolder\x12\$\x0A\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\x0A\x1Bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x17\x0A\x0Fallow_non_empty\x18\x05 \x01(\x08\x12\x1F\x0A\x0Arequest_id\x18\x06 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01B\x1A\x0A\x18_if_metageneration_matchB\x1E\x0A\x1C_if_metageneration_not_match\"\xC0\x01\x0A\x19ListManagedFoldersRequest\x12<\x0A\x06parent\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x12\$storage.googleapis.com/ManagedFolder\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06prefix\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x1F\x0A\x0Arequest_id\x18\x05 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"x\x0A\x1AListManagedFoldersResponse\x12A\x0A\x0Fmanaged_folders\x18\x01 \x03(\x0B2(.google.storage.control.v2.ManagedFolder\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"\xB0\x02\x0A\x1BCreateAnywhereCacheMetadata\x12V\x0A\x0Fcommon_metadata\x18\x01 \x01(\x0B2=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x1E\x0A\x11anywhere_cache_id\x18\x02 \x01(\x09H\x00\x88\x01\x01\x12\x11\x0A\x04zone\x18\x06 \x01(\x09H\x01\x88\x01\x01\x12+\x0A\x03ttl\x18\x03 \x01(\x0B2\x19.google.protobuf.DurationH\x02\x88\x01\x01\x12\x1D\x0A\x10admission_policy\x18\x05 \x01(\x09H\x03\x88\x01\x01B\x14\x0A\x12_anywhere_cache_idB\x07\x0A\x05_zoneB\x06\x0A\x04_ttlB\x13\x0A\x11_admission_policy\"\xB0\x02\x0A\x1BUpdateAnywhereCacheMetadata\x12V\x0A\x0Fcommon_metadata\x18\x01 \x01(\x0B2=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x1E\x0A\x11anywhere_cache_id\x18\x02 \x01(\x09H\x00\x88\x01\x01\x12\x11\x0A\x04zone\x18\x05 \x01(\x09H\x01\x88\x01\x01\x12+\x0A\x03ttl\x18\x03 \x01(\x0B2\x19.google.protobuf.DurationH\x02\x88\x01\x01\x12\x1D\x0A\x10admission_policy\x18\x04 \x01(\x09H\x03\x88\x01\x01B\x14\x0A\x12_anywhere_cache_idB\x07\x0A\x05_zoneB\x06\x0A\x04_ttlB\x13\x0A\x11_admission_policy\"\xA5\x03\x0A\x0DAnywhereCache\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x05\x12\x11\x0A\x04zone\x18\x0A \x01(\x09B\x03\xE0A\x05\x12&\x0A\x03ttl\x18\x03 \x01(\x0B2\x19.google.protobuf.Duration\x12\x18\x0A\x10admission_policy\x18\x09 \x01(\x09\x12\x12\x0A\x05state\x18\x05 \x01(\x09B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x07 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x1B\x0A\x0Epending_update\x18\x08 \x01(\x08B\x03\xE0A\x03:\x8E\x01\xEAA\x8A\x01\x0A\$storage.googleapis.com/AnywhereCache\x12Cprojects/{project}/buckets/{bucket}/anywhereCaches/{anywhere_cache}*\x0EanywhereCaches2\x0DanywhereCache\"\xC2\x01\x0A\x1ACreateAnywhereCacheRequest\x12<\x0A\x06parent\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x12\$storage.googleapis.com/AnywhereCache\x12E\x0A\x0Eanywhere_cache\x18\x03 \x01(\x0B2(.google.storage.control.v2.AnywhereCacheB\x03\xE0A\x02\x12\x1F\x0A\x0Arequest_id\x18\x04 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"\xBA\x01\x0A\x1AUpdateAnywhereCacheRequest\x12E\x0A\x0Eanywhere_cache\x18\x01 \x01(\x0B2(.google.storage.control.v2.AnywhereCacheB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12\x1F\x0A\x0Arequest_id\x18\x03 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"z\x0A\x1BDisableAnywhereCacheRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$storage.googleapis.com/AnywhereCache\x12\x1F\x0A\x0Arequest_id\x18\x02 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"x\x0A\x19PauseAnywhereCacheRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$storage.googleapis.com/AnywhereCache\x12\x1F\x0A\x0Arequest_id\x18\x02 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"y\x0A\x1AResumeAnywhereCacheRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$storage.googleapis.com/AnywhereCache\x12\x1F\x0A\x0Arequest_id\x18\x02 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"v\x0A\x17GetAnywhereCacheRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$storage.googleapis.com/AnywhereCache\x12\x1F\x0A\x0Arequest_id\x18\x02 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"\xA1\x01\x0A\x19ListAnywhereCachesRequest\x12<\x0A\x06parent\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x12\$storage.googleapis.com/AnywhereCache\x12\x11\x0A\x09page_size\x18\x02 \x01(\x05\x12\x12\x0A\x0Apage_token\x18\x03 \x01(\x09\x12\x1F\x0A\x0Arequest_id\x18\x04 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"x\x0A\x1AListAnywhereCachesResponse\x12A\x0A\x0Fanywhere_caches\x18\x01 \x03(\x0B2(.google.storage.control.v2.AnywhereCache\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"\x8E\x0E\x0A\x12IntelligenceConfig\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12X\x0A\x0Eedition_config\x18\x02 \x01(\x0E2;.google.storage.control.v2.IntelligenceConfig.EditionConfigB\x03\xE0A\x01\x124\x0A\x0Bupdate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12I\x0A\x06filter\x18\x04 \x01(\x0B24.google.storage.control.v2.IntelligenceConfig.FilterB\x03\xE0A\x01\x12u\x0A\x1Deffective_intelligence_config\x18\x05 \x01(\x0B2I.google.storage.control.v2.IntelligenceConfig.EffectiveIntelligenceConfigB\x03\xE0A\x03\x12O\x0A\x0Ctrial_config\x18\x07 \x01(\x0B29.google.storage.control.v2.IntelligenceConfig.TrialConfig\x1A\xFC\x04\x0A\x06Filter\x12v\x0A included_cloud_storage_locations\x18\x01 \x01(\x0B2J.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageLocationsH\x00\x12v\x0A excluded_cloud_storage_locations\x18\x02 \x01(\x0B2J.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageLocationsH\x00\x12r\x0A\x1Eincluded_cloud_storage_buckets\x18\x03 \x01(\x0B2H.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageBucketsH\x01\x12r\x0A\x1Eexcluded_cloud_storage_buckets\x18\x04 \x01(\x0B2H.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageBucketsH\x01\x1A/\x0A\x15CloudStorageLocations\x12\x16\x0A\x09locations\x18\x01 \x03(\x09B\x03\xE0A\x01\x1A5\x0A\x13CloudStorageBuckets\x12\x1E\x0A\x11bucket_id_regexes\x18\x01 \x03(\x09B\x03\xE0A\x01B\x19\x0A\x17cloud_storage_locationsB\x17\x0A\x15cloud_storage_buckets\x1A\x8A\x02\x0A\x1BEffectiveIntelligenceConfig\x12z\x0A\x11effective_edition\x18\x01 \x01(\x0E2Z.google.storage.control.v2.IntelligenceConfig.EffectiveIntelligenceConfig.EffectiveEditionB\x03\xE0A\x03\x12 \x0A\x13intelligence_config\x18\x02 \x01(\x09B\x03\xE0A\x03\"M\x0A\x10EffectiveEdition\x12!\x0A\x1DEFFECTIVE_EDITION_UNSPECIFIED\x10\x00\x12\x08\x0A\x04NONE\x10\x01\x12\x0C\x0A\x08STANDARD\x10\x02\x1AC\x0A\x0BTrialConfig\x124\x0A\x0Bexpire_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\"c\x0A\x0DEditionConfig\x12\x1E\x0A\x1AEDITION_CONFIG_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07INHERIT\x10\x01\x12\x0C\x0A\x08DISABLED\x10\x02\x12\x0C\x0A\x08STANDARD\x10\x03\x12\x09\x0A\x05TRIAL\x10\x05:\x8B\x02\xEAA\x87\x02\x0A)storage.googleapis.com/IntelligenceConfig\x128folders/{folder}/locations/{location}/intelligenceConfig\x12;organizations/{org}/locations/{location}/intelligenceConfig\x12:projects/{project}/locations/{location}/intelligenceConfig*\x13intelligenceConfigs2\x12intelligenceConfig\"\xD5\x01\x0A+UpdateOrganizationIntelligenceConfigRequest\x12O\x0A\x13intelligence_config\x18\x01 \x01(\x0B2-.google.storage.control.v2.IntelligenceConfigB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12\x1F\x0A\x0Arequest_id\x18\x03 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"\xCF\x01\x0A%UpdateFolderIntelligenceConfigRequest\x12O\x0A\x13intelligence_config\x18\x01 \x01(\x0B2-.google.storage.control.v2.IntelligenceConfigB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12\x1F\x0A\x0Arequest_id\x18\x03 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"\xD0\x01\x0A&UpdateProjectIntelligenceConfigRequest\x12O\x0A\x13intelligence_config\x18\x01 \x01(\x0B2-.google.storage.control.v2.IntelligenceConfigB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12\x1F\x0A\x0Arequest_id\x18\x03 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"k\x0A(GetOrganizationIntelligenceConfigRequest\x12?\x0A\x04name\x18\x01 \x01(\x09B1\xE0A\x02\xFAA+\x0A)storage.googleapis.com/IntelligenceConfig\"e\x0A\"GetFolderIntelligenceConfigRequest\x12?\x0A\x04name\x18\x01 \x01(\x09B1\xE0A\x02\xFAA+\x0A)storage.googleapis.com/IntelligenceConfig\"f\x0A#GetProjectIntelligenceConfigRequest\x12?\x0A\x04name\x18\x01 \x01(\x09B1\xE0A\x02\xFAA+\x0A)storage.googleapis.com/IntelligenceConfig2\xD2,\x0A\x0EStorageControl\x12\x9A\x01\x0A\x0CCreateFolder\x12..google.storage.control.v2.CreateFolderRequest\x1A!.google.storage.control.v2.Folder\"7\xDAA\x17parent,folder,folder_id\x8A\xD3\xE4\x93\x02\x17\x12\x15\x0A\x06parent\x12\x0B{bucket=**}\x12\x8F\x01\x0A\x0CDeleteFolder\x12..google.storage.control.v2.DeleteFolderRequest\x1A\x16.google.protobuf.Empty\"7\xDAA\x04name\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\x94\x01\x0A\x09GetFolder\x12+.google.storage.control.v2.GetFolderRequest\x1A!.google.storage.control.v2.Folder\"7\xDAA\x04name\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\x94\x01\x0A\x0BListFolders\x12-.google.storage.control.v2.ListFoldersRequest\x1A..google.storage.control.v2.ListFoldersResponse\"&\xDAA\x06parent\x8A\xD3\xE4\x93\x02\x17\x12\x15\x0A\x06parent\x12\x0B{bucket=**}\x12\xCD\x01\x0A\x0CRenameFolder\x12..google.storage.control.v2.RenameFolderRequest\x1A\x1D.google.longrunning.Operation\"n\xCAA\x1E\x0A\x06Folder\x12\x14RenameFolderMetadata\xDAA\x1Aname,destination_folder_id\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xE1\x01\x0A\x15DeleteFolderRecursive\x127.google.storage.control.v2.DeleteFolderRecursiveRequest\x1A\x1D.google.longrunning.Operation\"p\xCAA6\x0A\x15google.protobuf.Empty\x12\x1DDeleteFolderRecursiveMetadata\xDAA\x04name\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xA9\x01\x0A\x10GetStorageLayout\x122.google.storage.control.v2.GetStorageLayoutRequest\x1A(.google.storage.control.v2.StorageLayout\"7\xDAA\x04name\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xBF\x01\x0A\x13CreateManagedFolder\x125.google.storage.control.v2.CreateManagedFolderRequest\x1A(.google.storage.control.v2.ManagedFolder\"G\xDAA'parent,managed_folder,managed_folder_id\x8A\xD3\xE4\x93\x02\x17\x12\x15\x0A\x06parent\x12\x0B{bucket=**}\x12\x9D\x01\x0A\x13DeleteManagedFolder\x125.google.storage.control.v2.DeleteManagedFolderRequest\x1A\x16.google.protobuf.Empty\"7\xDAA\x04name\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xA9\x01\x0A\x10GetManagedFolder\x122.google.storage.control.v2.GetManagedFolderRequest\x1A(.google.storage.control.v2.ManagedFolder\"7\xDAA\x04name\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xA9\x01\x0A\x12ListManagedFolders\x124.google.storage.control.v2.ListManagedFoldersRequest\x1A5.google.storage.control.v2.ListManagedFoldersResponse\"&\xDAA\x06parent\x8A\xD3\xE4\x93\x02\x17\x12\x15\x0A\x06parent\x12\x0B{bucket=**}\x12\xD1\x01\x0A\x13CreateAnywhereCache\x125.google.storage.control.v2.CreateAnywhereCacheRequest\x1A\x1D.google.longrunning.Operation\"d\xCAA,\x0A\x0DAnywhereCache\x12\x1BCreateAnywhereCacheMetadata\xDAA\x15parent,anywhere_cache\x8A\xD3\xE4\x93\x02\x17\x12\x15\x0A\x06parent\x12\x0B{bucket=**}\x12\xF9\x01\x0A\x13UpdateAnywhereCache\x125.google.storage.control.v2.UpdateAnywhereCacheRequest\x1A\x1D.google.longrunning.Operation\"\x8B\x01\xCAA,\x0A\x0DAnywhereCache\x12\x1BUpdateAnywhereCacheMetadata\xDAA\x1Aanywhere_cache,update_mask\x8A\xD3\xE4\x93\x029\x127\x0A\x13anywhere_cache.name\x12 {bucket=projects/*/buckets/*}/**\x12\xB1\x01\x0A\x14DisableAnywhereCache\x126.google.storage.control.v2.DisableAnywhereCacheRequest\x1A(.google.storage.control.v2.AnywhereCache\"7\xDAA\x04name\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xAD\x01\x0A\x12PauseAnywhereCache\x124.google.storage.control.v2.PauseAnywhereCacheRequest\x1A(.google.storage.control.v2.AnywhereCache\"7\xDAA\x04name\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xAF\x01\x0A\x13ResumeAnywhereCache\x125.google.storage.control.v2.ResumeAnywhereCacheRequest\x1A(.google.storage.control.v2.AnywhereCache\"7\xDAA\x04name\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xA9\x01\x0A\x10GetAnywhereCache\x122.google.storage.control.v2.GetAnywhereCacheRequest\x1A(.google.storage.control.v2.AnywhereCache\"7\xDAA\x04name\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xA9\x01\x0A\x12ListAnywhereCaches\x124.google.storage.control.v2.ListAnywhereCachesRequest\x1A5.google.storage.control.v2.ListAnywhereCachesResponse\"&\xDAA\x06parent\x8A\xD3\xE4\x93\x02\x17\x12\x15\x0A\x06parent\x12\x0B{bucket=**}\x12\xD2\x01\x0A\x1CGetProjectIntelligenceConfig\x12>.google.storage.control.v2.GetProjectIntelligenceConfigRequest\x1A-.google.storage.control.v2.IntelligenceConfig\"C\xDAA\x04name\x82\xD3\xE4\x93\x026\x124/v2/{name=projects/*/locations/*/intelligenceConfig}\x12\x9D\x02\x0A\x1FUpdateProjectIntelligenceConfig\x12A.google.storage.control.v2.UpdateProjectIntelligenceConfigRequest\x1A-.google.storage.control.v2.IntelligenceConfig\"\x87\x01\xDAA\x1Fintelligence_config,update_mask\x82\xD3\xE4\x93\x02_2H/v2/{intelligence_config.name=projects/*/locations/*/intelligenceConfig}:\x13intelligence_config\x12\xCF\x01\x0A\x1BGetFolderIntelligenceConfig\x12=.google.storage.control.v2.GetFolderIntelligenceConfigRequest\x1A-.google.storage.control.v2.IntelligenceConfig\"B\xDAA\x04name\x82\xD3\xE4\x93\x025\x123/v2/{name=folders/*/locations/*/intelligenceConfig}\x12\x9A\x02\x0A\x1EUpdateFolderIntelligenceConfig\x12@.google.storage.control.v2.UpdateFolderIntelligenceConfigRequest\x1A-.google.storage.control.v2.IntelligenceConfig\"\x86\x01\xDAA\x1Fintelligence_config,update_mask\x82\xD3\xE4\x93\x02^2G/v2/{intelligence_config.name=folders/*/locations/*/intelligenceConfig}:\x13intelligence_config\x12\xE1\x01\x0A!GetOrganizationIntelligenceConfig\x12C.google.storage.control.v2.GetOrganizationIntelligenceConfigRequest\x1A-.google.storage.control.v2.IntelligenceConfig\"H\xDAA\x04name\x82\xD3\xE4\x93\x02;\x129/v2/{name=organizations/*/locations/*/intelligenceConfig}\x12\xAC\x02\x0A\$UpdateOrganizationIntelligenceConfig\x12F.google.storage.control.v2.UpdateOrganizationIntelligenceConfigRequest\x1A-.google.storage.control.v2.IntelligenceConfig\"\x8C\x01\xDAA\x1Fintelligence_config,update_mask\x82\xD3\xE4\x93\x02d2M/v2/{intelligence_config.name=organizations/*/locations/*/intelligenceConfig}:\x13intelligence_config\x12\xA3\x01\x0A\x0CGetIamPolicy\x12\".google.iam.v1.GetIamPolicyRequest\x1A\x15.google.iam.v1.Policy\"X\xDAA\x08resource\x8A\xD3\xE4\x93\x02G\x12\x17\x0A\x08resource\x12\x0B{bucket=**}\x12,\x0A\x08resource\x12 {bucket=projects/*/buckets/*}/**\x12\xAA\x01\x0A\x0CSetIamPolicy\x12\".google.iam.v1.SetIamPolicyRequest\x1A\x15.google.iam.v1.Policy\"_\xDAA\x0Fresource,policy\x8A\xD3\xE4\x93\x02G\x12\x17\x0A\x08resource\x12\x0B{bucket=**}\x12,\x0A\x08resource\x12 {bucket=projects/*/buckets/*}/**\x12\x96\x02\x0A\x12TestIamPermissions\x12(.google.iam.v1.TestIamPermissionsRequest\x1A).google.iam.v1.TestIamPermissionsResponse\"\xAA\x01\xDAA\x14resource,permissions\x8A\xD3\xE4\x93\x02\x8C\x01\x12\x17\x0A\x08resource\x12\x0B{bucket=**}\x124\x0A\x08resource\x12({bucket=projects/*/buckets/*}/objects/**\x12;\x0A\x08resource\x12/{bucket=projects/*/buckets/*}/managedFolders/**\x1A\xA7\x02\xCAA\x16storage.googleapis.com\xD2A\x8A\x02https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloud-platform.read-only,https://www.googleapis.com/auth/devstorage.full_control,https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/devstorage.read_writeB\xA6\x02\x0A\x1Dcom.google.storage.control.v2B\x13StorageControlProtoP\x01Z=cloud.google.com/go/storage/control/apiv2/controlpb;controlpb\xAA\x02\x1FGoogle.Cloud.Storage.Control.V2\xCA\x02\x1FGoogle\\Cloud\\Storage\\Control\\V2\xEA\x02#Google::Cloud::Storage::Control::V2\xEAAD\x0A\x1Dstorage.googleapis.com/Bucket\x12#projects/{project}/buckets/{bucket}b\x06proto3" + "\x0A\xDB\xBF\x01\x0A/google/storage/control/v2/storage_control.proto\x12\x19google.storage.control.v2\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x1Bgoogle/api/field_info.proto\x1A\x19google/api/resource.proto\x1A\x18google/api/routing.proto\x1A\x1Egoogle/iam/v1/iam_policy.proto\x1A\x1Agoogle/iam/v1/policy.proto\x1A#google/longrunning/operations.proto\x1A\x1Egoogle/protobuf/duration.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\x1A\x17google/rpc/status.proto\x1A\x1Agoogle/type/interval.proto\"+\x0A\x11PendingRenameInfo\x12\x16\x0A\x09operation\x18\x01 \x01(\x09B\x03\xE0A\x03\"\xE2\x02\x0A\x06Folder\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12\x1B\x0A\x0Emetageneration\x18\x03 \x01(\x03B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12N\x0A\x13pending_rename_info\x18\x07 \x01(\x0B2,.google.storage.control.v2.PendingRenameInfoB\x03\xE0A\x03:l\xEAAi\x0A\x1Dstorage.googleapis.com/Folder\x127projects/{project}/buckets/{bucket}/folders/{folder=**}*\x07folders2\x06folder\"\xF4\x01\x0A\x10GetFolderRequest\x123\x0A\x04name\x18\x06 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Dstorage.googleapis.com/Folder\x12\$\x0A\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\x0A\x1Bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x1F\x0A\x0Arequest_id\x18\x05 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01B\x1A\x0A\x18_if_metageneration_matchB\x1E\x0A\x1C_if_metageneration_not_match\"\xD5\x01\x0A\x13CreateFolderRequest\x125\x0A\x06parent\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x12\x1Dstorage.googleapis.com/Folder\x126\x0A\x06folder\x18\x02 \x01(\x0B2!.google.storage.control.v2.FolderB\x03\xE0A\x02\x12\x16\x0A\x09folder_id\x18\x03 \x01(\x09B\x03\xE0A\x02\x12\x16\x0A\x09recursive\x18\x04 \x01(\x08B\x03\xE0A\x01\x12\x1F\x0A\x0Arequest_id\x18\x05 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"\xF7\x01\x0A\x13DeleteFolderRequest\x123\x0A\x04name\x18\x06 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Dstorage.googleapis.com/Folder\x12\$\x0A\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\x0A\x1Bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x1F\x0A\x0Arequest_id\x18\x05 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01B\x1A\x0A\x18_if_metageneration_matchB\x1E\x0A\x1C_if_metageneration_not_match\"\x8C\x02\x0A\x12ListFoldersRequest\x125\x0A\x06parent\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x12\x1Dstorage.googleapis.com/Folder\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06prefix\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x16\x0A\x09delimiter\x18\x08 \x01(\x09B\x03\xE0A\x01\x12 \x0A\x13lexicographic_start\x18\x06 \x01(\x09B\x03\xE0A\x01\x12\x1E\x0A\x11lexicographic_end\x18\x07 \x01(\x09B\x03\xE0A\x01\x12\x1F\x0A\x0Arequest_id\x18\x09 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"b\x0A\x13ListFoldersResponse\x122\x0A\x07folders\x18\x01 \x03(\x0B2!.google.storage.control.v2.Folder\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"\x9B\x02\x0A\x13RenameFolderRequest\x123\x0A\x04name\x18\x07 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Dstorage.googleapis.com/Folder\x12\"\x0A\x15destination_folder_id\x18\x08 \x01(\x09B\x03\xE0A\x02\x12\$\x0A\x17if_metageneration_match\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12(\x0A\x1Bif_metageneration_not_match\x18\x05 \x01(\x03H\x01\x88\x01\x01\x12\x1F\x0A\x0Arequest_id\x18\x06 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01B\x1A\x0A\x18_if_metageneration_matchB\x1E\x0A\x1C_if_metageneration_not_match\"\x8A\x02\x0A\x1CDeleteFolderRecursiveRequest\x123\x0A\x04name\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Dstorage.googleapis.com/Folder\x12)\x0A\x17if_metageneration_match\x18\x02 \x01(\x03B\x03\xE0A\x01H\x00\x88\x01\x01\x12-\x0A\x1Bif_metageneration_not_match\x18\x03 \x01(\x03B\x03\xE0A\x01H\x01\x88\x01\x01\x12\x1F\x0A\x0Arequest_id\x18\x04 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01B\x1A\x0A\x18_if_metageneration_matchB\x1E\x0A\x1C_if_metageneration_not_match\"\x9A\x02\x0A\"CommonLongRunningOperationMetadata\x124\x0A\x0Bcreate_time\x18\x01 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x121\x0A\x08end_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x11\x0A\x04type\x18\x04 \x01(\x09B\x03\xE0A\x03\x12#\x0A\x16requested_cancellation\x18\x05 \x01(\x08B\x03\xE0A\x03\x12\x1D\x0A\x10progress_percent\x18\x06 \x01(\x05B\x03\xE0A\x03\"\xA7\x01\x0A\x14RenameFolderMetadata\x12V\x0A\x0Fcommon_metadata\x18\x01 \x01(\x0B2=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x18\x0A\x10source_folder_id\x18\x02 \x01(\x09\x12\x1D\x0A\x15destination_folder_id\x18\x03 \x01(\x09\"\x8A\x01\x0A\x1DDeleteFolderRecursiveMetadata\x12V\x0A\x0Fcommon_metadata\x18\x01 \x01(\x0B2=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x11\x0A\x09folder_id\x18\x02 \x01(\x09\"\xF8\x03\x0A\x0DStorageLayout\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x15\x0A\x08location\x18\x02 \x01(\x09B\x03\xE0A\x03\x12\x1A\x0A\x0Dlocation_type\x18\x03 \x01(\x09B\x03\xE0A\x03\x12d\x0A\x17custom_placement_config\x18\x04 \x01(\x0B2>.google.storage.control.v2.StorageLayout.CustomPlacementConfigB\x03\xE0A\x03\x12c\x0A\x16hierarchical_namespace\x18\x05 \x01(\x0B2>.google.storage.control.v2.StorageLayout.HierarchicalNamespaceB\x03\xE0A\x03\x1A/\x0A\x15CustomPlacementConfig\x12\x16\x0A\x0Edata_locations\x18\x01 \x03(\x09\x1A(\x0A\x15HierarchicalNamespace\x12\x0F\x0A\x07enabled\x18\x01 \x01(\x08:{\xEAAx\x0A\$storage.googleapis.com/StorageLayout\x121projects/{project}/buckets/{bucket}/storageLayout*\x0EstorageLayouts2\x0DstorageLayout\"\x86\x01\x0A\x17GetStorageLayoutRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$storage.googleapis.com/StorageLayout\x12\x0E\x0A\x06prefix\x18\x02 \x01(\x09\x12\x1F\x0A\x0Arequest_id\x18\x03 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"\xBF\x02\x0A\x0DManagedFolder\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12\x1B\x0A\x0Emetageneration\x18\x03 \x01(\x03B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03:\x91\x01\xEAA\x8D\x01\x0A\$storage.googleapis.com/ManagedFolder\x12Fprojects/{project}/buckets/{bucket}/managedFolders/{managed_folder=**}*\x0EmanagedFolders2\x0DmanagedFolder\"\x82\x02\x0A\x17GetManagedFolderRequest\x12:\x0A\x04name\x18\x06 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$storage.googleapis.com/ManagedFolder\x12\$\x0A\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\x0A\x1Bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x1F\x0A\x0Arequest_id\x18\x05 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01B\x1A\x0A\x18_if_metageneration_matchB\x1E\x0A\x1C_if_metageneration_not_match\"\xE2\x01\x0A\x1ACreateManagedFolderRequest\x12<\x0A\x06parent\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x12\$storage.googleapis.com/ManagedFolder\x12E\x0A\x0Emanaged_folder\x18\x02 \x01(\x0B2(.google.storage.control.v2.ManagedFolderB\x03\xE0A\x02\x12\x1E\x0A\x11managed_folder_id\x18\x03 \x01(\x09B\x03\xE0A\x02\x12\x1F\x0A\x0Arequest_id\x18\x04 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"\x9E\x02\x0A\x1ADeleteManagedFolderRequest\x12:\x0A\x04name\x18\x07 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$storage.googleapis.com/ManagedFolder\x12\$\x0A\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\x0A\x1Bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x17\x0A\x0Fallow_non_empty\x18\x05 \x01(\x08\x12\x1F\x0A\x0Arequest_id\x18\x06 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01B\x1A\x0A\x18_if_metageneration_matchB\x1E\x0A\x1C_if_metageneration_not_match\"\xC0\x01\x0A\x19ListManagedFoldersRequest\x12<\x0A\x06parent\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x12\$storage.googleapis.com/ManagedFolder\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06prefix\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x1F\x0A\x0Arequest_id\x18\x05 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"x\x0A\x1AListManagedFoldersResponse\x12A\x0A\x0Fmanaged_folders\x18\x01 \x03(\x0B2(.google.storage.control.v2.ManagedFolder\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"\xB0\x02\x0A\x1BCreateAnywhereCacheMetadata\x12V\x0A\x0Fcommon_metadata\x18\x01 \x01(\x0B2=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x1E\x0A\x11anywhere_cache_id\x18\x02 \x01(\x09H\x00\x88\x01\x01\x12\x11\x0A\x04zone\x18\x06 \x01(\x09H\x01\x88\x01\x01\x12+\x0A\x03ttl\x18\x03 \x01(\x0B2\x19.google.protobuf.DurationH\x02\x88\x01\x01\x12\x1D\x0A\x10admission_policy\x18\x05 \x01(\x09H\x03\x88\x01\x01B\x14\x0A\x12_anywhere_cache_idB\x07\x0A\x05_zoneB\x06\x0A\x04_ttlB\x13\x0A\x11_admission_policy\"\xB0\x02\x0A\x1BUpdateAnywhereCacheMetadata\x12V\x0A\x0Fcommon_metadata\x18\x01 \x01(\x0B2=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x1E\x0A\x11anywhere_cache_id\x18\x02 \x01(\x09H\x00\x88\x01\x01\x12\x11\x0A\x04zone\x18\x05 \x01(\x09H\x01\x88\x01\x01\x12+\x0A\x03ttl\x18\x03 \x01(\x0B2\x19.google.protobuf.DurationH\x02\x88\x01\x01\x12\x1D\x0A\x10admission_policy\x18\x04 \x01(\x09H\x03\x88\x01\x01B\x14\x0A\x12_anywhere_cache_idB\x07\x0A\x05_zoneB\x06\x0A\x04_ttlB\x13\x0A\x11_admission_policy\"\xA5\x03\x0A\x0DAnywhereCache\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x05\x12\x11\x0A\x04zone\x18\x0A \x01(\x09B\x03\xE0A\x05\x12&\x0A\x03ttl\x18\x03 \x01(\x0B2\x19.google.protobuf.Duration\x12\x18\x0A\x10admission_policy\x18\x09 \x01(\x09\x12\x12\x0A\x05state\x18\x05 \x01(\x09B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x07 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x1B\x0A\x0Epending_update\x18\x08 \x01(\x08B\x03\xE0A\x03:\x8E\x01\xEAA\x8A\x01\x0A\$storage.googleapis.com/AnywhereCache\x12Cprojects/{project}/buckets/{bucket}/anywhereCaches/{anywhere_cache}*\x0EanywhereCaches2\x0DanywhereCache\"\xC2\x01\x0A\x1ACreateAnywhereCacheRequest\x12<\x0A\x06parent\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x12\$storage.googleapis.com/AnywhereCache\x12E\x0A\x0Eanywhere_cache\x18\x03 \x01(\x0B2(.google.storage.control.v2.AnywhereCacheB\x03\xE0A\x02\x12\x1F\x0A\x0Arequest_id\x18\x04 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"\xBA\x01\x0A\x1AUpdateAnywhereCacheRequest\x12E\x0A\x0Eanywhere_cache\x18\x01 \x01(\x0B2(.google.storage.control.v2.AnywhereCacheB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12\x1F\x0A\x0Arequest_id\x18\x03 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"z\x0A\x1BDisableAnywhereCacheRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$storage.googleapis.com/AnywhereCache\x12\x1F\x0A\x0Arequest_id\x18\x02 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"x\x0A\x19PauseAnywhereCacheRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$storage.googleapis.com/AnywhereCache\x12\x1F\x0A\x0Arequest_id\x18\x02 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"y\x0A\x1AResumeAnywhereCacheRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$storage.googleapis.com/AnywhereCache\x12\x1F\x0A\x0Arequest_id\x18\x02 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"v\x0A\x17GetAnywhereCacheRequest\x12:\x0A\x04name\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x0A\$storage.googleapis.com/AnywhereCache\x12\x1F\x0A\x0Arequest_id\x18\x02 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"\xA1\x01\x0A\x19ListAnywhereCachesRequest\x12<\x0A\x06parent\x18\x01 \x01(\x09B,\xE0A\x02\xFAA&\x12\$storage.googleapis.com/AnywhereCache\x12\x11\x0A\x09page_size\x18\x02 \x01(\x05\x12\x12\x0A\x0Apage_token\x18\x03 \x01(\x09\x12\x1F\x0A\x0Arequest_id\x18\x04 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"x\x0A\x1AListAnywhereCachesResponse\x12A\x0A\x0Fanywhere_caches\x18\x01 \x03(\x0B2(.google.storage.control.v2.AnywhereCache\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"\x8E\x0E\x0A\x12IntelligenceConfig\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12X\x0A\x0Eedition_config\x18\x02 \x01(\x0E2;.google.storage.control.v2.IntelligenceConfig.EditionConfigB\x03\xE0A\x01\x124\x0A\x0Bupdate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12I\x0A\x06filter\x18\x04 \x01(\x0B24.google.storage.control.v2.IntelligenceConfig.FilterB\x03\xE0A\x01\x12u\x0A\x1Deffective_intelligence_config\x18\x05 \x01(\x0B2I.google.storage.control.v2.IntelligenceConfig.EffectiveIntelligenceConfigB\x03\xE0A\x03\x12O\x0A\x0Ctrial_config\x18\x07 \x01(\x0B29.google.storage.control.v2.IntelligenceConfig.TrialConfig\x1A\xFC\x04\x0A\x06Filter\x12v\x0A included_cloud_storage_locations\x18\x01 \x01(\x0B2J.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageLocationsH\x00\x12v\x0A excluded_cloud_storage_locations\x18\x02 \x01(\x0B2J.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageLocationsH\x00\x12r\x0A\x1Eincluded_cloud_storage_buckets\x18\x03 \x01(\x0B2H.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageBucketsH\x01\x12r\x0A\x1Eexcluded_cloud_storage_buckets\x18\x04 \x01(\x0B2H.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageBucketsH\x01\x1A/\x0A\x15CloudStorageLocations\x12\x16\x0A\x09locations\x18\x01 \x03(\x09B\x03\xE0A\x01\x1A5\x0A\x13CloudStorageBuckets\x12\x1E\x0A\x11bucket_id_regexes\x18\x01 \x03(\x09B\x03\xE0A\x01B\x19\x0A\x17cloud_storage_locationsB\x17\x0A\x15cloud_storage_buckets\x1A\x8A\x02\x0A\x1BEffectiveIntelligenceConfig\x12z\x0A\x11effective_edition\x18\x01 \x01(\x0E2Z.google.storage.control.v2.IntelligenceConfig.EffectiveIntelligenceConfig.EffectiveEditionB\x03\xE0A\x03\x12 \x0A\x13intelligence_config\x18\x02 \x01(\x09B\x03\xE0A\x03\"M\x0A\x10EffectiveEdition\x12!\x0A\x1DEFFECTIVE_EDITION_UNSPECIFIED\x10\x00\x12\x08\x0A\x04NONE\x10\x01\x12\x0C\x0A\x08STANDARD\x10\x02\x1AC\x0A\x0BTrialConfig\x124\x0A\x0Bexpire_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\"c\x0A\x0DEditionConfig\x12\x1E\x0A\x1AEDITION_CONFIG_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07INHERIT\x10\x01\x12\x0C\x0A\x08DISABLED\x10\x02\x12\x0C\x0A\x08STANDARD\x10\x03\x12\x09\x0A\x05TRIAL\x10\x05:\x8B\x02\xEAA\x87\x02\x0A)storage.googleapis.com/IntelligenceConfig\x128folders/{folder}/locations/{location}/intelligenceConfig\x12;organizations/{org}/locations/{location}/intelligenceConfig\x12:projects/{project}/locations/{location}/intelligenceConfig*\x13intelligenceConfigs2\x12intelligenceConfig\"\xD5\x01\x0A+UpdateOrganizationIntelligenceConfigRequest\x12O\x0A\x13intelligence_config\x18\x01 \x01(\x0B2-.google.storage.control.v2.IntelligenceConfigB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12\x1F\x0A\x0Arequest_id\x18\x03 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"\xCF\x01\x0A%UpdateFolderIntelligenceConfigRequest\x12O\x0A\x13intelligence_config\x18\x01 \x01(\x0B2-.google.storage.control.v2.IntelligenceConfigB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12\x1F\x0A\x0Arequest_id\x18\x03 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"\xD0\x01\x0A&UpdateProjectIntelligenceConfigRequest\x12O\x0A\x13intelligence_config\x18\x01 \x01(\x0B2-.google.storage.control.v2.IntelligenceConfigB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\x12\x1F\x0A\x0Arequest_id\x18\x03 \x01(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x01\"k\x0A(GetOrganizationIntelligenceConfigRequest\x12?\x0A\x04name\x18\x01 \x01(\x09B1\xE0A\x02\xFAA+\x0A)storage.googleapis.com/IntelligenceConfig\"e\x0A\"GetFolderIntelligenceConfigRequest\x12?\x0A\x04name\x18\x01 \x01(\x09B1\xE0A\x02\xFAA+\x0A)storage.googleapis.com/IntelligenceConfig\"f\x0A#GetProjectIntelligenceConfigRequest\x12?\x0A\x04name\x18\x01 \x01(\x09B1\xE0A\x02\xFAA+\x0A)storage.googleapis.com/IntelligenceConfig\"\xBE \x0A\x13IntelligenceFinding\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12\x18\x0A\x0Bdescription\x18\x02 \x01(\x09B\x03\xE0A\x03\x129\x0A\x04type\x18\x03 \x01(\x0E2&.google.storage.control.v2.FindingTypeB\x03\xE0A\x03\x12A\x0A\x08category\x18\x04 \x01(\x0E2*.google.storage.control.v2.FindingCategoryB\x03\xE0A\x03\x12A\x0A\x08severity\x18\x05 \x01(\x0E2*.google.storage.control.v2.FindingSeverityB\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x07 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x1C\x0A\x0Ftarget_resource\x18\x08 \x01(\x09B\x03\xE0A\x03\x12!\x0A\x14associated_resources\x18\x09 \x03(\x09B\x03\xE0A\x03\x126\x0A\x12observation_period\x18\x0A \x01(\x0B2\x15.google.type.IntervalB\x03\xE0A\x03\x12\x97\x01\x0A.coldline_and_archival_storage_operations_spike\x18\x0B \x01(\x0B2X.google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpikeB\x03\xE0A\x03H\x00\x12m\x0A\x18throttled_requests_spike\x18\x0C \x01(\x0B2D.google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpikeB\x03\xE0A\x03H\x00\x12o\x0A\x19cross_region_egress_spike\x18\x0D \x01(\x0B2E.google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpikeB\x03\xE0A\x03H\x00\x12q\x0A\x1Astorage_growth_above_trend\x18\x0E \x01(\x0B2F.google.storage.control.v2.IntelligenceFinding.StorageGrowthAboveTrendB\x03\xE0A\x03H\x00\x1A\x89\x07\x0A)ColdlineAndArchivalStorageOperationsSpike\x12 \x0A\x13percentage_increase\x18\x01 \x01(\x01B\x03\xE0A\x03\x12#\x0A\x16total_operations_count\x18\x02 \x01(\x03B\x03\xE0A\x03\x12\x85\x01\x0A\x0Btop_buckets\x18\x03 \x03(\x0B2k.google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike.BucketContributionB\x03\xE0A\x03\x1A\x8C\x05\x0A\x12BucketContribution\x125\x0A\x06bucket\x18\x01 \x01(\x09B%\xE0A\x03\xFAA\x1F\x0A\x1Dstorage.googleapis.com/Bucket\x12 \x0A\x13percentage_increase\x18\x02 \x01(\x01B\x03\xE0A\x03\x12#\x0A\x16total_operations_count\x18\x03 \x01(\x03B\x03\xE0A\x03\x12\x95\x01\x0A\x0Ccontribution\x18\x04 \x01(\x0B2x.google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike.BucketContribution.ContributionB\x03\xE0A\x03H\x00\x12(\x0A\x05error\x18\x05 \x01(\x0B2\x12.google.rpc.StatusB\x03\xE0A\x03H\x00\x1A\xAA\x02\x0A\x0CContribution\x12\xA7\x01\x0A\x0Ctop_prefixes\x18\x01 \x03(\x0B2\x8B\x01.google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike.BucketContribution.Contribution.PrefixContributionB\x03\xE0A\x03\x1Ap\x0A\x12PrefixContribution\x12\x13\x0A\x06prefix\x18\x01 \x01(\x09B\x03\xE0A\x03\x12 \x0A\x13percentage_increase\x18\x02 \x01(\x01B\x03\xE0A\x03\x12#\x0A\x16total_operations_count\x18\x03 \x01(\x03B\x03\xE0A\x03B\x09\x0A\x07details\x1A\xAF\x06\x0A\x16CrossRegionEgressSpike\x12\x1F\x0A\x12total_egress_bytes\x18\x01 \x01(\x03B\x03\xE0A\x03\x12 \x0A\x13percentage_increase\x18\x02 \x01(\x01B\x03\xE0A\x03\x12r\x0A\x0Btop_buckets\x18\x03 \x03(\x0B2X.google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike.BucketContributionB\x03\xE0A\x03\x1A\xDD\x04\x0A\x12BucketContribution\x125\x0A\x06bucket\x18\x01 \x01(\x09B%\xE0A\x03\xFAA\x1F\x0A\x1Dstorage.googleapis.com/Bucket\x12\x1F\x0A\x12total_egress_bytes\x18\x02 \x01(\x03B\x03\xE0A\x03\x12 \x0A\x13percentage_increase\x18\x03 \x01(\x01B\x03\xE0A\x03\x12\x82\x01\x0A\x0Ccontribution\x18\x04 \x01(\x0B2e.google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike.BucketContribution.ContributionB\x03\xE0A\x03H\x00\x12(\x0A\x05error\x18\x05 \x01(\x0B2\x12.google.rpc.StatusB\x03\xE0A\x03H\x00\x1A\x92\x02\x0A\x0CContribution\x12\x93\x01\x0A\x0Ctop_prefixes\x18\x01 \x03(\x0B2x.google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike.BucketContribution.Contribution.PrefixContributionB\x03\xE0A\x03\x1Al\x0A\x12PrefixContribution\x12\x13\x0A\x06prefix\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x1F\x0A\x12total_egress_bytes\x18\x02 \x01(\x03B\x03\xE0A\x03\x12 \x0A\x13percentage_increase\x18\x03 \x01(\x01B\x03\xE0A\x03B\x09\x0A\x07details\x1A\xAB\x06\x0A\x15ThrottledRequestSpike\x12\x1F\x0A\x12throttled_requests\x18\x01 \x01(\x03B\x03\xE0A\x03\x12 \x0A\x13percentage_increase\x18\x02 \x01(\x01B\x03\xE0A\x03\x12q\x0A\x0Btop_buckets\x18\x03 \x03(\x0B2W.google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike.BucketContributionB\x03\xE0A\x03\x1A\xDB\x04\x0A\x12BucketContribution\x125\x0A\x06bucket\x18\x01 \x01(\x09B%\xE0A\x03\xFAA\x1F\x0A\x1Dstorage.googleapis.com/Bucket\x12\x1F\x0A\x12throttled_requests\x18\x02 \x01(\x03B\x03\xE0A\x03\x12 \x0A\x13percentage_increase\x18\x03 \x01(\x01B\x03\xE0A\x03\x12\x81\x01\x0A\x0Ccontribution\x18\x04 \x01(\x0B2d.google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike.BucketContribution.ContributionB\x03\xE0A\x03H\x00\x12(\x0A\x05error\x18\x05 \x01(\x0B2\x12.google.rpc.StatusB\x03\xE0A\x03H\x00\x1A\x91\x02\x0A\x0CContribution\x12\x92\x01\x0A\x0Ctop_prefixes\x18\x01 \x03(\x0B2w.google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike.BucketContribution.Contribution.PrefixContributionB\x03\xE0A\x03\x1Al\x0A\x12PrefixContribution\x12\x13\x0A\x06prefix\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x1F\x0A\x12throttled_requests\x18\x02 \x01(\x03B\x03\xE0A\x03\x12 \x0A\x13percentage_increase\x18\x03 \x01(\x01B\x03\xE0A\x03B\x09\x0A\x07details\x1A\xA7\x03\x0A\x17StorageGrowthAboveTrend\x12'\x0A\x1Atotal_storage_growth_bytes\x18\x01 \x01(\x03B\x03\xE0A\x03\x12 \x0A\x13percentage_increase\x18\x02 \x01(\x01B\x03\xE0A\x03\x12s\x0A\x0Btop_buckets\x18\x03 \x03(\x0B2Y.google.storage.control.v2.IntelligenceFinding.StorageGrowthAboveTrend.BucketContributionB\x03\xE0A\x03\x1A\xCB\x01\x0A\x12BucketContribution\x125\x0A\x06bucket\x18\x01 \x01(\x09B%\xE0A\x03\xFAA\x1F\x0A\x1Dstorage.googleapis.com/Bucket\x12'\x0A\x1Atotal_storage_growth_bytes\x18\x02 \x01(\x03B\x03\xE0A\x03\x12 \x0A\x13percentage_increase\x18\x03 \x01(\x01B\x03\xE0A\x03\x12(\x0A\x05error\x18\x05 \x01(\x0B2\x12.google.rpc.StatusB\x03\xE0A\x03H\x00B\x09\x0A\x07details:\xB0\x01\xEAA\xAC\x01\x0A*storage.googleapis.com/IntelligenceFinding\x12Sprojects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}*\x14intelligenceFindings2\x13intelligenceFindingB\x1E\x0A\x1Cintelligence_finding_details\"\x8D\x03\x0A\x1BIntelligenceFindingRevision\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12E\x0A\x08snapshot\x18\x02 \x01(\x0B2..google.storage.control.v2.IntelligenceFindingB\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03:\xDD\x01\xEAA\xD9\x01\x0A2storage.googleapis.com/IntelligenceFindingRevision\x12hprojects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}/revisions/{revision}*\x1CintelligenceFindingRevisions2\x1BintelligenceFindingRevision\"a\x0A\x1DGetIntelligenceFindingRequest\x12@\x0A\x04name\x18\x01 \x01(\x09B2\xE0A\x02\xFAA,\x0A*storage.googleapis.com/IntelligenceFinding\"\xAB\x01\x0A\x1FListIntelligenceFindingsRequest\x12B\x0A\x06parent\x18\x01 \x01(\x09B2\xE0A\x02\xFAA,\x12*storage.googleapis.com/IntelligenceFinding\x12\x13\x0A\x06filter\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x16\x0A\x09page_size\x18\x03 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x04 \x01(\x09B\x03\xE0A\x01\"\x8A\x01\x0A ListIntelligenceFindingsResponse\x12M\x0A\x15intelligence_findings\x18\x01 \x03(\x0B2..google.storage.control.v2.IntelligenceFinding\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"\xB7\x02\x0A\$SummarizeIntelligenceFindingsRequest\x12\x13\x0A\x06parent\x18\x01 \x01(\x09B\x03\xE0A\x02\x12j\x0A\x0Eresource_scope\x18\x02 \x01(\x0E2M.google.storage.control.v2.SummarizeIntelligenceFindingsRequest.ResourceScopeB\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x16\x0A\x09page_size\x18\x04 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x05 \x01(\x09B\x03\xE0A\x01\"H\x0A\x0DResourceScope\x12\x1E\x0A\x1ARESOURCE_SCOPE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06PARENT\x10\x01\x12\x0B\x0A\x07PROJECT\x10\x02\"\x86\x01\x0A%SummarizeIntelligenceFindingsResponse\x12D\x0A\x11finding_summaries\x18\x01 \x03(\x0B2).google.storage.control.v2.FindingSummary\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"q\x0A%GetIntelligenceFindingRevisionRequest\x12H\x0A\x04name\x18\x01 \x01(\x09B:\xE0A\x02\xFAA4\x0A2storage.googleapis.com/IntelligenceFindingRevision\"\xA6\x01\x0A'ListIntelligenceFindingRevisionsRequest\x12J\x0A\x06parent\x18\x01 \x01(\x09B:\xE0A\x02\xFAA4\x122storage.googleapis.com/IntelligenceFindingRevision\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\"\xA3\x01\x0A(ListIntelligenceFindingRevisionsResponse\x12^\x0A\x1Eintelligence_finding_revisions\x18\x01 \x03(\x0B26.google.storage.control.v2.IntelligenceFindingRevision\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"\xBF\x05\x0A\x0EFindingSummary\x129\x0A\x04type\x18\x01 \x01(\x0E2&.google.storage.control.v2.FindingTypeB\x03\xE0A\x03\x12A\x0A\x08category\x18\x02 \x01(\x0E2*.google.storage.control.v2.FindingCategoryB\x03\xE0A\x03\x12\x1C\x0A\x0Ftarget_resource\x18\x04 \x01(\x09B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12A\x0A\x08severity\x18\x07 \x01(\x0E2*.google.storage.control.v2.FindingSeverityB\x03\xE0A\x03\x12V\x0A\x0Fsummary_details\x18\x08 \x03(\x0B28.google.storage.control.v2.FindingSummary.SummaryDetailsB\x03\xE0A\x03\x1A\x89\x02\x0A\x0ESummaryDetails\x12\x0F\x0A\x05count\x18\x01 \x01(\x03H\x00\x12\x14\x0A\x0Apercentage\x18\x02 \x01(\x02H\x00\x12a\x0A\x0Dresource_type\x18\x03 \x01(\x0E2E.google.storage.control.v2.FindingSummary.SummaryDetails.ResourceTypeB\x03\xE0A\x03\x12\x18\x0A\x0Bdescription\x18\x04 \x01(\x09B\x03\xE0A\x03\"F\x0A\x0CResourceType\x12\x1D\x0A\x19RESOURCE_TYPE_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07PROJECT\x10\x01\x12\x0A\x0A\x06BUCKET\x10\x02B\x0B\x0A\x09magnitude*\xEF\x01\x0A\x0BFindingType\x12\x1C\x0A\x18FINDING_TYPE_UNSPECIFIED\x10\x00\x12?\x0A;FINDING_TYPE_COLDLINE_AND_ARCHIVAL_STORAGE_OPERATIONS_SPIKE\x10\x01\x12(\x0A\$FINDING_TYPE_THROTTLED_REQUEST_SPIKE\x10\x02\x12*\x0A&FINDING_TYPE_CROSS_REGION_EGRESS_SPIKE\x10\x03\x12+\x0A'FINDING_TYPE_STORAGE_GROWTH_ABOVE_TREND\x10\x04*{\x0A\x0FFindingCategory\x12 \x0A\x1CFINDING_CATEGORY_UNSPECIFIED\x10\x00\x12\$\x0A FINDING_CATEGORY_DATA_MANAGEMENT\x10\x01\x12 \x0A\x1CFINDING_CATEGORY_PERFORMANCE\x10\x02*R\x0A\x0FFindingSeverity\x12 \x0A\x1CFINDING_SEVERITY_UNSPECIFIED\x10\x00\x12\x1D\x0A\x19FINDING_SEVERITY_CRITICAL\x10\x012\x847\x0A\x0EStorageControl\x12\x9A\x01\x0A\x0CCreateFolder\x12..google.storage.control.v2.CreateFolderRequest\x1A!.google.storage.control.v2.Folder\"7\xDAA\x17parent,folder,folder_id\x8A\xD3\xE4\x93\x02\x17\x12\x15\x0A\x06parent\x12\x0B{bucket=**}\x12\x8F\x01\x0A\x0CDeleteFolder\x12..google.storage.control.v2.DeleteFolderRequest\x1A\x16.google.protobuf.Empty\"7\xDAA\x04name\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\x94\x01\x0A\x09GetFolder\x12+.google.storage.control.v2.GetFolderRequest\x1A!.google.storage.control.v2.Folder\"7\xDAA\x04name\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\x94\x01\x0A\x0BListFolders\x12-.google.storage.control.v2.ListFoldersRequest\x1A..google.storage.control.v2.ListFoldersResponse\"&\xDAA\x06parent\x8A\xD3\xE4\x93\x02\x17\x12\x15\x0A\x06parent\x12\x0B{bucket=**}\x12\xCD\x01\x0A\x0CRenameFolder\x12..google.storage.control.v2.RenameFolderRequest\x1A\x1D.google.longrunning.Operation\"n\xCAA\x1E\x0A\x06Folder\x12\x14RenameFolderMetadata\xDAA\x1Aname,destination_folder_id\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xE1\x01\x0A\x15DeleteFolderRecursive\x127.google.storage.control.v2.DeleteFolderRecursiveRequest\x1A\x1D.google.longrunning.Operation\"p\xCAA6\x0A\x15google.protobuf.Empty\x12\x1DDeleteFolderRecursiveMetadata\xDAA\x04name\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xA9\x01\x0A\x10GetStorageLayout\x122.google.storage.control.v2.GetStorageLayoutRequest\x1A(.google.storage.control.v2.StorageLayout\"7\xDAA\x04name\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xBF\x01\x0A\x13CreateManagedFolder\x125.google.storage.control.v2.CreateManagedFolderRequest\x1A(.google.storage.control.v2.ManagedFolder\"G\xDAA'parent,managed_folder,managed_folder_id\x8A\xD3\xE4\x93\x02\x17\x12\x15\x0A\x06parent\x12\x0B{bucket=**}\x12\x9D\x01\x0A\x13DeleteManagedFolder\x125.google.storage.control.v2.DeleteManagedFolderRequest\x1A\x16.google.protobuf.Empty\"7\xDAA\x04name\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xA9\x01\x0A\x10GetManagedFolder\x122.google.storage.control.v2.GetManagedFolderRequest\x1A(.google.storage.control.v2.ManagedFolder\"7\xDAA\x04name\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xA9\x01\x0A\x12ListManagedFolders\x124.google.storage.control.v2.ListManagedFoldersRequest\x1A5.google.storage.control.v2.ListManagedFoldersResponse\"&\xDAA\x06parent\x8A\xD3\xE4\x93\x02\x17\x12\x15\x0A\x06parent\x12\x0B{bucket=**}\x12\xD1\x01\x0A\x13CreateAnywhereCache\x125.google.storage.control.v2.CreateAnywhereCacheRequest\x1A\x1D.google.longrunning.Operation\"d\xCAA,\x0A\x0DAnywhereCache\x12\x1BCreateAnywhereCacheMetadata\xDAA\x15parent,anywhere_cache\x8A\xD3\xE4\x93\x02\x17\x12\x15\x0A\x06parent\x12\x0B{bucket=**}\x12\xF9\x01\x0A\x13UpdateAnywhereCache\x125.google.storage.control.v2.UpdateAnywhereCacheRequest\x1A\x1D.google.longrunning.Operation\"\x8B\x01\xCAA,\x0A\x0DAnywhereCache\x12\x1BUpdateAnywhereCacheMetadata\xDAA\x1Aanywhere_cache,update_mask\x8A\xD3\xE4\x93\x029\x127\x0A\x13anywhere_cache.name\x12 {bucket=projects/*/buckets/*}/**\x12\xB1\x01\x0A\x14DisableAnywhereCache\x126.google.storage.control.v2.DisableAnywhereCacheRequest\x1A(.google.storage.control.v2.AnywhereCache\"7\xDAA\x04name\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xAD\x01\x0A\x12PauseAnywhereCache\x124.google.storage.control.v2.PauseAnywhereCacheRequest\x1A(.google.storage.control.v2.AnywhereCache\"7\xDAA\x04name\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xAF\x01\x0A\x13ResumeAnywhereCache\x125.google.storage.control.v2.ResumeAnywhereCacheRequest\x1A(.google.storage.control.v2.AnywhereCache\"7\xDAA\x04name\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xA9\x01\x0A\x10GetAnywhereCache\x122.google.storage.control.v2.GetAnywhereCacheRequest\x1A(.google.storage.control.v2.AnywhereCache\"7\xDAA\x04name\x8A\xD3\xE4\x93\x02*\x12(\x0A\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xA9\x01\x0A\x12ListAnywhereCaches\x124.google.storage.control.v2.ListAnywhereCachesRequest\x1A5.google.storage.control.v2.ListAnywhereCachesResponse\"&\xDAA\x06parent\x8A\xD3\xE4\x93\x02\x17\x12\x15\x0A\x06parent\x12\x0B{bucket=**}\x12\xD2\x01\x0A\x1CGetProjectIntelligenceConfig\x12>.google.storage.control.v2.GetProjectIntelligenceConfigRequest\x1A-.google.storage.control.v2.IntelligenceConfig\"C\xDAA\x04name\x82\xD3\xE4\x93\x026\x124/v2/{name=projects/*/locations/*/intelligenceConfig}\x12\x9D\x02\x0A\x1FUpdateProjectIntelligenceConfig\x12A.google.storage.control.v2.UpdateProjectIntelligenceConfigRequest\x1A-.google.storage.control.v2.IntelligenceConfig\"\x87\x01\xDAA\x1Fintelligence_config,update_mask\x82\xD3\xE4\x93\x02_2H/v2/{intelligence_config.name=projects/*/locations/*/intelligenceConfig}:\x13intelligence_config\x12\xCF\x01\x0A\x1BGetFolderIntelligenceConfig\x12=.google.storage.control.v2.GetFolderIntelligenceConfigRequest\x1A-.google.storage.control.v2.IntelligenceConfig\"B\xDAA\x04name\x82\xD3\xE4\x93\x025\x123/v2/{name=folders/*/locations/*/intelligenceConfig}\x12\x9A\x02\x0A\x1EUpdateFolderIntelligenceConfig\x12@.google.storage.control.v2.UpdateFolderIntelligenceConfigRequest\x1A-.google.storage.control.v2.IntelligenceConfig\"\x86\x01\xDAA\x1Fintelligence_config,update_mask\x82\xD3\xE4\x93\x02^2G/v2/{intelligence_config.name=folders/*/locations/*/intelligenceConfig}:\x13intelligence_config\x12\xE1\x01\x0A!GetOrganizationIntelligenceConfig\x12C.google.storage.control.v2.GetOrganizationIntelligenceConfigRequest\x1A-.google.storage.control.v2.IntelligenceConfig\"H\xDAA\x04name\x82\xD3\xE4\x93\x02;\x129/v2/{name=organizations/*/locations/*/intelligenceConfig}\x12\xAC\x02\x0A\$UpdateOrganizationIntelligenceConfig\x12F.google.storage.control.v2.UpdateOrganizationIntelligenceConfigRequest\x1A-.google.storage.control.v2.IntelligenceConfig\"\x8C\x01\xDAA\x1Fintelligence_config,update_mask\x82\xD3\xE4\x93\x02d2M/v2/{intelligence_config.name=organizations/*/locations/*/intelligenceConfig}:\x13intelligence_config\x12\xA3\x01\x0A\x0CGetIamPolicy\x12\".google.iam.v1.GetIamPolicyRequest\x1A\x15.google.iam.v1.Policy\"X\xDAA\x08resource\x8A\xD3\xE4\x93\x02G\x12\x17\x0A\x08resource\x12\x0B{bucket=**}\x12,\x0A\x08resource\x12 {bucket=projects/*/buckets/*}/**\x12\xAA\x01\x0A\x0CSetIamPolicy\x12\".google.iam.v1.SetIamPolicyRequest\x1A\x15.google.iam.v1.Policy\"_\xDAA\x0Fresource,policy\x8A\xD3\xE4\x93\x02G\x12\x17\x0A\x08resource\x12\x0B{bucket=**}\x12,\x0A\x08resource\x12 {bucket=projects/*/buckets/*}/**\x12\x96\x02\x0A\x12TestIamPermissions\x12(.google.iam.v1.TestIamPermissionsRequest\x1A).google.iam.v1.TestIamPermissionsResponse\"\xAA\x01\xDAA\x14resource,permissions\x8A\xD3\xE4\x93\x02\x8C\x01\x12\x17\x0A\x08resource\x12\x0B{bucket=**}\x124\x0A\x08resource\x12({bucket=projects/*/buckets/*}/objects/**\x12;\x0A\x08resource\x12/{bucket=projects/*/buckets/*}/managedFolders/**\x12\xCB\x01\x0A\x16GetIntelligenceFinding\x128.google.storage.control.v2.GetIntelligenceFindingRequest\x1A..google.storage.control.v2.IntelligenceFinding\"G\xDAA\x04name\x82\xD3\xE4\x93\x02:\x128/v2/{name=projects/*/locations/*/intelligenceFindings/*}\x12\xDE\x01\x0A\x18ListIntelligenceFindings\x12:.google.storage.control.v2.ListIntelligenceFindingsRequest\x1A;.google.storage.control.v2.ListIntelligenceFindingsResponse\"I\xDAA\x06parent\x82\xD3\xE4\x93\x02:\x128/v2/{parent=projects/*/locations/*}/intelligenceFindings\x12\x89\x03\x0A\x1DSummarizeIntelligenceFindings\x12?.google.storage.control.v2.SummarizeIntelligenceFindingsRequest\x1A@.google.storage.control.v2.SummarizeIntelligenceFindingsResponse\"\xE4\x01\xDAA\x06parent\x82\xD3\xE4\x93\x02\xD4\x01\x12B/v2/{parent=projects/*/locations/*}/intelligenceFindings:summarizeZC\x12A/v2/{parent=folders/*/locations/*}/intelligenceFindings:summarizeZI\x12G/v2/{parent=organizations/*/locations/*}/intelligenceFindings:summarize\x12\xEF\x01\x0A\x1EGetIntelligenceFindingRevision\x12@.google.storage.control.v2.GetIntelligenceFindingRevisionRequest\x1A6.google.storage.control.v2.IntelligenceFindingRevision\"S\xDAA\x04name\x82\xD3\xE4\x93\x02F\x12D/v2/{name=projects/*/locations/*/intelligenceFindings/*/revisions/*}\x12\x82\x02\x0A ListIntelligenceFindingRevisions\x12B.google.storage.control.v2.ListIntelligenceFindingRevisionsRequest\x1AC.google.storage.control.v2.ListIntelligenceFindingRevisionsResponse\"U\xDAA\x06parent\x82\xD3\xE4\x93\x02F\x12D/v2/{parent=projects/*/locations/*/intelligenceFindings/*}/revisions\x1A\xA7\x02\xCAA\x16storage.googleapis.com\xD2A\x8A\x02https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloud-platform.read-only,https://www.googleapis.com/auth/devstorage.full_control,https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/devstorage.read_writeB\xA6\x02\x0A\x1Dcom.google.storage.control.v2B\x13StorageControlProtoP\x01Z=cloud.google.com/go/storage/control/apiv2/controlpb;controlpb\xAA\x02\x1FGoogle.Cloud.Storage.Control.V2\xCA\x02\x1FGoogle\\Cloud\\Storage\\Control\\V2\xEA\x02#Google::Cloud::Storage::Control::V2\xEAAD\x0A\x1Dstorage.googleapis.com/Bucket\x12#projects/{project}/buckets/{bucket}b\x06proto3" , true); static::$is_initialized = true; diff --git a/StorageControl/samples/V2/StorageControlClient/get_intelligence_finding.php b/StorageControl/samples/V2/StorageControlClient/get_intelligence_finding.php new file mode 100644 index 000000000000..a84e412b4c49 --- /dev/null +++ b/StorageControl/samples/V2/StorageControlClient/get_intelligence_finding.php @@ -0,0 +1,78 @@ +setName($formattedName); + + // Call the API and handle any network failures. + try { + /** @var IntelligenceFinding $response */ + $response = $storageControlClient->getIntelligenceFinding($request); + printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString()); + } catch (ApiException $ex) { + printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage()); + } +} + +/** + * Helper to execute the sample. + * + * This sample has been automatically generated and should be regarded as a code + * template only. It will require modifications to work: + * - It may require correct/in-range values for request initialization. + * - It may require specifying regional endpoints when creating the service client, + * please see the apiEndpoint client configuration option for more details. + */ +function callSample(): void +{ + $formattedName = StorageControlClient::intelligenceFindingName( + '[PROJECT]', + '[LOCATION]', + '[INTELLIGENCE_FINDING]' + ); + + get_intelligence_finding_sample($formattedName); +} +// [END storage_v2_generated_StorageControl_GetIntelligenceFinding_sync] diff --git a/StorageControl/samples/V2/StorageControlClient/get_intelligence_finding_revision.php b/StorageControl/samples/V2/StorageControlClient/get_intelligence_finding_revision.php new file mode 100644 index 000000000000..f30d3ee03a24 --- /dev/null +++ b/StorageControl/samples/V2/StorageControlClient/get_intelligence_finding_revision.php @@ -0,0 +1,79 @@ +setName($formattedName); + + // Call the API and handle any network failures. + try { + /** @var IntelligenceFindingRevision $response */ + $response = $storageControlClient->getIntelligenceFindingRevision($request); + printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString()); + } catch (ApiException $ex) { + printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage()); + } +} + +/** + * Helper to execute the sample. + * + * This sample has been automatically generated and should be regarded as a code + * template only. It will require modifications to work: + * - It may require correct/in-range values for request initialization. + * - It may require specifying regional endpoints when creating the service client, + * please see the apiEndpoint client configuration option for more details. + */ +function callSample(): void +{ + $formattedName = StorageControlClient::intelligenceFindingRevisionName( + '[PROJECT]', + '[LOCATION]', + '[INTELLIGENCE_FINDING]', + '[REVISION]' + ); + + get_intelligence_finding_revision_sample($formattedName); +} +// [END storage_v2_generated_StorageControl_GetIntelligenceFindingRevision_sync] diff --git a/StorageControl/samples/V2/StorageControlClient/list_intelligence_finding_revisions.php b/StorageControl/samples/V2/StorageControlClient/list_intelligence_finding_revisions.php new file mode 100644 index 000000000000..6f49c5f48f3e --- /dev/null +++ b/StorageControl/samples/V2/StorageControlClient/list_intelligence_finding_revisions.php @@ -0,0 +1,83 @@ +setParent($formattedParent); + + // Call the API and handle any network failures. + try { + /** @var PagedListResponse $response */ + $response = $storageControlClient->listIntelligenceFindingRevisions($request); + + /** @var IntelligenceFindingRevision $element */ + foreach ($response as $element) { + printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString()); + } + } catch (ApiException $ex) { + printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage()); + } +} + +/** + * Helper to execute the sample. + * + * This sample has been automatically generated and should be regarded as a code + * template only. It will require modifications to work: + * - It may require correct/in-range values for request initialization. + * - It may require specifying regional endpoints when creating the service client, + * please see the apiEndpoint client configuration option for more details. + */ +function callSample(): void +{ + $formattedParent = StorageControlClient::intelligenceFindingName( + '[PROJECT]', + '[LOCATION]', + '[INTELLIGENCE_FINDING]' + ); + + list_intelligence_finding_revisions_sample($formattedParent); +} +// [END storage_v2_generated_StorageControl_ListIntelligenceFindingRevisions_sync] diff --git a/StorageControl/samples/V2/StorageControlClient/list_intelligence_findings.php b/StorageControl/samples/V2/StorageControlClient/list_intelligence_findings.php new file mode 100644 index 000000000000..e6b1689b980a --- /dev/null +++ b/StorageControl/samples/V2/StorageControlClient/list_intelligence_findings.php @@ -0,0 +1,78 @@ +setParent($formattedParent); + + // Call the API and handle any network failures. + try { + /** @var PagedListResponse $response */ + $response = $storageControlClient->listIntelligenceFindings($request); + + /** @var IntelligenceFinding $element */ + foreach ($response as $element) { + printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString()); + } + } catch (ApiException $ex) { + printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage()); + } +} + +/** + * Helper to execute the sample. + * + * This sample has been automatically generated and should be regarded as a code + * template only. It will require modifications to work: + * - It may require correct/in-range values for request initialization. + * - It may require specifying regional endpoints when creating the service client, + * please see the apiEndpoint client configuration option for more details. + */ +function callSample(): void +{ + $formattedParent = StorageControlClient::locationName('[PROJECT]', '[LOCATION]'); + + list_intelligence_findings_sample($formattedParent); +} +// [END storage_v2_generated_StorageControl_ListIntelligenceFindings_sync] diff --git a/StorageControl/samples/V2/StorageControlClient/summarize_intelligence_findings.php b/StorageControl/samples/V2/StorageControlClient/summarize_intelligence_findings.php new file mode 100644 index 000000000000..3acd1dd6de21 --- /dev/null +++ b/StorageControl/samples/V2/StorageControlClient/summarize_intelligence_findings.php @@ -0,0 +1,80 @@ +setParent($parent); + + // Call the API and handle any network failures. + try { + /** @var PagedListResponse $response */ + $response = $storageControlClient->summarizeIntelligenceFindings($request); + + /** @var FindingSummary $element */ + foreach ($response as $element) { + printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString()); + } + } catch (ApiException $ex) { + printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage()); + } +} + +/** + * Helper to execute the sample. + * + * This sample has been automatically generated and should be regarded as a code + * template only. It will require modifications to work: + * - It may require correct/in-range values for request initialization. + * - It may require specifying regional endpoints when creating the service client, + * please see the apiEndpoint client configuration option for more details. + */ +function callSample(): void +{ + $parent = '[PARENT]'; + + summarize_intelligence_findings_sample($parent); +} +// [END storage_v2_generated_StorageControl_SummarizeIntelligenceFindings_sync] diff --git a/StorageControl/src/V2/Client/StorageControlClient.php b/StorageControl/src/V2/Client/StorageControlClient.php index 523b35f2033b..ad58f8a5045c 100644 --- a/StorageControl/src/V2/Client/StorageControlClient.php +++ b/StorageControl/src/V2/Client/StorageControlClient.php @@ -52,19 +52,26 @@ use Google\Cloud\Storage\Control\V2\GetAnywhereCacheRequest; use Google\Cloud\Storage\Control\V2\GetFolderIntelligenceConfigRequest; use Google\Cloud\Storage\Control\V2\GetFolderRequest; +use Google\Cloud\Storage\Control\V2\GetIntelligenceFindingRequest; +use Google\Cloud\Storage\Control\V2\GetIntelligenceFindingRevisionRequest; use Google\Cloud\Storage\Control\V2\GetManagedFolderRequest; use Google\Cloud\Storage\Control\V2\GetOrganizationIntelligenceConfigRequest; use Google\Cloud\Storage\Control\V2\GetProjectIntelligenceConfigRequest; use Google\Cloud\Storage\Control\V2\GetStorageLayoutRequest; use Google\Cloud\Storage\Control\V2\IntelligenceConfig; +use Google\Cloud\Storage\Control\V2\IntelligenceFinding; +use Google\Cloud\Storage\Control\V2\IntelligenceFindingRevision; use Google\Cloud\Storage\Control\V2\ListAnywhereCachesRequest; use Google\Cloud\Storage\Control\V2\ListFoldersRequest; +use Google\Cloud\Storage\Control\V2\ListIntelligenceFindingRevisionsRequest; +use Google\Cloud\Storage\Control\V2\ListIntelligenceFindingsRequest; use Google\Cloud\Storage\Control\V2\ListManagedFoldersRequest; use Google\Cloud\Storage\Control\V2\ManagedFolder; use Google\Cloud\Storage\Control\V2\PauseAnywhereCacheRequest; use Google\Cloud\Storage\Control\V2\RenameFolderRequest; use Google\Cloud\Storage\Control\V2\ResumeAnywhereCacheRequest; use Google\Cloud\Storage\Control\V2\StorageLayout; +use Google\Cloud\Storage\Control\V2\SummarizeIntelligenceFindingsRequest; use Google\Cloud\Storage\Control\V2\UpdateAnywhereCacheRequest; use Google\Cloud\Storage\Control\V2\UpdateFolderIntelligenceConfigRequest; use Google\Cloud\Storage\Control\V2\UpdateOrganizationIntelligenceConfigRequest; @@ -96,17 +103,22 @@ * @method PromiseInterface getFolderAsync(GetFolderRequest $request, array $optionalArgs = []) * @method PromiseInterface getFolderIntelligenceConfigAsync(GetFolderIntelligenceConfigRequest $request, array $optionalArgs = []) * @method PromiseInterface getIamPolicyAsync(GetIamPolicyRequest $request, array $optionalArgs = []) + * @method PromiseInterface getIntelligenceFindingAsync(GetIntelligenceFindingRequest $request, array $optionalArgs = []) + * @method PromiseInterface getIntelligenceFindingRevisionAsync(GetIntelligenceFindingRevisionRequest $request, array $optionalArgs = []) * @method PromiseInterface getManagedFolderAsync(GetManagedFolderRequest $request, array $optionalArgs = []) * @method PromiseInterface getOrganizationIntelligenceConfigAsync(GetOrganizationIntelligenceConfigRequest $request, array $optionalArgs = []) * @method PromiseInterface getProjectIntelligenceConfigAsync(GetProjectIntelligenceConfigRequest $request, array $optionalArgs = []) * @method PromiseInterface getStorageLayoutAsync(GetStorageLayoutRequest $request, array $optionalArgs = []) * @method PromiseInterface listAnywhereCachesAsync(ListAnywhereCachesRequest $request, array $optionalArgs = []) * @method PromiseInterface listFoldersAsync(ListFoldersRequest $request, array $optionalArgs = []) + * @method PromiseInterface listIntelligenceFindingRevisionsAsync(ListIntelligenceFindingRevisionsRequest $request, array $optionalArgs = []) + * @method PromiseInterface listIntelligenceFindingsAsync(ListIntelligenceFindingsRequest $request, array $optionalArgs = []) * @method PromiseInterface listManagedFoldersAsync(ListManagedFoldersRequest $request, array $optionalArgs = []) * @method PromiseInterface pauseAnywhereCacheAsync(PauseAnywhereCacheRequest $request, array $optionalArgs = []) * @method PromiseInterface renameFolderAsync(RenameFolderRequest $request, array $optionalArgs = []) * @method PromiseInterface resumeAnywhereCacheAsync(ResumeAnywhereCacheRequest $request, array $optionalArgs = []) * @method PromiseInterface setIamPolicyAsync(SetIamPolicyRequest $request, array $optionalArgs = []) + * @method PromiseInterface summarizeIntelligenceFindingsAsync(SummarizeIntelligenceFindingsRequest $request, array $optionalArgs = []) * @method PromiseInterface testIamPermissionsAsync(TestIamPermissionsRequest $request, array $optionalArgs = []) * @method PromiseInterface updateAnywhereCacheAsync(UpdateAnywhereCacheRequest $request, array $optionalArgs = []) * @method PromiseInterface updateFolderIntelligenceConfigAsync(UpdateFolderIntelligenceConfigRequest $request, array $optionalArgs = []) @@ -304,6 +316,70 @@ public static function intelligenceConfigName(string $folder, string $location): ]); } + /** + * Formats a string containing the fully-qualified path to represent a + * intelligence_finding resource. + * + * @param string $project + * @param string $location + * @param string $intelligenceFinding + * + * @return string The formatted intelligence_finding resource. + */ + public static function intelligenceFindingName( + string $project, + string $location, + string $intelligenceFinding + ): string { + return self::getPathTemplate('intelligenceFinding')->render([ + 'project' => $project, + 'location' => $location, + 'intelligence_finding' => $intelligenceFinding, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * intelligence_finding_revision resource. + * + * @param string $project + * @param string $location + * @param string $intelligenceFinding + * @param string $revision + * + * @return string The formatted intelligence_finding_revision resource. + */ + public static function intelligenceFindingRevisionName( + string $project, + string $location, + string $intelligenceFinding, + string $revision + ): string { + return self::getPathTemplate('intelligenceFindingRevision')->render([ + 'project' => $project, + 'location' => $location, + 'intelligence_finding' => $intelligenceFinding, + 'revision' => $revision, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a location + * resource. + * + * @param string $project + * @param string $location + * + * @return string The formatted location resource. + */ + public static function locationName(string $project, string $location): string + { + return self::getPathTemplate('location')->render([ + 'project' => $project, + 'location' => $location, + ]); + } + /** * Formats a string containing the fully-qualified path to represent a * managed_folder resource. @@ -383,6 +459,9 @@ public static function storageLayoutName(string $project, string $bucket): strin * - folder: projects/{project}/buckets/{bucket}/folders/{folder=**} * - folderLocationIntelligenceConfig: folders/{folder}/locations/{location}/intelligenceConfig * - intelligenceConfig: folders/{folder}/locations/{location}/intelligenceConfig + * - intelligenceFinding: projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding} + * - intelligenceFindingRevision: projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}/revisions/{revision} + * - location: projects/{project}/locations/{location} * - managedFolder: projects/{project}/buckets/{bucket}/managedFolders/{managed_folder=**} * - orgLocationIntelligenceConfig: organizations/{org}/locations/{location}/intelligenceConfig * - projectLocationIntelligenceConfig: projects/{project}/locations/{location}/intelligenceConfig @@ -790,6 +869,64 @@ public function getIamPolicy(GetIamPolicyRequest $request, array $callOptions = return $this->startApiCall('GetIamPolicy', $request, $callOptions)->wait(); } + /** + * Gets the `IntelligenceFinding` for a project. + * + * The async variant is {@see StorageControlClient::getIntelligenceFindingAsync()} + * . + * + * @example samples/V2/StorageControlClient/get_intelligence_finding.php + * + * @param GetIntelligenceFindingRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return IntelligenceFinding + * + * @throws ApiException Thrown if the API call fails. + */ + public function getIntelligenceFinding( + GetIntelligenceFindingRequest $request, + array $callOptions = [] + ): IntelligenceFinding { + return $this->startApiCall('GetIntelligenceFinding', $request, $callOptions)->wait(); + } + + /** + * Gets the `IntelligenceFindingRevision` resource. + * + * The async variant is + * {@see StorageControlClient::getIntelligenceFindingRevisionAsync()} . + * + * @example samples/V2/StorageControlClient/get_intelligence_finding_revision.php + * + * @param GetIntelligenceFindingRevisionRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return IntelligenceFindingRevision + * + * @throws ApiException Thrown if the API call fails. + */ + public function getIntelligenceFindingRevision( + GetIntelligenceFindingRevisionRequest $request, + array $callOptions = [] + ): IntelligenceFindingRevision { + return $this->startApiCall('GetIntelligenceFindingRevision', $request, $callOptions)->wait(); + } + /** * Returns metadata for the specified managed folder. * @@ -953,6 +1090,64 @@ public function listFolders(ListFoldersRequest $request, array $callOptions = [] return $this->startApiCall('ListFolders', $request, $callOptions); } + /** + * Lists all the revisions of an `IntelligenceFinding` resource. + * + * The async variant is + * {@see StorageControlClient::listIntelligenceFindingRevisionsAsync()} . + * + * @example samples/V2/StorageControlClient/list_intelligence_finding_revisions.php + * + * @param ListIntelligenceFindingRevisionsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listIntelligenceFindingRevisions( + ListIntelligenceFindingRevisionsRequest $request, + array $callOptions = [] + ): PagedListResponse { + return $this->startApiCall('ListIntelligenceFindingRevisions', $request, $callOptions); + } + + /** + * Lists the `IntelligenceFinding` resources for the specified project. + * + * The async variant is + * {@see StorageControlClient::listIntelligenceFindingsAsync()} . + * + * @example samples/V2/StorageControlClient/list_intelligence_findings.php + * + * @param ListIntelligenceFindingsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listIntelligenceFindings( + ListIntelligenceFindingsRequest $request, + array $callOptions = [] + ): PagedListResponse { + return $this->startApiCall('ListIntelligenceFindings', $request, $callOptions); + } + /** * Retrieves a list of managed folders for a given bucket. * @@ -1090,6 +1285,36 @@ public function setIamPolicy(SetIamPolicyRequest $request, array $callOptions = return $this->startApiCall('SetIamPolicy', $request, $callOptions)->wait(); } + /** + * Summarize the intelligence findings for the specified scope(org, folder or + * project). + * + * The async variant is + * {@see StorageControlClient::summarizeIntelligenceFindingsAsync()} . + * + * @example samples/V2/StorageControlClient/summarize_intelligence_findings.php + * + * @param SummarizeIntelligenceFindingsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function summarizeIntelligenceFindings( + SummarizeIntelligenceFindingsRequest $request, + array $callOptions = [] + ): PagedListResponse { + return $this->startApiCall('SummarizeIntelligenceFindings', $request, $callOptions); + } + /** * Tests a set of permissions on the given bucket, object, or managed folder * to see which, if any, are held by the caller. diff --git a/StorageControl/src/V2/FindingCategory.php b/StorageControl/src/V2/FindingCategory.php new file mode 100644 index 000000000000..352db1f0b22f --- /dev/null +++ b/StorageControl/src/V2/FindingCategory.php @@ -0,0 +1,61 @@ +google.storage.control.v2.FindingCategory + */ +class FindingCategory +{ + /** + * Category is unspecified. + * + * Generated from protobuf enum FINDING_CATEGORY_UNSPECIFIED = 0; + */ + const FINDING_CATEGORY_UNSPECIFIED = 0; + /** + * Category is 'Data Management'. + * + * Generated from protobuf enum FINDING_CATEGORY_DATA_MANAGEMENT = 1; + */ + const FINDING_CATEGORY_DATA_MANAGEMENT = 1; + /** + * Category is 'Performance'. + * + * Generated from protobuf enum FINDING_CATEGORY_PERFORMANCE = 2; + */ + const FINDING_CATEGORY_PERFORMANCE = 2; + + private static $valueToName = [ + self::FINDING_CATEGORY_UNSPECIFIED => 'FINDING_CATEGORY_UNSPECIFIED', + self::FINDING_CATEGORY_DATA_MANAGEMENT => 'FINDING_CATEGORY_DATA_MANAGEMENT', + self::FINDING_CATEGORY_PERFORMANCE => 'FINDING_CATEGORY_PERFORMANCE', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/StorageControl/src/V2/FindingSeverity.php b/StorageControl/src/V2/FindingSeverity.php new file mode 100644 index 000000000000..f2f2d2d3d3fe --- /dev/null +++ b/StorageControl/src/V2/FindingSeverity.php @@ -0,0 +1,54 @@ +google.storage.control.v2.FindingSeverity + */ +class FindingSeverity +{ + /** + * Severity is unspecified. + * + * Generated from protobuf enum FINDING_SEVERITY_UNSPECIFIED = 0; + */ + const FINDING_SEVERITY_UNSPECIFIED = 0; + /** + * Severity is critical. + * + * Generated from protobuf enum FINDING_SEVERITY_CRITICAL = 1; + */ + const FINDING_SEVERITY_CRITICAL = 1; + + private static $valueToName = [ + self::FINDING_SEVERITY_UNSPECIFIED => 'FINDING_SEVERITY_UNSPECIFIED', + self::FINDING_SEVERITY_CRITICAL => 'FINDING_SEVERITY_CRITICAL', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/StorageControl/src/V2/FindingSummary.php b/StorageControl/src/V2/FindingSummary.php new file mode 100644 index 000000000000..712fef9f4f2b --- /dev/null +++ b/StorageControl/src/V2/FindingSummary.php @@ -0,0 +1,307 @@ +google.storage.control.v2.FindingSummary + */ +class FindingSummary extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The type of the finding. + * + * Generated from protobuf field .google.storage.control.v2.FindingType type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $type = 0; + /** + * Output only. The category of finding. + * + * Generated from protobuf field .google.storage.control.v2.FindingCategory category = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $category = 0; + /** + * Output only. The fully qualified Cloud resource name for which this + * summary was generated. + * eg: `//cloudresourcemanager.googleapis.com/projects/p1` + * + * Generated from protobuf field string target_resource = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $target_resource = ''; + /** + * Output only. The creation time of the earliest finding that this summary is + * based on. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $create_time = null; + /** + * Output only. The time of the most recent update among all the findings that + * this summary is based on. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $update_time = null; + /** + * Severity of the finding. + * + * Generated from protobuf field .google.storage.control.v2.FindingSeverity severity = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $severity = 0; + /** + * Output only. List of `SummaryDetails`. + * + * Generated from protobuf field repeated .google.storage.control.v2.FindingSummary.SummaryDetails summary_details = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + private $summary_details; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $type + * Output only. The type of the finding. + * @type int $category + * Output only. The category of finding. + * @type string $target_resource + * Output only. The fully qualified Cloud resource name for which this + * summary was generated. + * eg: `//cloudresourcemanager.googleapis.com/projects/p1` + * @type \Google\Protobuf\Timestamp $create_time + * Output only. The creation time of the earliest finding that this summary is + * based on. + * @type \Google\Protobuf\Timestamp $update_time + * Output only. The time of the most recent update among all the findings that + * this summary is based on. + * @type int $severity + * Severity of the finding. + * @type \Google\Cloud\Storage\Control\V2\FindingSummary\SummaryDetails[] $summary_details + * Output only. List of `SummaryDetails`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The type of the finding. + * + * Generated from protobuf field .google.storage.control.v2.FindingType type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int + */ + public function getType() + { + return $this->type; + } + + /** + * Output only. The type of the finding. + * + * Generated from protobuf field .google.storage.control.v2.FindingType type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int $var + * @return $this + */ + public function setType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Storage\Control\V2\FindingType::class); + $this->type = $var; + + return $this; + } + + /** + * Output only. The category of finding. + * + * Generated from protobuf field .google.storage.control.v2.FindingCategory category = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int + */ + public function getCategory() + { + return $this->category; + } + + /** + * Output only. The category of finding. + * + * Generated from protobuf field .google.storage.control.v2.FindingCategory category = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int $var + * @return $this + */ + public function setCategory($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Storage\Control\V2\FindingCategory::class); + $this->category = $var; + + return $this; + } + + /** + * Output only. The fully qualified Cloud resource name for which this + * summary was generated. + * eg: `//cloudresourcemanager.googleapis.com/projects/p1` + * + * Generated from protobuf field string target_resource = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getTargetResource() + { + return $this->target_resource; + } + + /** + * Output only. The fully qualified Cloud resource name for which this + * summary was generated. + * eg: `//cloudresourcemanager.googleapis.com/projects/p1` + * + * Generated from protobuf field string target_resource = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setTargetResource($var) + { + GPBUtil::checkString($var, True); + $this->target_resource = $var; + + return $this; + } + + /** + * Output only. The creation time of the earliest finding that this summary is + * based on. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Output only. The creation time of the earliest finding that this summary is + * based on. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + + /** + * Output only. The time of the most recent update among all the findings that + * this summary is based on. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getUpdateTime() + { + return $this->update_time; + } + + public function hasUpdateTime() + { + return isset($this->update_time); + } + + public function clearUpdateTime() + { + unset($this->update_time); + } + + /** + * Output only. The time of the most recent update among all the findings that + * this summary is based on. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setUpdateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->update_time = $var; + + return $this; + } + + /** + * Severity of the finding. + * + * Generated from protobuf field .google.storage.control.v2.FindingSeverity severity = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int + */ + public function getSeverity() + { + return $this->severity; + } + + /** + * Severity of the finding. + * + * Generated from protobuf field .google.storage.control.v2.FindingSeverity severity = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int $var + * @return $this + */ + public function setSeverity($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Storage\Control\V2\FindingSeverity::class); + $this->severity = $var; + + return $this; + } + + /** + * Output only. List of `SummaryDetails`. + * + * Generated from protobuf field repeated .google.storage.control.v2.FindingSummary.SummaryDetails summary_details = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return RepeatedField<\Google\Cloud\Storage\Control\V2\FindingSummary\SummaryDetails> + */ + public function getSummaryDetails() + { + return $this->summary_details; + } + + /** + * Output only. List of `SummaryDetails`. + * + * Generated from protobuf field repeated .google.storage.control.v2.FindingSummary.SummaryDetails summary_details = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Storage\Control\V2\FindingSummary\SummaryDetails[] $var + * @return $this + */ + public function setSummaryDetails($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Storage\Control\V2\FindingSummary\SummaryDetails::class); + $this->summary_details = $arr; + + return $this; + } + +} + diff --git a/StorageControl/src/V2/FindingSummary/SummaryDetails.php b/StorageControl/src/V2/FindingSummary/SummaryDetails.php new file mode 100644 index 000000000000..eb7124be783f --- /dev/null +++ b/StorageControl/src/V2/FindingSummary/SummaryDetails.php @@ -0,0 +1,176 @@ +google.storage.control.v2.FindingSummary.SummaryDetails + */ +class SummaryDetails extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The type of Cloud resource this summary detail applies to. + * + * Generated from protobuf field .google.storage.control.v2.FindingSummary.SummaryDetails.ResourceType resource_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $resource_type = 0; + /** + * Output only. A short description about the FindingSummary + * + * Generated from protobuf field string description = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $description = ''; + protected $magnitude; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int|string $count + * The count of impacted resources. + * @type float $percentage + * The percentage of impacted resources. + * @type int $resource_type + * Output only. The type of Cloud resource this summary detail applies to. + * @type string $description + * Output only. A short description about the FindingSummary + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * The count of impacted resources. + * + * Generated from protobuf field int64 count = 1; + * @return int|string + */ + public function getCount() + { + return $this->readOneof(1); + } + + public function hasCount() + { + return $this->hasOneof(1); + } + + /** + * The count of impacted resources. + * + * Generated from protobuf field int64 count = 1; + * @param int|string $var + * @return $this + */ + public function setCount($var) + { + GPBUtil::checkInt64($var); + $this->writeOneof(1, $var); + + return $this; + } + + /** + * The percentage of impacted resources. + * + * Generated from protobuf field float percentage = 2; + * @return float + */ + public function getPercentage() + { + return $this->readOneof(2); + } + + public function hasPercentage() + { + return $this->hasOneof(2); + } + + /** + * The percentage of impacted resources. + * + * Generated from protobuf field float percentage = 2; + * @param float $var + * @return $this + */ + public function setPercentage($var) + { + GPBUtil::checkFloat($var); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * Output only. The type of Cloud resource this summary detail applies to. + * + * Generated from protobuf field .google.storage.control.v2.FindingSummary.SummaryDetails.ResourceType resource_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int + */ + public function getResourceType() + { + return $this->resource_type; + } + + /** + * Output only. The type of Cloud resource this summary detail applies to. + * + * Generated from protobuf field .google.storage.control.v2.FindingSummary.SummaryDetails.ResourceType resource_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int $var + * @return $this + */ + public function setResourceType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Storage\Control\V2\FindingSummary\SummaryDetails\ResourceType::class); + $this->resource_type = $var; + + return $this; + } + + /** + * Output only. A short description about the FindingSummary + * + * Generated from protobuf field string description = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Output only. A short description about the FindingSummary + * + * Generated from protobuf field string description = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * @return string + */ + public function getMagnitude() + { + return $this->whichOneof("magnitude"); + } + +} + diff --git a/StorageControl/src/V2/FindingSummary/SummaryDetails/ResourceType.php b/StorageControl/src/V2/FindingSummary/SummaryDetails/ResourceType.php new file mode 100644 index 000000000000..24e36f96bf19 --- /dev/null +++ b/StorageControl/src/V2/FindingSummary/SummaryDetails/ResourceType.php @@ -0,0 +1,61 @@ +google.storage.control.v2.FindingSummary.SummaryDetails.ResourceType + */ +class ResourceType +{ + /** + * Resource type is unspecified. + * + * Generated from protobuf enum RESOURCE_TYPE_UNSPECIFIED = 0; + */ + const RESOURCE_TYPE_UNSPECIFIED = 0; + /** + * Resource type is project. + * + * Generated from protobuf enum PROJECT = 1; + */ + const PROJECT = 1; + /** + * Resource type is bucket. + * + * Generated from protobuf enum BUCKET = 2; + */ + const BUCKET = 2; + + private static $valueToName = [ + self::RESOURCE_TYPE_UNSPECIFIED => 'RESOURCE_TYPE_UNSPECIFIED', + self::PROJECT => 'PROJECT', + self::BUCKET => 'BUCKET', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/StorageControl/src/V2/FindingType.php b/StorageControl/src/V2/FindingType.php new file mode 100644 index 000000000000..d4a885894359 --- /dev/null +++ b/StorageControl/src/V2/FindingType.php @@ -0,0 +1,77 @@ +google.storage.control.v2.FindingType + */ +class FindingType +{ + /** + * Finding type is unspecified. + * + * Generated from protobuf enum FINDING_TYPE_UNSPECIFIED = 0; + */ + const FINDING_TYPE_UNSPECIFIED = 0; + /** + * Finding is about a spike in Class A/B operations on Coldline or Archive + * Cloud Storage objects. + * + * Generated from protobuf enum FINDING_TYPE_COLDLINE_AND_ARCHIVAL_STORAGE_OPERATIONS_SPIKE = 1; + */ + const FINDING_TYPE_COLDLINE_AND_ARCHIVAL_STORAGE_OPERATIONS_SPIKE = 1; + /** + * Finding is about a spike in throttled requests (429 errors) within a + * project. + * + * Generated from protobuf enum FINDING_TYPE_THROTTLED_REQUEST_SPIKE = 2; + */ + const FINDING_TYPE_THROTTLED_REQUEST_SPIKE = 2; + /** + * Finding is about a spike in cross region egress in Cloud Storage. + * + * Generated from protobuf enum FINDING_TYPE_CROSS_REGION_EGRESS_SPIKE = 3; + */ + const FINDING_TYPE_CROSS_REGION_EGRESS_SPIKE = 3; + /** + * Finding is about growth in storage above the expected trend. + * + * Generated from protobuf enum FINDING_TYPE_STORAGE_GROWTH_ABOVE_TREND = 4; + */ + const FINDING_TYPE_STORAGE_GROWTH_ABOVE_TREND = 4; + + private static $valueToName = [ + self::FINDING_TYPE_UNSPECIFIED => 'FINDING_TYPE_UNSPECIFIED', + self::FINDING_TYPE_COLDLINE_AND_ARCHIVAL_STORAGE_OPERATIONS_SPIKE => 'FINDING_TYPE_COLDLINE_AND_ARCHIVAL_STORAGE_OPERATIONS_SPIKE', + self::FINDING_TYPE_THROTTLED_REQUEST_SPIKE => 'FINDING_TYPE_THROTTLED_REQUEST_SPIKE', + self::FINDING_TYPE_CROSS_REGION_EGRESS_SPIKE => 'FINDING_TYPE_CROSS_REGION_EGRESS_SPIKE', + self::FINDING_TYPE_STORAGE_GROWTH_ABOVE_TREND => 'FINDING_TYPE_STORAGE_GROWTH_ABOVE_TREND', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/StorageControl/src/V2/GetIntelligenceFindingRequest.php b/StorageControl/src/V2/GetIntelligenceFindingRequest.php new file mode 100644 index 000000000000..f787ace6a22e --- /dev/null +++ b/StorageControl/src/V2/GetIntelligenceFindingRequest.php @@ -0,0 +1,93 @@ +google.storage.control.v2.GetIntelligenceFindingRequest + */ +class GetIntelligenceFindingRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the `IntelligenceFinding` resource. + * Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The name of the `IntelligenceFinding` resource. + * + * Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}` + * Please see {@see StorageControlClient::intelligenceFindingName()} for help formatting this field. + * + * @return \Google\Cloud\Storage\Control\V2\GetIntelligenceFindingRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the `IntelligenceFinding` resource. + * Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the `IntelligenceFinding` resource. + * Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the `IntelligenceFinding` resource. + * Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/StorageControl/src/V2/GetIntelligenceFindingRevisionRequest.php b/StorageControl/src/V2/GetIntelligenceFindingRevisionRequest.php new file mode 100644 index 000000000000..4224dc9017be --- /dev/null +++ b/StorageControl/src/V2/GetIntelligenceFindingRevisionRequest.php @@ -0,0 +1,93 @@ +google.storage.control.v2.GetIntelligenceFindingRevisionRequest + */ +class GetIntelligenceFindingRevisionRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the `IntelligenceFindingRevision` resource. + * ## Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}/revisions/{revision}` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The name of the `IntelligenceFindingRevision` resource. + * ## Format: + * + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}/revisions/{revision}` + * Please see {@see StorageControlClient::intelligenceFindingRevisionName()} for help formatting this field. + * + * @return \Google\Cloud\Storage\Control\V2\GetIntelligenceFindingRevisionRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the `IntelligenceFindingRevision` resource. + * ## Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}/revisions/{revision}` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the `IntelligenceFindingRevision` resource. + * ## Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}/revisions/{revision}` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the `IntelligenceFindingRevision` resource. + * ## Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}/revisions/{revision}` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/StorageControl/src/V2/IntelligenceFinding.php b/StorageControl/src/V2/IntelligenceFinding.php new file mode 100644 index 000000000000..b5cd9a1768ec --- /dev/null +++ b/StorageControl/src/V2/IntelligenceFinding.php @@ -0,0 +1,594 @@ +google.storage.control.v2.IntelligenceFinding + */ +class IntelligenceFinding extends \Google\Protobuf\Internal\Message +{ + /** + * Identifier. The resource name of `IntelligenceFinding`. + * Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER]; + */ + protected $name = ''; + /** + * Output only. A short description about the finding. + * + * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $description = ''; + /** + * Output only. Type of this finding. + * + * Generated from protobuf field .google.storage.control.v2.FindingType type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $type = 0; + /** + * Output only. Category of this finding. + * + * Generated from protobuf field .google.storage.control.v2.FindingCategory category = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $category = 0; + /** + * Output only. Severity of the finding. + * + * Generated from protobuf field .google.storage.control.v2.FindingSeverity severity = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $severity = 0; + /** + * Output only. The time at which the finding was created. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $create_time = null; + /** + * Output only. The time at which the finding was last updated. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $update_time = null; + /** + * Output only. The fully qualified resource name of the resource that this + * `IntelligenceFinding` applies to. eg: + * - `storage.googleapis.com/projects/_/buckets/b1` + * - `cloudresourecemanager.googleapis.com/projects/p1` + * + * Generated from protobuf field string target_resource = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $target_resource = ''; + /** + * Output only. Contains GCP resource names that are + * relevant to this `IntelligenceFinding`. The `target_resource` is also added + * as part of `associated_resources`. eg: + * - `storage.googleapis.com/projects/_/buckets/b1` + * - `cloudresourecemanager.googleapis.com/projects/p1` + * + * Generated from protobuf field repeated string associated_resources = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + private $associated_resources; + /** + * Output only. The time interval during which the underlying data was used to + * generate this `IntelligenceFinding`. + * + * Generated from protobuf field .google.type.Interval observation_period = 10 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $observation_period = null; + protected $intelligence_finding_details; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Identifier. The resource name of `IntelligenceFinding`. + * Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}` + * @type string $description + * Output only. A short description about the finding. + * @type int $type + * Output only. Type of this finding. + * @type int $category + * Output only. Category of this finding. + * @type int $severity + * Output only. Severity of the finding. + * @type \Google\Protobuf\Timestamp $create_time + * Output only. The time at which the finding was created. + * @type \Google\Protobuf\Timestamp $update_time + * Output only. The time at which the finding was last updated. + * @type string $target_resource + * Output only. The fully qualified resource name of the resource that this + * `IntelligenceFinding` applies to. eg: + * - `storage.googleapis.com/projects/_/buckets/b1` + * - `cloudresourecemanager.googleapis.com/projects/p1` + * @type string[] $associated_resources + * Output only. Contains GCP resource names that are + * relevant to this `IntelligenceFinding`. The `target_resource` is also added + * as part of `associated_resources`. eg: + * - `storage.googleapis.com/projects/_/buckets/b1` + * - `cloudresourecemanager.googleapis.com/projects/p1` + * @type \Google\Type\Interval $observation_period + * Output only. The time interval during which the underlying data was used to + * generate this `IntelligenceFinding`. + * @type \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ColdlineAndArchivalStorageOperationsSpike $coldline_and_archival_storage_operations_spike + * Output only. `IntelligenceFinding` about a spike in Class A/B operations + * on Coldline or Archive Cloud Storage objects. + * @type \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ThrottledRequestSpike $throttled_requests_spike + * Output only. `IntelligenceFinding` about a spike in throttled requests + * (429 errors) within a project. + * @type \Google\Cloud\Storage\Control\V2\IntelligenceFinding\CrossRegionEgressSpike $cross_region_egress_spike + * Output only. `IntelligenceFinding` about a spike in cross-region egress. + * @type \Google\Cloud\Storage\Control\V2\IntelligenceFinding\StorageGrowthAboveTrend $storage_growth_above_trend + * Output only. `IntelligenceFinding` about growth in storage above the + * expected trend. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Identifier. The resource name of `IntelligenceFinding`. + * Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Identifier. The resource name of `IntelligenceFinding`. + * Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Output only. A short description about the finding. + * + * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Output only. A short description about the finding. + * + * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * Output only. Type of this finding. + * + * Generated from protobuf field .google.storage.control.v2.FindingType type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int + */ + public function getType() + { + return $this->type; + } + + /** + * Output only. Type of this finding. + * + * Generated from protobuf field .google.storage.control.v2.FindingType type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int $var + * @return $this + */ + public function setType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Storage\Control\V2\FindingType::class); + $this->type = $var; + + return $this; + } + + /** + * Output only. Category of this finding. + * + * Generated from protobuf field .google.storage.control.v2.FindingCategory category = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int + */ + public function getCategory() + { + return $this->category; + } + + /** + * Output only. Category of this finding. + * + * Generated from protobuf field .google.storage.control.v2.FindingCategory category = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int $var + * @return $this + */ + public function setCategory($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Storage\Control\V2\FindingCategory::class); + $this->category = $var; + + return $this; + } + + /** + * Output only. Severity of the finding. + * + * Generated from protobuf field .google.storage.control.v2.FindingSeverity severity = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int + */ + public function getSeverity() + { + return $this->severity; + } + + /** + * Output only. Severity of the finding. + * + * Generated from protobuf field .google.storage.control.v2.FindingSeverity severity = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int $var + * @return $this + */ + public function setSeverity($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Storage\Control\V2\FindingSeverity::class); + $this->severity = $var; + + return $this; + } + + /** + * Output only. The time at which the finding was created. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Output only. The time at which the finding was created. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + + /** + * Output only. The time at which the finding was last updated. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getUpdateTime() + { + return $this->update_time; + } + + public function hasUpdateTime() + { + return isset($this->update_time); + } + + public function clearUpdateTime() + { + unset($this->update_time); + } + + /** + * Output only. The time at which the finding was last updated. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setUpdateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->update_time = $var; + + return $this; + } + + /** + * Output only. The fully qualified resource name of the resource that this + * `IntelligenceFinding` applies to. eg: + * - `storage.googleapis.com/projects/_/buckets/b1` + * - `cloudresourecemanager.googleapis.com/projects/p1` + * + * Generated from protobuf field string target_resource = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getTargetResource() + { + return $this->target_resource; + } + + /** + * Output only. The fully qualified resource name of the resource that this + * `IntelligenceFinding` applies to. eg: + * - `storage.googleapis.com/projects/_/buckets/b1` + * - `cloudresourecemanager.googleapis.com/projects/p1` + * + * Generated from protobuf field string target_resource = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setTargetResource($var) + { + GPBUtil::checkString($var, True); + $this->target_resource = $var; + + return $this; + } + + /** + * Output only. Contains GCP resource names that are + * relevant to this `IntelligenceFinding`. The `target_resource` is also added + * as part of `associated_resources`. eg: + * - `storage.googleapis.com/projects/_/buckets/b1` + * - `cloudresourecemanager.googleapis.com/projects/p1` + * + * Generated from protobuf field repeated string associated_resources = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return RepeatedField + */ + public function getAssociatedResources() + { + return $this->associated_resources; + } + + /** + * Output only. Contains GCP resource names that are + * relevant to this `IntelligenceFinding`. The `target_resource` is also added + * as part of `associated_resources`. eg: + * - `storage.googleapis.com/projects/_/buckets/b1` + * - `cloudresourecemanager.googleapis.com/projects/p1` + * + * Generated from protobuf field repeated string associated_resources = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string[] $var + * @return $this + */ + public function setAssociatedResources($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->associated_resources = $arr; + + return $this; + } + + /** + * Output only. The time interval during which the underlying data was used to + * generate this `IntelligenceFinding`. + * + * Generated from protobuf field .google.type.Interval observation_period = 10 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Type\Interval|null + */ + public function getObservationPeriod() + { + return $this->observation_period; + } + + public function hasObservationPeriod() + { + return isset($this->observation_period); + } + + public function clearObservationPeriod() + { + unset($this->observation_period); + } + + /** + * Output only. The time interval during which the underlying data was used to + * generate this `IntelligenceFinding`. + * + * Generated from protobuf field .google.type.Interval observation_period = 10 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Type\Interval $var + * @return $this + */ + public function setObservationPeriod($var) + { + GPBUtil::checkMessage($var, \Google\Type\Interval::class); + $this->observation_period = $var; + + return $this; + } + + /** + * Output only. `IntelligenceFinding` about a spike in Class A/B operations + * on Coldline or Archive Cloud Storage objects. + * + * Generated from protobuf field .google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike coldline_and_archival_storage_operations_spike = 11 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ColdlineAndArchivalStorageOperationsSpike|null + */ + public function getColdlineAndArchivalStorageOperationsSpike() + { + return $this->readOneof(11); + } + + public function hasColdlineAndArchivalStorageOperationsSpike() + { + return $this->hasOneof(11); + } + + /** + * Output only. `IntelligenceFinding` about a spike in Class A/B operations + * on Coldline or Archive Cloud Storage objects. + * + * Generated from protobuf field .google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike coldline_and_archival_storage_operations_spike = 11 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ColdlineAndArchivalStorageOperationsSpike $var + * @return $this + */ + public function setColdlineAndArchivalStorageOperationsSpike($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ColdlineAndArchivalStorageOperationsSpike::class); + $this->writeOneof(11, $var); + + return $this; + } + + /** + * Output only. `IntelligenceFinding` about a spike in throttled requests + * (429 errors) within a project. + * + * Generated from protobuf field .google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike throttled_requests_spike = 12 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ThrottledRequestSpike|null + */ + public function getThrottledRequestsSpike() + { + return $this->readOneof(12); + } + + public function hasThrottledRequestsSpike() + { + return $this->hasOneof(12); + } + + /** + * Output only. `IntelligenceFinding` about a spike in throttled requests + * (429 errors) within a project. + * + * Generated from protobuf field .google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike throttled_requests_spike = 12 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ThrottledRequestSpike $var + * @return $this + */ + public function setThrottledRequestsSpike($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ThrottledRequestSpike::class); + $this->writeOneof(12, $var); + + return $this; + } + + /** + * Output only. `IntelligenceFinding` about a spike in cross-region egress. + * + * Generated from protobuf field .google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike cross_region_egress_spike = 13 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Storage\Control\V2\IntelligenceFinding\CrossRegionEgressSpike|null + */ + public function getCrossRegionEgressSpike() + { + return $this->readOneof(13); + } + + public function hasCrossRegionEgressSpike() + { + return $this->hasOneof(13); + } + + /** + * Output only. `IntelligenceFinding` about a spike in cross-region egress. + * + * Generated from protobuf field .google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike cross_region_egress_spike = 13 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Storage\Control\V2\IntelligenceFinding\CrossRegionEgressSpike $var + * @return $this + */ + public function setCrossRegionEgressSpike($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Storage\Control\V2\IntelligenceFinding\CrossRegionEgressSpike::class); + $this->writeOneof(13, $var); + + return $this; + } + + /** + * Output only. `IntelligenceFinding` about growth in storage above the + * expected trend. + * + * Generated from protobuf field .google.storage.control.v2.IntelligenceFinding.StorageGrowthAboveTrend storage_growth_above_trend = 14 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Storage\Control\V2\IntelligenceFinding\StorageGrowthAboveTrend|null + */ + public function getStorageGrowthAboveTrend() + { + return $this->readOneof(14); + } + + public function hasStorageGrowthAboveTrend() + { + return $this->hasOneof(14); + } + + /** + * Output only. `IntelligenceFinding` about growth in storage above the + * expected trend. + * + * Generated from protobuf field .google.storage.control.v2.IntelligenceFinding.StorageGrowthAboveTrend storage_growth_above_trend = 14 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Storage\Control\V2\IntelligenceFinding\StorageGrowthAboveTrend $var + * @return $this + */ + public function setStorageGrowthAboveTrend($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Storage\Control\V2\IntelligenceFinding\StorageGrowthAboveTrend::class); + $this->writeOneof(14, $var); + + return $this; + } + + /** + * @return string + */ + public function getIntelligenceFindingDetails() + { + return $this->whichOneof("intelligence_finding_details"); + } + +} + diff --git a/StorageControl/src/V2/IntelligenceFinding/ColdlineAndArchivalStorageOperationsSpike.php b/StorageControl/src/V2/IntelligenceFinding/ColdlineAndArchivalStorageOperationsSpike.php new file mode 100644 index 000000000000..e14c8e9f9f6b --- /dev/null +++ b/StorageControl/src/V2/IntelligenceFinding/ColdlineAndArchivalStorageOperationsSpike.php @@ -0,0 +1,142 @@ +google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike + */ +class ColdlineAndArchivalStorageOperationsSpike extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The percentage increase in operations across the project. + * + * Generated from protobuf field double percentage_increase = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $percentage_increase = 0.0; + /** + * Output only. The total count of operations across the project. + * + * Generated from protobuf field int64 total_operations_count = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $total_operations_count = 0; + /** + * Output only. A list of the top buckets driving the increase in + * operations. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike.BucketContribution top_buckets = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + private $top_buckets; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type float $percentage_increase + * Output only. The percentage increase in operations across the project. + * @type int|string $total_operations_count + * Output only. The total count of operations across the project. + * @type \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ColdlineAndArchivalStorageOperationsSpike\BucketContribution[] $top_buckets + * Output only. A list of the top buckets driving the increase in + * operations. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The percentage increase in operations across the project. + * + * Generated from protobuf field double percentage_increase = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return float + */ + public function getPercentageIncrease() + { + return $this->percentage_increase; + } + + /** + * Output only. The percentage increase in operations across the project. + * + * Generated from protobuf field double percentage_increase = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param float $var + * @return $this + */ + public function setPercentageIncrease($var) + { + GPBUtil::checkDouble($var); + $this->percentage_increase = $var; + + return $this; + } + + /** + * Output only. The total count of operations across the project. + * + * Generated from protobuf field int64 total_operations_count = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int|string + */ + public function getTotalOperationsCount() + { + return $this->total_operations_count; + } + + /** + * Output only. The total count of operations across the project. + * + * Generated from protobuf field int64 total_operations_count = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int|string $var + * @return $this + */ + public function setTotalOperationsCount($var) + { + GPBUtil::checkInt64($var); + $this->total_operations_count = $var; + + return $this; + } + + /** + * Output only. A list of the top buckets driving the increase in + * operations. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike.BucketContribution top_buckets = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return RepeatedField<\Google\Cloud\Storage\Control\V2\IntelligenceFinding\ColdlineAndArchivalStorageOperationsSpike\BucketContribution> + */ + public function getTopBuckets() + { + return $this->top_buckets; + } + + /** + * Output only. A list of the top buckets driving the increase in + * operations. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike.BucketContribution top_buckets = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ColdlineAndArchivalStorageOperationsSpike\BucketContribution[] $var + * @return $this + */ + public function setTopBuckets($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ColdlineAndArchivalStorageOperationsSpike\BucketContribution::class); + $this->top_buckets = $arr; + + return $this; + } + +} + diff --git a/StorageControl/src/V2/IntelligenceFinding/ColdlineAndArchivalStorageOperationsSpike/BucketContribution.php b/StorageControl/src/V2/IntelligenceFinding/ColdlineAndArchivalStorageOperationsSpike/BucketContribution.php new file mode 100644 index 000000000000..2e764b7601cb --- /dev/null +++ b/StorageControl/src/V2/IntelligenceFinding/ColdlineAndArchivalStorageOperationsSpike/BucketContribution.php @@ -0,0 +1,213 @@ +google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike.BucketContribution + */ +class BucketContribution extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The name of the bucket. + * + * Generated from protobuf field string bucket = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { + */ + protected $bucket = ''; + /** + * Output only. The percentage increase in operations for the bucket. + * + * Generated from protobuf field double percentage_increase = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $percentage_increase = 0.0; + /** + * Output only. The total count of operations for the bucket. + * + * Generated from protobuf field int64 total_operations_count = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $total_operations_count = 0; + protected $details; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $bucket + * Output only. The name of the bucket. + * @type float $percentage_increase + * Output only. The percentage increase in operations for the bucket. + * @type int|string $total_operations_count + * Output only. The total count of operations for the bucket. + * @type \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ColdlineAndArchivalStorageOperationsSpike\BucketContribution\Contribution $contribution + * Output only. The details about the contribution of the bucket. + * @type \Google\Rpc\Status $error + * Output only. The error related to accessing the details about the + * contribution of the bucket. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The name of the bucket. + * + * Generated from protobuf field string bucket = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { + * @return string + */ + public function getBucket() + { + return $this->bucket; + } + + /** + * Output only. The name of the bucket. + * + * Generated from protobuf field string bucket = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setBucket($var) + { + GPBUtil::checkString($var, True); + $this->bucket = $var; + + return $this; + } + + /** + * Output only. The percentage increase in operations for the bucket. + * + * Generated from protobuf field double percentage_increase = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return float + */ + public function getPercentageIncrease() + { + return $this->percentage_increase; + } + + /** + * Output only. The percentage increase in operations for the bucket. + * + * Generated from protobuf field double percentage_increase = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param float $var + * @return $this + */ + public function setPercentageIncrease($var) + { + GPBUtil::checkDouble($var); + $this->percentage_increase = $var; + + return $this; + } + + /** + * Output only. The total count of operations for the bucket. + * + * Generated from protobuf field int64 total_operations_count = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int|string + */ + public function getTotalOperationsCount() + { + return $this->total_operations_count; + } + + /** + * Output only. The total count of operations for the bucket. + * + * Generated from protobuf field int64 total_operations_count = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int|string $var + * @return $this + */ + public function setTotalOperationsCount($var) + { + GPBUtil::checkInt64($var); + $this->total_operations_count = $var; + + return $this; + } + + /** + * Output only. The details about the contribution of the bucket. + * + * Generated from protobuf field .google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike.BucketContribution.Contribution contribution = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ColdlineAndArchivalStorageOperationsSpike\BucketContribution\Contribution|null + */ + public function getContribution() + { + return $this->readOneof(4); + } + + public function hasContribution() + { + return $this->hasOneof(4); + } + + /** + * Output only. The details about the contribution of the bucket. + * + * Generated from protobuf field .google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike.BucketContribution.Contribution contribution = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ColdlineAndArchivalStorageOperationsSpike\BucketContribution\Contribution $var + * @return $this + */ + public function setContribution($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ColdlineAndArchivalStorageOperationsSpike\BucketContribution\Contribution::class); + $this->writeOneof(4, $var); + + return $this; + } + + /** + * Output only. The error related to accessing the details about the + * contribution of the bucket. + * + * Generated from protobuf field .google.rpc.Status error = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Rpc\Status|null + */ + public function getError() + { + return $this->readOneof(5); + } + + public function hasError() + { + return $this->hasOneof(5); + } + + /** + * Output only. The error related to accessing the details about the + * contribution of the bucket. + * + * Generated from protobuf field .google.rpc.Status error = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Rpc\Status $var + * @return $this + */ + public function setError($var) + { + GPBUtil::checkMessage($var, \Google\Rpc\Status::class); + $this->writeOneof(5, $var); + + return $this; + } + + /** + * @return string + */ + public function getDetails() + { + return $this->whichOneof("details"); + } + +} + diff --git a/StorageControl/src/V2/IntelligenceFinding/ColdlineAndArchivalStorageOperationsSpike/BucketContribution/Contribution.php b/StorageControl/src/V2/IntelligenceFinding/ColdlineAndArchivalStorageOperationsSpike/BucketContribution/Contribution.php new file mode 100644 index 000000000000..654bb2cc72ea --- /dev/null +++ b/StorageControl/src/V2/IntelligenceFinding/ColdlineAndArchivalStorageOperationsSpike/BucketContribution/Contribution.php @@ -0,0 +1,72 @@ +google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike.BucketContribution.Contribution + */ +class Contribution extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. A list of the top object prefixes driving the increase + * in operations. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike.BucketContribution.Contribution.PrefixContribution top_prefixes = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + private $top_prefixes; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ColdlineAndArchivalStorageOperationsSpike\BucketContribution\Contribution\PrefixContribution[] $top_prefixes + * Output only. A list of the top object prefixes driving the increase + * in operations. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Output only. A list of the top object prefixes driving the increase + * in operations. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike.BucketContribution.Contribution.PrefixContribution top_prefixes = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return RepeatedField<\Google\Cloud\Storage\Control\V2\IntelligenceFinding\ColdlineAndArchivalStorageOperationsSpike\BucketContribution\Contribution\PrefixContribution> + */ + public function getTopPrefixes() + { + return $this->top_prefixes; + } + + /** + * Output only. A list of the top object prefixes driving the increase + * in operations. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike.BucketContribution.Contribution.PrefixContribution top_prefixes = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ColdlineAndArchivalStorageOperationsSpike\BucketContribution\Contribution\PrefixContribution[] $var + * @return $this + */ + public function setTopPrefixes($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ColdlineAndArchivalStorageOperationsSpike\BucketContribution\Contribution\PrefixContribution::class); + $this->top_prefixes = $arr; + + return $this; + } + +} + diff --git a/StorageControl/src/V2/IntelligenceFinding/ColdlineAndArchivalStorageOperationsSpike/BucketContribution/Contribution/PrefixContribution.php b/StorageControl/src/V2/IntelligenceFinding/ColdlineAndArchivalStorageOperationsSpike/BucketContribution/Contribution/PrefixContribution.php new file mode 100644 index 000000000000..c6d5205647fe --- /dev/null +++ b/StorageControl/src/V2/IntelligenceFinding/ColdlineAndArchivalStorageOperationsSpike/BucketContribution/Contribution/PrefixContribution.php @@ -0,0 +1,143 @@ +google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike.BucketContribution.Contribution.PrefixContribution + */ +class PrefixContribution extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The object prefix. + * Format: `a/b/c`, 'a/b/d', etc. + * + * Generated from protobuf field string prefix = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $prefix = ''; + /** + * Output only. The percentage increase in operations for the object + * prefix. + * + * Generated from protobuf field double percentage_increase = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $percentage_increase = 0.0; + /** + * Output only. The total count of operations for the object prefix. + * + * Generated from protobuf field int64 total_operations_count = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $total_operations_count = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $prefix + * Output only. The object prefix. + * Format: `a/b/c`, 'a/b/d', etc. + * @type float $percentage_increase + * Output only. The percentage increase in operations for the object + * prefix. + * @type int|string $total_operations_count + * Output only. The total count of operations for the object prefix. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The object prefix. + * Format: `a/b/c`, 'a/b/d', etc. + * + * Generated from protobuf field string prefix = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getPrefix() + { + return $this->prefix; + } + + /** + * Output only. The object prefix. + * Format: `a/b/c`, 'a/b/d', etc. + * + * Generated from protobuf field string prefix = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setPrefix($var) + { + GPBUtil::checkString($var, True); + $this->prefix = $var; + + return $this; + } + + /** + * Output only. The percentage increase in operations for the object + * prefix. + * + * Generated from protobuf field double percentage_increase = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return float + */ + public function getPercentageIncrease() + { + return $this->percentage_increase; + } + + /** + * Output only. The percentage increase in operations for the object + * prefix. + * + * Generated from protobuf field double percentage_increase = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param float $var + * @return $this + */ + public function setPercentageIncrease($var) + { + GPBUtil::checkDouble($var); + $this->percentage_increase = $var; + + return $this; + } + + /** + * Output only. The total count of operations for the object prefix. + * + * Generated from protobuf field int64 total_operations_count = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int|string + */ + public function getTotalOperationsCount() + { + return $this->total_operations_count; + } + + /** + * Output only. The total count of operations for the object prefix. + * + * Generated from protobuf field int64 total_operations_count = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int|string $var + * @return $this + */ + public function setTotalOperationsCount($var) + { + GPBUtil::checkInt64($var); + $this->total_operations_count = $var; + + return $this; + } + +} + diff --git a/StorageControl/src/V2/IntelligenceFinding/CrossRegionEgressSpike.php b/StorageControl/src/V2/IntelligenceFinding/CrossRegionEgressSpike.php new file mode 100644 index 000000000000..2fdffc786f54 --- /dev/null +++ b/StorageControl/src/V2/IntelligenceFinding/CrossRegionEgressSpike.php @@ -0,0 +1,149 @@ +google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike + */ +class CrossRegionEgressSpike extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The total cross-region egress volume in bytes across the + * project. + * + * Generated from protobuf field int64 total_egress_bytes = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $total_egress_bytes = 0; + /** + * Output only. The percentage increase in cross-region egress across the + * project. + * + * Generated from protobuf field double percentage_increase = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $percentage_increase = 0.0; + /** + * Output only. A list of top buckets driving the increase in cross-region + * egress. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike.BucketContribution top_buckets = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + private $top_buckets; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int|string $total_egress_bytes + * Output only. The total cross-region egress volume in bytes across the + * project. + * @type float $percentage_increase + * Output only. The percentage increase in cross-region egress across the + * project. + * @type \Google\Cloud\Storage\Control\V2\IntelligenceFinding\CrossRegionEgressSpike\BucketContribution[] $top_buckets + * Output only. A list of top buckets driving the increase in cross-region + * egress. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The total cross-region egress volume in bytes across the + * project. + * + * Generated from protobuf field int64 total_egress_bytes = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int|string + */ + public function getTotalEgressBytes() + { + return $this->total_egress_bytes; + } + + /** + * Output only. The total cross-region egress volume in bytes across the + * project. + * + * Generated from protobuf field int64 total_egress_bytes = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int|string $var + * @return $this + */ + public function setTotalEgressBytes($var) + { + GPBUtil::checkInt64($var); + $this->total_egress_bytes = $var; + + return $this; + } + + /** + * Output only. The percentage increase in cross-region egress across the + * project. + * + * Generated from protobuf field double percentage_increase = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return float + */ + public function getPercentageIncrease() + { + return $this->percentage_increase; + } + + /** + * Output only. The percentage increase in cross-region egress across the + * project. + * + * Generated from protobuf field double percentage_increase = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param float $var + * @return $this + */ + public function setPercentageIncrease($var) + { + GPBUtil::checkDouble($var); + $this->percentage_increase = $var; + + return $this; + } + + /** + * Output only. A list of top buckets driving the increase in cross-region + * egress. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike.BucketContribution top_buckets = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return RepeatedField<\Google\Cloud\Storage\Control\V2\IntelligenceFinding\CrossRegionEgressSpike\BucketContribution> + */ + public function getTopBuckets() + { + return $this->top_buckets; + } + + /** + * Output only. A list of top buckets driving the increase in cross-region + * egress. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike.BucketContribution top_buckets = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Storage\Control\V2\IntelligenceFinding\CrossRegionEgressSpike\BucketContribution[] $var + * @return $this + */ + public function setTopBuckets($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Storage\Control\V2\IntelligenceFinding\CrossRegionEgressSpike\BucketContribution::class); + $this->top_buckets = $arr; + + return $this; + } + +} + diff --git a/StorageControl/src/V2/IntelligenceFinding/CrossRegionEgressSpike/BucketContribution.php b/StorageControl/src/V2/IntelligenceFinding/CrossRegionEgressSpike/BucketContribution.php new file mode 100644 index 000000000000..fe0b3f5af9e5 --- /dev/null +++ b/StorageControl/src/V2/IntelligenceFinding/CrossRegionEgressSpike/BucketContribution.php @@ -0,0 +1,221 @@ +google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike.BucketContribution + */ +class BucketContribution extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The name of the bucket. + * + * Generated from protobuf field string bucket = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { + */ + protected $bucket = ''; + /** + * Output only. The total cross-region egress volume in bytes for the + * bucket. + * + * Generated from protobuf field int64 total_egress_bytes = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $total_egress_bytes = 0; + /** + * Output only. The percentage increase in cross-region egress for the + * bucket. + * + * Generated from protobuf field double percentage_increase = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $percentage_increase = 0.0; + protected $details; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $bucket + * Output only. The name of the bucket. + * @type int|string $total_egress_bytes + * Output only. The total cross-region egress volume in bytes for the + * bucket. + * @type float $percentage_increase + * Output only. The percentage increase in cross-region egress for the + * bucket. + * @type \Google\Cloud\Storage\Control\V2\IntelligenceFinding\CrossRegionEgressSpike\BucketContribution\Contribution $contribution + * Output only. The details about the contribution of the bucket. + * @type \Google\Rpc\Status $error + * Output only. The error related to accessing the details about the + * contribution of the bucket. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The name of the bucket. + * + * Generated from protobuf field string bucket = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { + * @return string + */ + public function getBucket() + { + return $this->bucket; + } + + /** + * Output only. The name of the bucket. + * + * Generated from protobuf field string bucket = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setBucket($var) + { + GPBUtil::checkString($var, True); + $this->bucket = $var; + + return $this; + } + + /** + * Output only. The total cross-region egress volume in bytes for the + * bucket. + * + * Generated from protobuf field int64 total_egress_bytes = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int|string + */ + public function getTotalEgressBytes() + { + return $this->total_egress_bytes; + } + + /** + * Output only. The total cross-region egress volume in bytes for the + * bucket. + * + * Generated from protobuf field int64 total_egress_bytes = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int|string $var + * @return $this + */ + public function setTotalEgressBytes($var) + { + GPBUtil::checkInt64($var); + $this->total_egress_bytes = $var; + + return $this; + } + + /** + * Output only. The percentage increase in cross-region egress for the + * bucket. + * + * Generated from protobuf field double percentage_increase = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return float + */ + public function getPercentageIncrease() + { + return $this->percentage_increase; + } + + /** + * Output only. The percentage increase in cross-region egress for the + * bucket. + * + * Generated from protobuf field double percentage_increase = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param float $var + * @return $this + */ + public function setPercentageIncrease($var) + { + GPBUtil::checkDouble($var); + $this->percentage_increase = $var; + + return $this; + } + + /** + * Output only. The details about the contribution of the bucket. + * + * Generated from protobuf field .google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike.BucketContribution.Contribution contribution = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Storage\Control\V2\IntelligenceFinding\CrossRegionEgressSpike\BucketContribution\Contribution|null + */ + public function getContribution() + { + return $this->readOneof(4); + } + + public function hasContribution() + { + return $this->hasOneof(4); + } + + /** + * Output only. The details about the contribution of the bucket. + * + * Generated from protobuf field .google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike.BucketContribution.Contribution contribution = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Storage\Control\V2\IntelligenceFinding\CrossRegionEgressSpike\BucketContribution\Contribution $var + * @return $this + */ + public function setContribution($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Storage\Control\V2\IntelligenceFinding\CrossRegionEgressSpike\BucketContribution\Contribution::class); + $this->writeOneof(4, $var); + + return $this; + } + + /** + * Output only. The error related to accessing the details about the + * contribution of the bucket. + * + * Generated from protobuf field .google.rpc.Status error = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Rpc\Status|null + */ + public function getError() + { + return $this->readOneof(5); + } + + public function hasError() + { + return $this->hasOneof(5); + } + + /** + * Output only. The error related to accessing the details about the + * contribution of the bucket. + * + * Generated from protobuf field .google.rpc.Status error = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Rpc\Status $var + * @return $this + */ + public function setError($var) + { + GPBUtil::checkMessage($var, \Google\Rpc\Status::class); + $this->writeOneof(5, $var); + + return $this; + } + + /** + * @return string + */ + public function getDetails() + { + return $this->whichOneof("details"); + } + +} + diff --git a/StorageControl/src/V2/IntelligenceFinding/CrossRegionEgressSpike/BucketContribution/Contribution.php b/StorageControl/src/V2/IntelligenceFinding/CrossRegionEgressSpike/BucketContribution/Contribution.php new file mode 100644 index 000000000000..c1171fae3f6b --- /dev/null +++ b/StorageControl/src/V2/IntelligenceFinding/CrossRegionEgressSpike/BucketContribution/Contribution.php @@ -0,0 +1,72 @@ +google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike.BucketContribution.Contribution + */ +class Contribution extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. A list of the top object prefixes driving the increase + * in cross-region egress. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike.BucketContribution.Contribution.PrefixContribution top_prefixes = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + private $top_prefixes; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Storage\Control\V2\IntelligenceFinding\CrossRegionEgressSpike\BucketContribution\Contribution\PrefixContribution[] $top_prefixes + * Output only. A list of the top object prefixes driving the increase + * in cross-region egress. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Output only. A list of the top object prefixes driving the increase + * in cross-region egress. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike.BucketContribution.Contribution.PrefixContribution top_prefixes = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return RepeatedField<\Google\Cloud\Storage\Control\V2\IntelligenceFinding\CrossRegionEgressSpike\BucketContribution\Contribution\PrefixContribution> + */ + public function getTopPrefixes() + { + return $this->top_prefixes; + } + + /** + * Output only. A list of the top object prefixes driving the increase + * in cross-region egress. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike.BucketContribution.Contribution.PrefixContribution top_prefixes = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Storage\Control\V2\IntelligenceFinding\CrossRegionEgressSpike\BucketContribution\Contribution\PrefixContribution[] $var + * @return $this + */ + public function setTopPrefixes($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Storage\Control\V2\IntelligenceFinding\CrossRegionEgressSpike\BucketContribution\Contribution\PrefixContribution::class); + $this->top_prefixes = $arr; + + return $this; + } + +} + diff --git a/StorageControl/src/V2/IntelligenceFinding/CrossRegionEgressSpike/BucketContribution/Contribution/PrefixContribution.php b/StorageControl/src/V2/IntelligenceFinding/CrossRegionEgressSpike/BucketContribution/Contribution/PrefixContribution.php new file mode 100644 index 000000000000..0f3fb5daa146 --- /dev/null +++ b/StorageControl/src/V2/IntelligenceFinding/CrossRegionEgressSpike/BucketContribution/Contribution/PrefixContribution.php @@ -0,0 +1,148 @@ +google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike.BucketContribution.Contribution.PrefixContribution + */ +class PrefixContribution extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The object prefix. + * Format: `a/b/c`, 'a/b/d', etc. + * + * Generated from protobuf field string prefix = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $prefix = ''; + /** + * Output only. The total cross-region egress volume in bytes from the + * object prefix. + * + * Generated from protobuf field int64 total_egress_bytes = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $total_egress_bytes = 0; + /** + * Output only. The percentage increase in cross-region egress for the + * object prefix. + * + * Generated from protobuf field double percentage_increase = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $percentage_increase = 0.0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $prefix + * Output only. The object prefix. + * Format: `a/b/c`, 'a/b/d', etc. + * @type int|string $total_egress_bytes + * Output only. The total cross-region egress volume in bytes from the + * object prefix. + * @type float $percentage_increase + * Output only. The percentage increase in cross-region egress for the + * object prefix. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The object prefix. + * Format: `a/b/c`, 'a/b/d', etc. + * + * Generated from protobuf field string prefix = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getPrefix() + { + return $this->prefix; + } + + /** + * Output only. The object prefix. + * Format: `a/b/c`, 'a/b/d', etc. + * + * Generated from protobuf field string prefix = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setPrefix($var) + { + GPBUtil::checkString($var, True); + $this->prefix = $var; + + return $this; + } + + /** + * Output only. The total cross-region egress volume in bytes from the + * object prefix. + * + * Generated from protobuf field int64 total_egress_bytes = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int|string + */ + public function getTotalEgressBytes() + { + return $this->total_egress_bytes; + } + + /** + * Output only. The total cross-region egress volume in bytes from the + * object prefix. + * + * Generated from protobuf field int64 total_egress_bytes = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int|string $var + * @return $this + */ + public function setTotalEgressBytes($var) + { + GPBUtil::checkInt64($var); + $this->total_egress_bytes = $var; + + return $this; + } + + /** + * Output only. The percentage increase in cross-region egress for the + * object prefix. + * + * Generated from protobuf field double percentage_increase = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return float + */ + public function getPercentageIncrease() + { + return $this->percentage_increase; + } + + /** + * Output only. The percentage increase in cross-region egress for the + * object prefix. + * + * Generated from protobuf field double percentage_increase = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param float $var + * @return $this + */ + public function setPercentageIncrease($var) + { + GPBUtil::checkDouble($var); + $this->percentage_increase = $var; + + return $this; + } + +} + diff --git a/StorageControl/src/V2/IntelligenceFinding/StorageGrowthAboveTrend.php b/StorageControl/src/V2/IntelligenceFinding/StorageGrowthAboveTrend.php new file mode 100644 index 000000000000..beb651194f74 --- /dev/null +++ b/StorageControl/src/V2/IntelligenceFinding/StorageGrowthAboveTrend.php @@ -0,0 +1,140 @@ +google.storage.control.v2.IntelligenceFinding.StorageGrowthAboveTrend + */ +class StorageGrowthAboveTrend extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The total storage growth in bytes. + * + * Generated from protobuf field int64 total_storage_growth_bytes = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $total_storage_growth_bytes = 0; + /** + * Output only. The percentage increase in storage growth. + * + * Generated from protobuf field double percentage_increase = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $percentage_increase = 0.0; + /** + * Output only. A list of top buckets driving the increase in storage + * growth. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.StorageGrowthAboveTrend.BucketContribution top_buckets = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + private $top_buckets; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int|string $total_storage_growth_bytes + * Output only. The total storage growth in bytes. + * @type float $percentage_increase + * Output only. The percentage increase in storage growth. + * @type \Google\Cloud\Storage\Control\V2\IntelligenceFinding\StorageGrowthAboveTrend\BucketContribution[] $top_buckets + * Output only. A list of top buckets driving the increase in storage + * growth. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The total storage growth in bytes. + * + * Generated from protobuf field int64 total_storage_growth_bytes = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int|string + */ + public function getTotalStorageGrowthBytes() + { + return $this->total_storage_growth_bytes; + } + + /** + * Output only. The total storage growth in bytes. + * + * Generated from protobuf field int64 total_storage_growth_bytes = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int|string $var + * @return $this + */ + public function setTotalStorageGrowthBytes($var) + { + GPBUtil::checkInt64($var); + $this->total_storage_growth_bytes = $var; + + return $this; + } + + /** + * Output only. The percentage increase in storage growth. + * + * Generated from protobuf field double percentage_increase = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return float + */ + public function getPercentageIncrease() + { + return $this->percentage_increase; + } + + /** + * Output only. The percentage increase in storage growth. + * + * Generated from protobuf field double percentage_increase = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param float $var + * @return $this + */ + public function setPercentageIncrease($var) + { + GPBUtil::checkDouble($var); + $this->percentage_increase = $var; + + return $this; + } + + /** + * Output only. A list of top buckets driving the increase in storage + * growth. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.StorageGrowthAboveTrend.BucketContribution top_buckets = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return RepeatedField<\Google\Cloud\Storage\Control\V2\IntelligenceFinding\StorageGrowthAboveTrend\BucketContribution> + */ + public function getTopBuckets() + { + return $this->top_buckets; + } + + /** + * Output only. A list of top buckets driving the increase in storage + * growth. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.StorageGrowthAboveTrend.BucketContribution top_buckets = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Storage\Control\V2\IntelligenceFinding\StorageGrowthAboveTrend\BucketContribution[] $var + * @return $this + */ + public function setTopBuckets($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Storage\Control\V2\IntelligenceFinding\StorageGrowthAboveTrend\BucketContribution::class); + $this->top_buckets = $arr; + + return $this; + } + +} + diff --git a/StorageControl/src/V2/IntelligenceFinding/StorageGrowthAboveTrend/BucketContribution.php b/StorageControl/src/V2/IntelligenceFinding/StorageGrowthAboveTrend/BucketContribution.php new file mode 100644 index 000000000000..35aa541e0bba --- /dev/null +++ b/StorageControl/src/V2/IntelligenceFinding/StorageGrowthAboveTrend/BucketContribution.php @@ -0,0 +1,180 @@ +google.storage.control.v2.IntelligenceFinding.StorageGrowthAboveTrend.BucketContribution + */ +class BucketContribution extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The name of the bucket. + * + * Generated from protobuf field string bucket = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { + */ + protected $bucket = ''; + /** + * Output only. The total storage growth in bytes for the bucket. + * + * Generated from protobuf field int64 total_storage_growth_bytes = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $total_storage_growth_bytes = 0; + /** + * Output only. The percentage increase in storage growth for the bucket. + * + * Generated from protobuf field double percentage_increase = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $percentage_increase = 0.0; + protected $details; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $bucket + * Output only. The name of the bucket. + * @type int|string $total_storage_growth_bytes + * Output only. The total storage growth in bytes for the bucket. + * @type float $percentage_increase + * Output only. The percentage increase in storage growth for the bucket. + * @type \Google\Rpc\Status $error + * Output only. The error related to accessing the details about the + * contribution of the bucket. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The name of the bucket. + * + * Generated from protobuf field string bucket = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { + * @return string + */ + public function getBucket() + { + return $this->bucket; + } + + /** + * Output only. The name of the bucket. + * + * Generated from protobuf field string bucket = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setBucket($var) + { + GPBUtil::checkString($var, True); + $this->bucket = $var; + + return $this; + } + + /** + * Output only. The total storage growth in bytes for the bucket. + * + * Generated from protobuf field int64 total_storage_growth_bytes = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int|string + */ + public function getTotalStorageGrowthBytes() + { + return $this->total_storage_growth_bytes; + } + + /** + * Output only. The total storage growth in bytes for the bucket. + * + * Generated from protobuf field int64 total_storage_growth_bytes = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int|string $var + * @return $this + */ + public function setTotalStorageGrowthBytes($var) + { + GPBUtil::checkInt64($var); + $this->total_storage_growth_bytes = $var; + + return $this; + } + + /** + * Output only. The percentage increase in storage growth for the bucket. + * + * Generated from protobuf field double percentage_increase = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return float + */ + public function getPercentageIncrease() + { + return $this->percentage_increase; + } + + /** + * Output only. The percentage increase in storage growth for the bucket. + * + * Generated from protobuf field double percentage_increase = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param float $var + * @return $this + */ + public function setPercentageIncrease($var) + { + GPBUtil::checkDouble($var); + $this->percentage_increase = $var; + + return $this; + } + + /** + * Output only. The error related to accessing the details about the + * contribution of the bucket. + * + * Generated from protobuf field .google.rpc.Status error = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Rpc\Status|null + */ + public function getError() + { + return $this->readOneof(5); + } + + public function hasError() + { + return $this->hasOneof(5); + } + + /** + * Output only. The error related to accessing the details about the + * contribution of the bucket. + * + * Generated from protobuf field .google.rpc.Status error = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Rpc\Status $var + * @return $this + */ + public function setError($var) + { + GPBUtil::checkMessage($var, \Google\Rpc\Status::class); + $this->writeOneof(5, $var); + + return $this; + } + + /** + * @return string + */ + public function getDetails() + { + return $this->whichOneof("details"); + } + +} + diff --git a/StorageControl/src/V2/IntelligenceFinding/ThrottledRequestSpike.php b/StorageControl/src/V2/IntelligenceFinding/ThrottledRequestSpike.php new file mode 100644 index 000000000000..a030088c5041 --- /dev/null +++ b/StorageControl/src/V2/IntelligenceFinding/ThrottledRequestSpike.php @@ -0,0 +1,145 @@ +google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike + */ +class ThrottledRequestSpike extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The count of throttled requests across the project. + * + * Generated from protobuf field int64 throttled_requests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $throttled_requests = 0; + /** + * Output only. The percentage increase in throttled requests across the + * project. + * + * Generated from protobuf field double percentage_increase = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $percentage_increase = 0.0; + /** + * Output only. A list of top buckets driving the increase in throttled + * requests. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike.BucketContribution top_buckets = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + private $top_buckets; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int|string $throttled_requests + * Output only. The count of throttled requests across the project. + * @type float $percentage_increase + * Output only. The percentage increase in throttled requests across the + * project. + * @type \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ThrottledRequestSpike\BucketContribution[] $top_buckets + * Output only. A list of top buckets driving the increase in throttled + * requests. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The count of throttled requests across the project. + * + * Generated from protobuf field int64 throttled_requests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int|string + */ + public function getThrottledRequests() + { + return $this->throttled_requests; + } + + /** + * Output only. The count of throttled requests across the project. + * + * Generated from protobuf field int64 throttled_requests = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int|string $var + * @return $this + */ + public function setThrottledRequests($var) + { + GPBUtil::checkInt64($var); + $this->throttled_requests = $var; + + return $this; + } + + /** + * Output only. The percentage increase in throttled requests across the + * project. + * + * Generated from protobuf field double percentage_increase = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return float + */ + public function getPercentageIncrease() + { + return $this->percentage_increase; + } + + /** + * Output only. The percentage increase in throttled requests across the + * project. + * + * Generated from protobuf field double percentage_increase = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param float $var + * @return $this + */ + public function setPercentageIncrease($var) + { + GPBUtil::checkDouble($var); + $this->percentage_increase = $var; + + return $this; + } + + /** + * Output only. A list of top buckets driving the increase in throttled + * requests. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike.BucketContribution top_buckets = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return RepeatedField<\Google\Cloud\Storage\Control\V2\IntelligenceFinding\ThrottledRequestSpike\BucketContribution> + */ + public function getTopBuckets() + { + return $this->top_buckets; + } + + /** + * Output only. A list of top buckets driving the increase in throttled + * requests. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike.BucketContribution top_buckets = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ThrottledRequestSpike\BucketContribution[] $var + * @return $this + */ + public function setTopBuckets($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ThrottledRequestSpike\BucketContribution::class); + $this->top_buckets = $arr; + + return $this; + } + +} + diff --git a/StorageControl/src/V2/IntelligenceFinding/ThrottledRequestSpike/BucketContribution.php b/StorageControl/src/V2/IntelligenceFinding/ThrottledRequestSpike/BucketContribution.php new file mode 100644 index 000000000000..5852e349655d --- /dev/null +++ b/StorageControl/src/V2/IntelligenceFinding/ThrottledRequestSpike/BucketContribution.php @@ -0,0 +1,217 @@ +google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike.BucketContribution + */ +class BucketContribution extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The name of the bucket. + * + * Generated from protobuf field string bucket = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { + */ + protected $bucket = ''; + /** + * Output only. The count of throttled requests for the bucket. + * + * Generated from protobuf field int64 throttled_requests = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $throttled_requests = 0; + /** + * Output only. The percentage increase in throttled requests for the + * bucket. + * + * Generated from protobuf field double percentage_increase = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $percentage_increase = 0.0; + protected $details; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $bucket + * Output only. The name of the bucket. + * @type int|string $throttled_requests + * Output only. The count of throttled requests for the bucket. + * @type float $percentage_increase + * Output only. The percentage increase in throttled requests for the + * bucket. + * @type \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ThrottledRequestSpike\BucketContribution\Contribution $contribution + * Output only. The details about the contribution of the bucket. + * @type \Google\Rpc\Status $error + * Output only. The error related to accessing the details about the + * contribution of the bucket. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The name of the bucket. + * + * Generated from protobuf field string bucket = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { + * @return string + */ + public function getBucket() + { + return $this->bucket; + } + + /** + * Output only. The name of the bucket. + * + * Generated from protobuf field string bucket = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setBucket($var) + { + GPBUtil::checkString($var, True); + $this->bucket = $var; + + return $this; + } + + /** + * Output only. The count of throttled requests for the bucket. + * + * Generated from protobuf field int64 throttled_requests = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int|string + */ + public function getThrottledRequests() + { + return $this->throttled_requests; + } + + /** + * Output only. The count of throttled requests for the bucket. + * + * Generated from protobuf field int64 throttled_requests = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int|string $var + * @return $this + */ + public function setThrottledRequests($var) + { + GPBUtil::checkInt64($var); + $this->throttled_requests = $var; + + return $this; + } + + /** + * Output only. The percentage increase in throttled requests for the + * bucket. + * + * Generated from protobuf field double percentage_increase = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return float + */ + public function getPercentageIncrease() + { + return $this->percentage_increase; + } + + /** + * Output only. The percentage increase in throttled requests for the + * bucket. + * + * Generated from protobuf field double percentage_increase = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param float $var + * @return $this + */ + public function setPercentageIncrease($var) + { + GPBUtil::checkDouble($var); + $this->percentage_increase = $var; + + return $this; + } + + /** + * Output only. The details about the contribution of the bucket. + * + * Generated from protobuf field .google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike.BucketContribution.Contribution contribution = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ThrottledRequestSpike\BucketContribution\Contribution|null + */ + public function getContribution() + { + return $this->readOneof(4); + } + + public function hasContribution() + { + return $this->hasOneof(4); + } + + /** + * Output only. The details about the contribution of the bucket. + * + * Generated from protobuf field .google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike.BucketContribution.Contribution contribution = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ThrottledRequestSpike\BucketContribution\Contribution $var + * @return $this + */ + public function setContribution($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ThrottledRequestSpike\BucketContribution\Contribution::class); + $this->writeOneof(4, $var); + + return $this; + } + + /** + * Output only. The error related to accessing the details about the + * contribution of the bucket. + * + * Generated from protobuf field .google.rpc.Status error = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Rpc\Status|null + */ + public function getError() + { + return $this->readOneof(5); + } + + public function hasError() + { + return $this->hasOneof(5); + } + + /** + * Output only. The error related to accessing the details about the + * contribution of the bucket. + * + * Generated from protobuf field .google.rpc.Status error = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Rpc\Status $var + * @return $this + */ + public function setError($var) + { + GPBUtil::checkMessage($var, \Google\Rpc\Status::class); + $this->writeOneof(5, $var); + + return $this; + } + + /** + * @return string + */ + public function getDetails() + { + return $this->whichOneof("details"); + } + +} + diff --git a/StorageControl/src/V2/IntelligenceFinding/ThrottledRequestSpike/BucketContribution/Contribution.php b/StorageControl/src/V2/IntelligenceFinding/ThrottledRequestSpike/BucketContribution/Contribution.php new file mode 100644 index 000000000000..bcc955077a85 --- /dev/null +++ b/StorageControl/src/V2/IntelligenceFinding/ThrottledRequestSpike/BucketContribution/Contribution.php @@ -0,0 +1,72 @@ +google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike.BucketContribution.Contribution + */ +class Contribution extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. A list of top object prefixes driving the increase in + * throttled requests. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike.BucketContribution.Contribution.PrefixContribution top_prefixes = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + private $top_prefixes; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ThrottledRequestSpike\BucketContribution\Contribution\PrefixContribution[] $top_prefixes + * Output only. A list of top object prefixes driving the increase in + * throttled requests. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Output only. A list of top object prefixes driving the increase in + * throttled requests. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike.BucketContribution.Contribution.PrefixContribution top_prefixes = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return RepeatedField<\Google\Cloud\Storage\Control\V2\IntelligenceFinding\ThrottledRequestSpike\BucketContribution\Contribution\PrefixContribution> + */ + public function getTopPrefixes() + { + return $this->top_prefixes; + } + + /** + * Output only. A list of top object prefixes driving the increase in + * throttled requests. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike.BucketContribution.Contribution.PrefixContribution top_prefixes = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ThrottledRequestSpike\BucketContribution\Contribution\PrefixContribution[] $var + * @return $this + */ + public function setTopPrefixes($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Storage\Control\V2\IntelligenceFinding\ThrottledRequestSpike\BucketContribution\Contribution\PrefixContribution::class); + $this->top_prefixes = $arr; + + return $this; + } + +} + diff --git a/StorageControl/src/V2/IntelligenceFinding/ThrottledRequestSpike/BucketContribution/Contribution/PrefixContribution.php b/StorageControl/src/V2/IntelligenceFinding/ThrottledRequestSpike/BucketContribution/Contribution/PrefixContribution.php new file mode 100644 index 000000000000..ca9457f418c1 --- /dev/null +++ b/StorageControl/src/V2/IntelligenceFinding/ThrottledRequestSpike/BucketContribution/Contribution/PrefixContribution.php @@ -0,0 +1,143 @@ +google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike.BucketContribution.Contribution.PrefixContribution + */ +class PrefixContribution extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The object prefix. + * Format: `a/b/c`, 'a/b/d', etc. + * + * Generated from protobuf field string prefix = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $prefix = ''; + /** + * Output only. The count of throttled requests for the object prefix. + * + * Generated from protobuf field int64 throttled_requests = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $throttled_requests = 0; + /** + * Output only. The percentage increase in throttled requests for the + * object prefix. + * + * Generated from protobuf field double percentage_increase = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $percentage_increase = 0.0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $prefix + * Output only. The object prefix. + * Format: `a/b/c`, 'a/b/d', etc. + * @type int|string $throttled_requests + * Output only. The count of throttled requests for the object prefix. + * @type float $percentage_increase + * Output only. The percentage increase in throttled requests for the + * object prefix. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The object prefix. + * Format: `a/b/c`, 'a/b/d', etc. + * + * Generated from protobuf field string prefix = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getPrefix() + { + return $this->prefix; + } + + /** + * Output only. The object prefix. + * Format: `a/b/c`, 'a/b/d', etc. + * + * Generated from protobuf field string prefix = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setPrefix($var) + { + GPBUtil::checkString($var, True); + $this->prefix = $var; + + return $this; + } + + /** + * Output only. The count of throttled requests for the object prefix. + * + * Generated from protobuf field int64 throttled_requests = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int|string + */ + public function getThrottledRequests() + { + return $this->throttled_requests; + } + + /** + * Output only. The count of throttled requests for the object prefix. + * + * Generated from protobuf field int64 throttled_requests = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int|string $var + * @return $this + */ + public function setThrottledRequests($var) + { + GPBUtil::checkInt64($var); + $this->throttled_requests = $var; + + return $this; + } + + /** + * Output only. The percentage increase in throttled requests for the + * object prefix. + * + * Generated from protobuf field double percentage_increase = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return float + */ + public function getPercentageIncrease() + { + return $this->percentage_increase; + } + + /** + * Output only. The percentage increase in throttled requests for the + * object prefix. + * + * Generated from protobuf field double percentage_increase = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param float $var + * @return $this + */ + public function setPercentageIncrease($var) + { + GPBUtil::checkDouble($var); + $this->percentage_increase = $var; + + return $this; + } + +} + diff --git a/StorageControl/src/V2/IntelligenceFindingRevision.php b/StorageControl/src/V2/IntelligenceFindingRevision.php new file mode 100644 index 000000000000..c2aab16b1cfb --- /dev/null +++ b/StorageControl/src/V2/IntelligenceFindingRevision.php @@ -0,0 +1,172 @@ +google.storage.control.v2.IntelligenceFindingRevision + */ +class IntelligenceFindingRevision extends \Google\Protobuf\Internal\Message +{ + /** + * Identifier. The resource name of `IntelligenceFindingRevision`. + * Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}/revisions/{revision}` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER]; + */ + protected $name = ''; + /** + * Output only. The snapshot of the `IntelligenceFinding` at the time the + * revision was created. This field contains the full finding details as they + * existed for the revision. + * + * Generated from protobuf field .google.storage.control.v2.IntelligenceFinding snapshot = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $snapshot = null; + /** + * Output only. The timestamp when the revision was created. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $create_time = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Identifier. The resource name of `IntelligenceFindingRevision`. + * Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}/revisions/{revision}` + * @type \Google\Cloud\Storage\Control\V2\IntelligenceFinding $snapshot + * Output only. The snapshot of the `IntelligenceFinding` at the time the + * revision was created. This field contains the full finding details as they + * existed for the revision. + * @type \Google\Protobuf\Timestamp $create_time + * Output only. The timestamp when the revision was created. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Identifier. The resource name of `IntelligenceFindingRevision`. + * Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}/revisions/{revision}` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Identifier. The resource name of `IntelligenceFindingRevision`. + * Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}/revisions/{revision}` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Output only. The snapshot of the `IntelligenceFinding` at the time the + * revision was created. This field contains the full finding details as they + * existed for the revision. + * + * Generated from protobuf field .google.storage.control.v2.IntelligenceFinding snapshot = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Storage\Control\V2\IntelligenceFinding|null + */ + public function getSnapshot() + { + return $this->snapshot; + } + + public function hasSnapshot() + { + return isset($this->snapshot); + } + + public function clearSnapshot() + { + unset($this->snapshot); + } + + /** + * Output only. The snapshot of the `IntelligenceFinding` at the time the + * revision was created. This field contains the full finding details as they + * existed for the revision. + * + * Generated from protobuf field .google.storage.control.v2.IntelligenceFinding snapshot = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Storage\Control\V2\IntelligenceFinding $var + * @return $this + */ + public function setSnapshot($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Storage\Control\V2\IntelligenceFinding::class); + $this->snapshot = $var; + + return $this; + } + + /** + * Output only. The timestamp when the revision was created. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Output only. The timestamp when the revision was created. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + +} + diff --git a/StorageControl/src/V2/ListIntelligenceFindingRevisionsRequest.php b/StorageControl/src/V2/ListIntelligenceFindingRevisionsRequest.php new file mode 100644 index 000000000000..46d060ee666c --- /dev/null +++ b/StorageControl/src/V2/ListIntelligenceFindingRevisionsRequest.php @@ -0,0 +1,181 @@ +google.storage.control.v2.ListIntelligenceFindingRevisionsRequest + */ +class ListIntelligenceFindingRevisionsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The parent of the `IntelligenceFindingRevision` resource. + * ## Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. The maximum number of `IntelligenceFindingRevision` resources to + * return. + * The maximum value is `100`; values above `100` will be coerced to `100`. + * The default value is `100`. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_size = 0; + /** + * Optional. A page token, received from a previous + * `ListIntelligenceFindingRevisions` call. Provide this to retrieve the + * subsequent page. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_token = ''; + + /** + * @param string $parent Required. The parent of the `IntelligenceFindingRevision` resource. + * ## Format: + * + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}` + * Please see {@see StorageControlClient::intelligenceFindingName()} for help formatting this field. + * + * @return \Google\Cloud\Storage\Control\V2\ListIntelligenceFindingRevisionsRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The parent of the `IntelligenceFindingRevision` resource. + * ## Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}` + * @type int $page_size + * Optional. The maximum number of `IntelligenceFindingRevision` resources to + * return. + * The maximum value is `100`; values above `100` will be coerced to `100`. + * The default value is `100`. + * @type string $page_token + * Optional. A page token, received from a previous + * `ListIntelligenceFindingRevisions` call. Provide this to retrieve the + * subsequent page. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Required. The parent of the `IntelligenceFindingRevision` resource. + * ## Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The parent of the `IntelligenceFindingRevision` resource. + * ## Format: + * `projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. The maximum number of `IntelligenceFindingRevision` resources to + * return. + * The maximum value is `100`; values above `100` will be coerced to `100`. + * The default value is `100`. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * Optional. The maximum number of `IntelligenceFindingRevision` resources to + * return. + * The maximum value is `100`; values above `100` will be coerced to `100`. + * The default value is `100`. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * Optional. A page token, received from a previous + * `ListIntelligenceFindingRevisions` call. Provide this to retrieve the + * subsequent page. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * Optional. A page token, received from a previous + * `ListIntelligenceFindingRevisions` call. Provide this to retrieve the + * subsequent page. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + +} + diff --git a/StorageControl/src/V2/ListIntelligenceFindingRevisionsResponse.php b/StorageControl/src/V2/ListIntelligenceFindingRevisionsResponse.php new file mode 100644 index 000000000000..a4405f4afe74 --- /dev/null +++ b/StorageControl/src/V2/ListIntelligenceFindingRevisionsResponse.php @@ -0,0 +1,102 @@ +google.storage.control.v2.ListIntelligenceFindingRevisionsResponse + */ +class ListIntelligenceFindingRevisionsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The `IntelligenceFindingRevision` resources from the specified project. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFindingRevision intelligence_finding_revisions = 1; + */ + private $intelligence_finding_revisions; + /** + * A token that can be sent as `page_token` to retrieve the next page. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Storage\Control\V2\IntelligenceFindingRevision[] $intelligence_finding_revisions + * The `IntelligenceFindingRevision` resources from the specified project. + * @type string $next_page_token + * A token that can be sent as `page_token` to retrieve the next page. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * The `IntelligenceFindingRevision` resources from the specified project. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFindingRevision intelligence_finding_revisions = 1; + * @return RepeatedField<\Google\Cloud\Storage\Control\V2\IntelligenceFindingRevision> + */ + public function getIntelligenceFindingRevisions() + { + return $this->intelligence_finding_revisions; + } + + /** + * The `IntelligenceFindingRevision` resources from the specified project. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFindingRevision intelligence_finding_revisions = 1; + * @param \Google\Cloud\Storage\Control\V2\IntelligenceFindingRevision[] $var + * @return $this + */ + public function setIntelligenceFindingRevisions($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Storage\Control\V2\IntelligenceFindingRevision::class); + $this->intelligence_finding_revisions = $arr; + + return $this; + } + + /** + * A token that can be sent as `page_token` to retrieve the next page. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * A token that can be sent as `page_token` to retrieve the next page. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/StorageControl/src/V2/ListIntelligenceFindingsRequest.php b/StorageControl/src/V2/ListIntelligenceFindingsRequest.php new file mode 100644 index 000000000000..09e43da2db45 --- /dev/null +++ b/StorageControl/src/V2/ListIntelligenceFindingsRequest.php @@ -0,0 +1,218 @@ +google.storage.control.v2.ListIntelligenceFindingsRequest + */ +class ListIntelligenceFindingsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The parent of the `IntelligenceFinding` resource. + * Format: `projects/{project}/locations/{location}` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. The filter expression to be applied. + * Supports filtering by `type` and `associated_resources`. + * + * Generated from protobuf field string filter = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $filter = ''; + /** + * Optional. The maximum number of `IntelligenceFinding` resources to return. + * The maximum value is `100`; values above `100` will be coerced to `100`. + * The default value is `100`. + * + * Generated from protobuf field int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_size = 0; + /** + * Optional. A page token, received from a previous `ListIntelligenceFindings` + * call. Provide this to retrieve the subsequent page. + * When paginating, all other parameters provided to + * `ListIntelligenceFindings` must match the call that provided the page + * token. + * + * Generated from protobuf field string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_token = ''; + + /** + * @param string $parent Required. The parent of the `IntelligenceFinding` resource. + * + * Format: `projects/{project}/locations/{location}` + * Please see {@see StorageControlClient::locationName()} for help formatting this field. + * + * @return \Google\Cloud\Storage\Control\V2\ListIntelligenceFindingsRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The parent of the `IntelligenceFinding` resource. + * Format: `projects/{project}/locations/{location}` + * @type string $filter + * Optional. The filter expression to be applied. + * Supports filtering by `type` and `associated_resources`. + * @type int $page_size + * Optional. The maximum number of `IntelligenceFinding` resources to return. + * The maximum value is `100`; values above `100` will be coerced to `100`. + * The default value is `100`. + * @type string $page_token + * Optional. A page token, received from a previous `ListIntelligenceFindings` + * call. Provide this to retrieve the subsequent page. + * When paginating, all other parameters provided to + * `ListIntelligenceFindings` must match the call that provided the page + * token. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Required. The parent of the `IntelligenceFinding` resource. + * Format: `projects/{project}/locations/{location}` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The parent of the `IntelligenceFinding` resource. + * Format: `projects/{project}/locations/{location}` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. The filter expression to be applied. + * Supports filtering by `type` and `associated_resources`. + * + * Generated from protobuf field string filter = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getFilter() + { + return $this->filter; + } + + /** + * Optional. The filter expression to be applied. + * Supports filtering by `type` and `associated_resources`. + * + * Generated from protobuf field string filter = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setFilter($var) + { + GPBUtil::checkString($var, True); + $this->filter = $var; + + return $this; + } + + /** + * Optional. The maximum number of `IntelligenceFinding` resources to return. + * The maximum value is `100`; values above `100` will be coerced to `100`. + * The default value is `100`. + * + * Generated from protobuf field int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * Optional. The maximum number of `IntelligenceFinding` resources to return. + * The maximum value is `100`; values above `100` will be coerced to `100`. + * The default value is `100`. + * + * Generated from protobuf field int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * Optional. A page token, received from a previous `ListIntelligenceFindings` + * call. Provide this to retrieve the subsequent page. + * When paginating, all other parameters provided to + * `ListIntelligenceFindings` must match the call that provided the page + * token. + * + * Generated from protobuf field string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * Optional. A page token, received from a previous `ListIntelligenceFindings` + * call. Provide this to retrieve the subsequent page. + * When paginating, all other parameters provided to + * `ListIntelligenceFindings` must match the call that provided the page + * token. + * + * Generated from protobuf field string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + +} + diff --git a/StorageControl/src/V2/ListIntelligenceFindingsResponse.php b/StorageControl/src/V2/ListIntelligenceFindingsResponse.php new file mode 100644 index 000000000000..b429795edbc4 --- /dev/null +++ b/StorageControl/src/V2/ListIntelligenceFindingsResponse.php @@ -0,0 +1,106 @@ +google.storage.control.v2.ListIntelligenceFindingsResponse + */ +class ListIntelligenceFindingsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The `IntelligenceFinding` resources from the specified project. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding intelligence_findings = 1; + */ + private $intelligence_findings; + /** + * A token to retrieve the next page of results. + * Pass this value in the `page_token` field in the subsequent call. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Storage\Control\V2\IntelligenceFinding[] $intelligence_findings + * The `IntelligenceFinding` resources from the specified project. + * @type string $next_page_token + * A token to retrieve the next page of results. + * Pass this value in the `page_token` field in the subsequent call. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * The `IntelligenceFinding` resources from the specified project. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding intelligence_findings = 1; + * @return RepeatedField<\Google\Cloud\Storage\Control\V2\IntelligenceFinding> + */ + public function getIntelligenceFindings() + { + return $this->intelligence_findings; + } + + /** + * The `IntelligenceFinding` resources from the specified project. + * + * Generated from protobuf field repeated .google.storage.control.v2.IntelligenceFinding intelligence_findings = 1; + * @param \Google\Cloud\Storage\Control\V2\IntelligenceFinding[] $var + * @return $this + */ + public function setIntelligenceFindings($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Storage\Control\V2\IntelligenceFinding::class); + $this->intelligence_findings = $arr; + + return $this; + } + + /** + * A token to retrieve the next page of results. + * Pass this value in the `page_token` field in the subsequent call. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * A token to retrieve the next page of results. + * Pass this value in the `page_token` field in the subsequent call. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/StorageControl/src/V2/SummarizeIntelligenceFindingsRequest.php b/StorageControl/src/V2/SummarizeIntelligenceFindingsRequest.php new file mode 100644 index 000000000000..7b670ac9a5dc --- /dev/null +++ b/StorageControl/src/V2/SummarizeIntelligenceFindingsRequest.php @@ -0,0 +1,301 @@ +google.storage.control.v2.SummarizeIntelligenceFindingsRequest + */ +class SummarizeIntelligenceFindingsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The scope to summarize the findings for. + * Format: + * - `organizations/{organization}/locations/{location}` + * - `folders/{folder}/locations/{location}` + * - `projects/{project}/locations/{location}` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $parent = ''; + /** + * Optional. Determines the granularity of the findings + * when the `parent` is an organization or folder. + * - `PARENT` (or not set): A single summary is + * returned for each insight type, aggregated across the entire `parent` + * scope. + * - `PROJECT`: A separate summary is returned for each + * insight type for every project within the `parent` scope. + * The only supported values are `PARENT` and `PROJECT`. + * If no value is specified, the API behaviour defaults to the `PARENT`. + * + * Generated from protobuf field .google.storage.control.v2.SummarizeIntelligenceFindingsRequest.ResourceScope resource_scope = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $resource_scope = 0; + /** + * Optional. The filter expression, following AIP-160. + * Supports filtering by FindingType. + * + * Generated from protobuf field string filter = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $filter = ''; + /** + * Optional. The maximum number of findings to return. + * The maximum value is `100`; values above `100` will be coerced to `100`. + * The default value is `100`. + * + * Generated from protobuf field int32 page_size = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_size = 0; + /** + * Optional. A page token, received from a previous + * `SummarizeIntelligenceFindings` call. Provide this to retrieve the + * subsequent page. + * When paginating, all other parameters provided to + * `SummarizeIntelligenceFindings` must match the call that provided the page + * token. + * + * Generated from protobuf field string page_token = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_token = ''; + + /** + * @param string $parent Required. The scope to summarize the findings for. + * Format: + * - `organizations/{organization}/locations/{location}` + * - `folders/{folder}/locations/{location}` + * - `projects/{project}/locations/{location}` + * + * @return \Google\Cloud\Storage\Control\V2\SummarizeIntelligenceFindingsRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The scope to summarize the findings for. + * Format: + * - `organizations/{organization}/locations/{location}` + * - `folders/{folder}/locations/{location}` + * - `projects/{project}/locations/{location}` + * @type int $resource_scope + * Optional. Determines the granularity of the findings + * when the `parent` is an organization or folder. + * - `PARENT` (or not set): A single summary is + * returned for each insight type, aggregated across the entire `parent` + * scope. + * - `PROJECT`: A separate summary is returned for each + * insight type for every project within the `parent` scope. + * The only supported values are `PARENT` and `PROJECT`. + * If no value is specified, the API behaviour defaults to the `PARENT`. + * @type string $filter + * Optional. The filter expression, following AIP-160. + * Supports filtering by FindingType. + * @type int $page_size + * Optional. The maximum number of findings to return. + * The maximum value is `100`; values above `100` will be coerced to `100`. + * The default value is `100`. + * @type string $page_token + * Optional. A page token, received from a previous + * `SummarizeIntelligenceFindings` call. Provide this to retrieve the + * subsequent page. + * When paginating, all other parameters provided to + * `SummarizeIntelligenceFindings` must match the call that provided the page + * token. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * Required. The scope to summarize the findings for. + * Format: + * - `organizations/{organization}/locations/{location}` + * - `folders/{folder}/locations/{location}` + * - `projects/{project}/locations/{location}` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The scope to summarize the findings for. + * Format: + * - `organizations/{organization}/locations/{location}` + * - `folders/{folder}/locations/{location}` + * - `projects/{project}/locations/{location}` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. Determines the granularity of the findings + * when the `parent` is an organization or folder. + * - `PARENT` (or not set): A single summary is + * returned for each insight type, aggregated across the entire `parent` + * scope. + * - `PROJECT`: A separate summary is returned for each + * insight type for every project within the `parent` scope. + * The only supported values are `PARENT` and `PROJECT`. + * If no value is specified, the API behaviour defaults to the `PARENT`. + * + * Generated from protobuf field .google.storage.control.v2.SummarizeIntelligenceFindingsRequest.ResourceScope resource_scope = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getResourceScope() + { + return $this->resource_scope; + } + + /** + * Optional. Determines the granularity of the findings + * when the `parent` is an organization or folder. + * - `PARENT` (or not set): A single summary is + * returned for each insight type, aggregated across the entire `parent` + * scope. + * - `PROJECT`: A separate summary is returned for each + * insight type for every project within the `parent` scope. + * The only supported values are `PARENT` and `PROJECT`. + * If no value is specified, the API behaviour defaults to the `PARENT`. + * + * Generated from protobuf field .google.storage.control.v2.SummarizeIntelligenceFindingsRequest.ResourceScope resource_scope = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setResourceScope($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Storage\Control\V2\SummarizeIntelligenceFindingsRequest\ResourceScope::class); + $this->resource_scope = $var; + + return $this; + } + + /** + * Optional. The filter expression, following AIP-160. + * Supports filtering by FindingType. + * + * Generated from protobuf field string filter = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getFilter() + { + return $this->filter; + } + + /** + * Optional. The filter expression, following AIP-160. + * Supports filtering by FindingType. + * + * Generated from protobuf field string filter = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setFilter($var) + { + GPBUtil::checkString($var, True); + $this->filter = $var; + + return $this; + } + + /** + * Optional. The maximum number of findings to return. + * The maximum value is `100`; values above `100` will be coerced to `100`. + * The default value is `100`. + * + * Generated from protobuf field int32 page_size = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * Optional. The maximum number of findings to return. + * The maximum value is `100`; values above `100` will be coerced to `100`. + * The default value is `100`. + * + * Generated from protobuf field int32 page_size = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * Optional. A page token, received from a previous + * `SummarizeIntelligenceFindings` call. Provide this to retrieve the + * subsequent page. + * When paginating, all other parameters provided to + * `SummarizeIntelligenceFindings` must match the call that provided the page + * token. + * + * Generated from protobuf field string page_token = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * Optional. A page token, received from a previous + * `SummarizeIntelligenceFindings` call. Provide this to retrieve the + * subsequent page. + * When paginating, all other parameters provided to + * `SummarizeIntelligenceFindings` must match the call that provided the page + * token. + * + * Generated from protobuf field string page_token = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + +} + diff --git a/StorageControl/src/V2/SummarizeIntelligenceFindingsRequest/ResourceScope.php b/StorageControl/src/V2/SummarizeIntelligenceFindingsRequest/ResourceScope.php new file mode 100644 index 000000000000..e3b93d42af34 --- /dev/null +++ b/StorageControl/src/V2/SummarizeIntelligenceFindingsRequest/ResourceScope.php @@ -0,0 +1,61 @@ +google.storage.control.v2.SummarizeIntelligenceFindingsRequest.ResourceScope + */ +class ResourceScope +{ + /** + * The default behavior. Falls back to PARENT behaviour + * + * Generated from protobuf enum RESOURCE_SCOPE_UNSPECIFIED = 0; + */ + const RESOURCE_SCOPE_UNSPECIFIED = 0; + /** + * Summaries are aggregated at the level of the `parent` resource. + * + * Generated from protobuf enum PARENT = 1; + */ + const PARENT = 1; + /** + * Summaries are broken down by each project within the `parent` scope. + * + * Generated from protobuf enum PROJECT = 2; + */ + const PROJECT = 2; + + private static $valueToName = [ + self::RESOURCE_SCOPE_UNSPECIFIED => 'RESOURCE_SCOPE_UNSPECIFIED', + self::PARENT => 'PARENT', + self::PROJECT => 'PROJECT', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/StorageControl/src/V2/SummarizeIntelligenceFindingsResponse.php b/StorageControl/src/V2/SummarizeIntelligenceFindingsResponse.php new file mode 100644 index 000000000000..8a4680a28d1b --- /dev/null +++ b/StorageControl/src/V2/SummarizeIntelligenceFindingsResponse.php @@ -0,0 +1,110 @@ +google.storage.control.v2.SummarizeIntelligenceFindingsResponse + */ +class SummarizeIntelligenceFindingsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The list of `FindingSummary` summaries. + * + * Generated from protobuf field repeated .google.storage.control.v2.FindingSummary finding_summaries = 1; + */ + private $finding_summaries; + /** + * A token to retrieve the next page of results. + * Pass this value in the `page_token` field in the subsequent call to + * `SummarizeIntelligenceFindings` to retrieve the next page of results. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Storage\Control\V2\FindingSummary[] $finding_summaries + * The list of `FindingSummary` summaries. + * @type string $next_page_token + * A token to retrieve the next page of results. + * Pass this value in the `page_token` field in the subsequent call to + * `SummarizeIntelligenceFindings` to retrieve the next page of results. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Storage\Control\V2\StorageControl::initOnce(); + parent::__construct($data); + } + + /** + * The list of `FindingSummary` summaries. + * + * Generated from protobuf field repeated .google.storage.control.v2.FindingSummary finding_summaries = 1; + * @return RepeatedField<\Google\Cloud\Storage\Control\V2\FindingSummary> + */ + public function getFindingSummaries() + { + return $this->finding_summaries; + } + + /** + * The list of `FindingSummary` summaries. + * + * Generated from protobuf field repeated .google.storage.control.v2.FindingSummary finding_summaries = 1; + * @param \Google\Cloud\Storage\Control\V2\FindingSummary[] $var + * @return $this + */ + public function setFindingSummaries($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Storage\Control\V2\FindingSummary::class); + $this->finding_summaries = $arr; + + return $this; + } + + /** + * A token to retrieve the next page of results. + * Pass this value in the `page_token` field in the subsequent call to + * `SummarizeIntelligenceFindings` to retrieve the next page of results. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * A token to retrieve the next page of results. + * Pass this value in the `page_token` field in the subsequent call to + * `SummarizeIntelligenceFindings` to retrieve the next page of results. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/StorageControl/src/V2/gapic_metadata.json b/StorageControl/src/V2/gapic_metadata.json index 86b444f90e16..356973e231f7 100644 --- a/StorageControl/src/V2/gapic_metadata.json +++ b/StorageControl/src/V2/gapic_metadata.json @@ -65,6 +65,16 @@ "getIamPolicy" ] }, + "GetIntelligenceFinding": { + "methods": [ + "getIntelligenceFinding" + ] + }, + "GetIntelligenceFindingRevision": { + "methods": [ + "getIntelligenceFindingRevision" + ] + }, "GetManagedFolder": { "methods": [ "getManagedFolder" @@ -95,6 +105,16 @@ "listFolders" ] }, + "ListIntelligenceFindingRevisions": { + "methods": [ + "listIntelligenceFindingRevisions" + ] + }, + "ListIntelligenceFindings": { + "methods": [ + "listIntelligenceFindings" + ] + }, "ListManagedFolders": { "methods": [ "listManagedFolders" @@ -120,6 +140,11 @@ "setIamPolicy" ] }, + "SummarizeIntelligenceFindings": { + "methods": [ + "summarizeIntelligenceFindings" + ] + }, "TestIamPermissions": { "methods": [ "testIamPermissions" diff --git a/StorageControl/src/V2/resources/storage_control_client_config.json b/StorageControl/src/V2/resources/storage_control_client_config.json index 93b69f4f75bf..48fba696916d 100644 --- a/StorageControl/src/V2/resources/storage_control_client_config.json +++ b/StorageControl/src/V2/resources/storage_control_client_config.json @@ -97,6 +97,16 @@ "retry_codes_name": "no_retry_1_codes", "retry_params_name": "no_retry_1_params" }, + "GetIntelligenceFinding": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetIntelligenceFindingRevision": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, "GetManagedFolder": { "timeout_millis": 60000, "retry_codes_name": "retry_policy_1_codes", @@ -127,6 +137,16 @@ "retry_codes_name": "retry_policy_1_codes", "retry_params_name": "retry_policy_1_params" }, + "ListIntelligenceFindingRevisions": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListIntelligenceFindings": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, "ListManagedFolders": { "timeout_millis": 60000, "retry_codes_name": "retry_policy_1_codes", @@ -152,6 +172,11 @@ "retry_codes_name": "no_retry_1_codes", "retry_params_name": "no_retry_1_params" }, + "SummarizeIntelligenceFindings": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, "TestIamPermissions": { "timeout_millis": 60000, "retry_codes_name": "no_retry_1_codes", diff --git a/StorageControl/src/V2/resources/storage_control_descriptor_config.php b/StorageControl/src/V2/resources/storage_control_descriptor_config.php index 68d8f4d8702d..ab0db6c210d8 100644 --- a/StorageControl/src/V2/resources/storage_control_descriptor_config.php +++ b/StorageControl/src/V2/resources/storage_control_descriptor_config.php @@ -268,6 +268,30 @@ ], ], ], + 'GetIntelligenceFinding' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Storage\Control\V2\IntelligenceFinding', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'GetIntelligenceFindingRevision' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Storage\Control\V2\IntelligenceFindingRevision', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], 'GetManagedFolder' => [ 'callType' => \Google\ApiCore\Call::UNARY_CALL, 'responseType' => 'Google\Cloud\Storage\Control\V2\ManagedFolder', @@ -371,6 +395,46 @@ ], ], ], + 'ListIntelligenceFindingRevisions' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getIntelligenceFindingRevisions', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Storage\Control\V2\ListIntelligenceFindingRevisionsResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'ListIntelligenceFindings' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getIntelligenceFindings', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Storage\Control\V2\ListIntelligenceFindingsResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], 'ListManagedFolders' => [ 'pageStreaming' => [ 'requestPageTokenGetMethod' => 'getPageToken', @@ -445,6 +509,26 @@ ], ], ], + 'SummarizeIntelligenceFindings' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getFindingSummaries', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Storage\Control\V2\SummarizeIntelligenceFindingsResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], 'TestIamPermissions' => [ 'callType' => \Google\ApiCore\Call::UNARY_CALL, 'responseType' => 'Google\Cloud\Iam\V1\TestIamPermissionsResponse', @@ -506,6 +590,9 @@ 'folder' => 'projects/{project}/buckets/{bucket}/folders/{folder=**}', 'folderLocationIntelligenceConfig' => 'folders/{folder}/locations/{location}/intelligenceConfig', 'intelligenceConfig' => 'folders/{folder}/locations/{location}/intelligenceConfig', + 'intelligenceFinding' => 'projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}', + 'intelligenceFindingRevision' => 'projects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}/revisions/{revision}', + 'location' => 'projects/{project}/locations/{location}', 'managedFolder' => 'projects/{project}/buckets/{bucket}/managedFolders/{managed_folder=**}', 'orgLocationIntelligenceConfig' => 'organizations/{org}/locations/{location}/intelligenceConfig', 'projectLocationIntelligenceConfig' => 'projects/{project}/locations/{location}/intelligenceConfig', diff --git a/StorageControl/src/V2/resources/storage_control_rest_client_config.php b/StorageControl/src/V2/resources/storage_control_rest_client_config.php index 1795c3b4f3c1..2fa484ed082d 100644 --- a/StorageControl/src/V2/resources/storage_control_rest_client_config.php +++ b/StorageControl/src/V2/resources/storage_control_rest_client_config.php @@ -34,6 +34,28 @@ ], ], ], + 'GetIntelligenceFinding' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/intelligenceFindings/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetIntelligenceFindingRevision' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/intelligenceFindings/*/revisions/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], 'GetOrganizationIntelligenceConfig' => [ 'method' => 'get', 'uriTemplate' => '/v2/{name=organizations/*/locations/*/intelligenceConfig}', @@ -56,6 +78,49 @@ ], ], ], + 'ListIntelligenceFindingRevisions' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/intelligenceFindings/*}/revisions', + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'ListIntelligenceFindings' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/intelligenceFindings', + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'SummarizeIntelligenceFindings' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/intelligenceFindings:summarize', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=folders/*/locations/*}/intelligenceFindings:summarize', + ], + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=organizations/*/locations/*}/intelligenceFindings:summarize', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], 'UpdateFolderIntelligenceConfig' => [ 'method' => 'patch', 'uriTemplate' => '/v2/{intelligence_config.name=folders/*/locations/*/intelligenceConfig}', diff --git a/StorageControl/tests/Unit/V2/Client/StorageControlClientTest.php b/StorageControl/tests/Unit/V2/Client/StorageControlClientTest.php index 6e6b375e8195..ef7a02a8e0a3 100644 --- a/StorageControl/tests/Unit/V2/Client/StorageControlClientTest.php +++ b/StorageControl/tests/Unit/V2/Client/StorageControlClientTest.php @@ -40,19 +40,28 @@ use Google\Cloud\Storage\Control\V2\DeleteFolderRequest; use Google\Cloud\Storage\Control\V2\DeleteManagedFolderRequest; use Google\Cloud\Storage\Control\V2\DisableAnywhereCacheRequest; +use Google\Cloud\Storage\Control\V2\FindingSummary; use Google\Cloud\Storage\Control\V2\Folder; use Google\Cloud\Storage\Control\V2\GetAnywhereCacheRequest; use Google\Cloud\Storage\Control\V2\GetFolderIntelligenceConfigRequest; use Google\Cloud\Storage\Control\V2\GetFolderRequest; +use Google\Cloud\Storage\Control\V2\GetIntelligenceFindingRequest; +use Google\Cloud\Storage\Control\V2\GetIntelligenceFindingRevisionRequest; use Google\Cloud\Storage\Control\V2\GetManagedFolderRequest; use Google\Cloud\Storage\Control\V2\GetOrganizationIntelligenceConfigRequest; use Google\Cloud\Storage\Control\V2\GetProjectIntelligenceConfigRequest; use Google\Cloud\Storage\Control\V2\GetStorageLayoutRequest; use Google\Cloud\Storage\Control\V2\IntelligenceConfig; +use Google\Cloud\Storage\Control\V2\IntelligenceFinding; +use Google\Cloud\Storage\Control\V2\IntelligenceFindingRevision; use Google\Cloud\Storage\Control\V2\ListAnywhereCachesRequest; use Google\Cloud\Storage\Control\V2\ListAnywhereCachesResponse; use Google\Cloud\Storage\Control\V2\ListFoldersRequest; use Google\Cloud\Storage\Control\V2\ListFoldersResponse; +use Google\Cloud\Storage\Control\V2\ListIntelligenceFindingRevisionsRequest; +use Google\Cloud\Storage\Control\V2\ListIntelligenceFindingRevisionsResponse; +use Google\Cloud\Storage\Control\V2\ListIntelligenceFindingsRequest; +use Google\Cloud\Storage\Control\V2\ListIntelligenceFindingsResponse; use Google\Cloud\Storage\Control\V2\ListManagedFoldersRequest; use Google\Cloud\Storage\Control\V2\ListManagedFoldersResponse; use Google\Cloud\Storage\Control\V2\ManagedFolder; @@ -60,6 +69,8 @@ use Google\Cloud\Storage\Control\V2\RenameFolderRequest; use Google\Cloud\Storage\Control\V2\ResumeAnywhereCacheRequest; use Google\Cloud\Storage\Control\V2\StorageLayout; +use Google\Cloud\Storage\Control\V2\SummarizeIntelligenceFindingsRequest; +use Google\Cloud\Storage\Control\V2\SummarizeIntelligenceFindingsResponse; use Google\Cloud\Storage\Control\V2\UpdateAnywhereCacheRequest; use Google\Cloud\Storage\Control\V2\UpdateFolderIntelligenceConfigRequest; use Google\Cloud\Storage\Control\V2\UpdateOrganizationIntelligenceConfigRequest; @@ -992,6 +1003,150 @@ public function getIamPolicyExceptionTest() $this->assertTrue($transport->isExhausted()); } + /** @test */ + public function getIntelligenceFindingTest() + { + $transport = $this->createTransport(); + $gapicClient = $this->createClient([ + 'transport' => $transport, + ]); + $this->assertTrue($transport->isExhausted()); + // Mock response + $name2 = 'name2-1052831874'; + $description = 'description-1724546052'; + $targetResource = 'targetResource-69552388'; + $expectedResponse = new IntelligenceFinding(); + $expectedResponse->setName($name2); + $expectedResponse->setDescription($description); + $expectedResponse->setTargetResource($targetResource); + $transport->addResponse($expectedResponse); + // Mock request + $formattedName = $gapicClient->intelligenceFindingName('[PROJECT]', '[LOCATION]', '[INTELLIGENCE_FINDING]'); + $request = (new GetIntelligenceFindingRequest())->setName($formattedName); + $response = $gapicClient->getIntelligenceFinding($request); + $this->assertEquals($expectedResponse, $response); + $actualRequests = $transport->popReceivedCalls(); + $this->assertSame(1, count($actualRequests)); + $actualFuncCall = $actualRequests[0]->getFuncCall(); + $actualRequestObject = $actualRequests[0]->getRequestObject(); + $this->assertSame('/google.storage.control.v2.StorageControl/GetIntelligenceFinding', $actualFuncCall); + $actualValue = $actualRequestObject->getName(); + $this->assertProtobufEquals($formattedName, $actualValue); + $this->assertTrue($transport->isExhausted()); + } + + /** @test */ + public function getIntelligenceFindingExceptionTest() + { + $transport = $this->createTransport(); + $gapicClient = $this->createClient([ + 'transport' => $transport, + ]); + $this->assertTrue($transport->isExhausted()); + $status = new stdClass(); + $status->code = Code::DATA_LOSS; + $status->details = 'internal error'; + $expectedExceptionMessage = json_encode( + [ + 'message' => 'internal error', + 'code' => Code::DATA_LOSS, + 'status' => 'DATA_LOSS', + 'details' => [], + ], + JSON_PRETTY_PRINT + ); + $transport->addResponse(null, $status); + // Mock request + $formattedName = $gapicClient->intelligenceFindingName('[PROJECT]', '[LOCATION]', '[INTELLIGENCE_FINDING]'); + $request = (new GetIntelligenceFindingRequest())->setName($formattedName); + try { + $gapicClient->getIntelligenceFinding($request); + // If the $gapicClient method call did not throw, fail the test + $this->fail('Expected an ApiException, but no exception was thrown.'); + } catch (ApiException $ex) { + $this->assertEquals($status->code, $ex->getCode()); + $this->assertEquals($expectedExceptionMessage, $ex->getMessage()); + } + // Call popReceivedCalls to ensure the stub is exhausted + $transport->popReceivedCalls(); + $this->assertTrue($transport->isExhausted()); + } + + /** @test */ + public function getIntelligenceFindingRevisionTest() + { + $transport = $this->createTransport(); + $gapicClient = $this->createClient([ + 'transport' => $transport, + ]); + $this->assertTrue($transport->isExhausted()); + // Mock response + $name2 = 'name2-1052831874'; + $expectedResponse = new IntelligenceFindingRevision(); + $expectedResponse->setName($name2); + $transport->addResponse($expectedResponse); + // Mock request + $formattedName = $gapicClient->intelligenceFindingRevisionName( + '[PROJECT]', + '[LOCATION]', + '[INTELLIGENCE_FINDING]', + '[REVISION]' + ); + $request = (new GetIntelligenceFindingRevisionRequest())->setName($formattedName); + $response = $gapicClient->getIntelligenceFindingRevision($request); + $this->assertEquals($expectedResponse, $response); + $actualRequests = $transport->popReceivedCalls(); + $this->assertSame(1, count($actualRequests)); + $actualFuncCall = $actualRequests[0]->getFuncCall(); + $actualRequestObject = $actualRequests[0]->getRequestObject(); + $this->assertSame('/google.storage.control.v2.StorageControl/GetIntelligenceFindingRevision', $actualFuncCall); + $actualValue = $actualRequestObject->getName(); + $this->assertProtobufEquals($formattedName, $actualValue); + $this->assertTrue($transport->isExhausted()); + } + + /** @test */ + public function getIntelligenceFindingRevisionExceptionTest() + { + $transport = $this->createTransport(); + $gapicClient = $this->createClient([ + 'transport' => $transport, + ]); + $this->assertTrue($transport->isExhausted()); + $status = new stdClass(); + $status->code = Code::DATA_LOSS; + $status->details = 'internal error'; + $expectedExceptionMessage = json_encode( + [ + 'message' => 'internal error', + 'code' => Code::DATA_LOSS, + 'status' => 'DATA_LOSS', + 'details' => [], + ], + JSON_PRETTY_PRINT + ); + $transport->addResponse(null, $status); + // Mock request + $formattedName = $gapicClient->intelligenceFindingRevisionName( + '[PROJECT]', + '[LOCATION]', + '[INTELLIGENCE_FINDING]', + '[REVISION]' + ); + $request = (new GetIntelligenceFindingRevisionRequest())->setName($formattedName); + try { + $gapicClient->getIntelligenceFindingRevision($request); + // If the $gapicClient method call did not throw, fail the test + $this->fail('Expected an ApiException, but no exception was thrown.'); + } catch (ApiException $ex) { + $this->assertEquals($status->code, $ex->getCode()); + $this->assertEquals($expectedExceptionMessage, $ex->getMessage()); + } + // Call popReceivedCalls to ensure the stub is exhausted + $transport->popReceivedCalls(); + $this->assertTrue($transport->isExhausted()); + } + /** @test */ public function getManagedFolderTest() { @@ -1403,6 +1558,151 @@ public function listFoldersExceptionTest() $this->assertTrue($transport->isExhausted()); } + /** @test */ + public function listIntelligenceFindingRevisionsTest() + { + $transport = $this->createTransport(); + $gapicClient = $this->createClient([ + 'transport' => $transport, + ]); + $this->assertTrue($transport->isExhausted()); + // Mock response + $nextPageToken = ''; + $intelligenceFindingRevisionsElement = new IntelligenceFindingRevision(); + $intelligenceFindingRevisions = [$intelligenceFindingRevisionsElement]; + $expectedResponse = new ListIntelligenceFindingRevisionsResponse(); + $expectedResponse->setNextPageToken($nextPageToken); + $expectedResponse->setIntelligenceFindingRevisions($intelligenceFindingRevisions); + $transport->addResponse($expectedResponse); + // Mock request + $formattedParent = $gapicClient->intelligenceFindingName('[PROJECT]', '[LOCATION]', '[INTELLIGENCE_FINDING]'); + $request = (new ListIntelligenceFindingRevisionsRequest())->setParent($formattedParent); + $response = $gapicClient->listIntelligenceFindingRevisions($request); + $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject()); + $resources = iterator_to_array($response->iterateAllElements()); + $this->assertSame(1, count($resources)); + $this->assertEquals($expectedResponse->getIntelligenceFindingRevisions()[0], $resources[0]); + $actualRequests = $transport->popReceivedCalls(); + $this->assertSame(1, count($actualRequests)); + $actualFuncCall = $actualRequests[0]->getFuncCall(); + $actualRequestObject = $actualRequests[0]->getRequestObject(); + $this->assertSame( + '/google.storage.control.v2.StorageControl/ListIntelligenceFindingRevisions', + $actualFuncCall + ); + $actualValue = $actualRequestObject->getParent(); + $this->assertProtobufEquals($formattedParent, $actualValue); + $this->assertTrue($transport->isExhausted()); + } + + /** @test */ + public function listIntelligenceFindingRevisionsExceptionTest() + { + $transport = $this->createTransport(); + $gapicClient = $this->createClient([ + 'transport' => $transport, + ]); + $this->assertTrue($transport->isExhausted()); + $status = new stdClass(); + $status->code = Code::DATA_LOSS; + $status->details = 'internal error'; + $expectedExceptionMessage = json_encode( + [ + 'message' => 'internal error', + 'code' => Code::DATA_LOSS, + 'status' => 'DATA_LOSS', + 'details' => [], + ], + JSON_PRETTY_PRINT + ); + $transport->addResponse(null, $status); + // Mock request + $formattedParent = $gapicClient->intelligenceFindingName('[PROJECT]', '[LOCATION]', '[INTELLIGENCE_FINDING]'); + $request = (new ListIntelligenceFindingRevisionsRequest())->setParent($formattedParent); + try { + $gapicClient->listIntelligenceFindingRevisions($request); + // If the $gapicClient method call did not throw, fail the test + $this->fail('Expected an ApiException, but no exception was thrown.'); + } catch (ApiException $ex) { + $this->assertEquals($status->code, $ex->getCode()); + $this->assertEquals($expectedExceptionMessage, $ex->getMessage()); + } + // Call popReceivedCalls to ensure the stub is exhausted + $transport->popReceivedCalls(); + $this->assertTrue($transport->isExhausted()); + } + + /** @test */ + public function listIntelligenceFindingsTest() + { + $transport = $this->createTransport(); + $gapicClient = $this->createClient([ + 'transport' => $transport, + ]); + $this->assertTrue($transport->isExhausted()); + // Mock response + $nextPageToken = ''; + $intelligenceFindingsElement = new IntelligenceFinding(); + $intelligenceFindings = [$intelligenceFindingsElement]; + $expectedResponse = new ListIntelligenceFindingsResponse(); + $expectedResponse->setNextPageToken($nextPageToken); + $expectedResponse->setIntelligenceFindings($intelligenceFindings); + $transport->addResponse($expectedResponse); + // Mock request + $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]'); + $request = (new ListIntelligenceFindingsRequest())->setParent($formattedParent); + $response = $gapicClient->listIntelligenceFindings($request); + $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject()); + $resources = iterator_to_array($response->iterateAllElements()); + $this->assertSame(1, count($resources)); + $this->assertEquals($expectedResponse->getIntelligenceFindings()[0], $resources[0]); + $actualRequests = $transport->popReceivedCalls(); + $this->assertSame(1, count($actualRequests)); + $actualFuncCall = $actualRequests[0]->getFuncCall(); + $actualRequestObject = $actualRequests[0]->getRequestObject(); + $this->assertSame('/google.storage.control.v2.StorageControl/ListIntelligenceFindings', $actualFuncCall); + $actualValue = $actualRequestObject->getParent(); + $this->assertProtobufEquals($formattedParent, $actualValue); + $this->assertTrue($transport->isExhausted()); + } + + /** @test */ + public function listIntelligenceFindingsExceptionTest() + { + $transport = $this->createTransport(); + $gapicClient = $this->createClient([ + 'transport' => $transport, + ]); + $this->assertTrue($transport->isExhausted()); + $status = new stdClass(); + $status->code = Code::DATA_LOSS; + $status->details = 'internal error'; + $expectedExceptionMessage = json_encode( + [ + 'message' => 'internal error', + 'code' => Code::DATA_LOSS, + 'status' => 'DATA_LOSS', + 'details' => [], + ], + JSON_PRETTY_PRINT + ); + $transport->addResponse(null, $status); + // Mock request + $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]'); + $request = (new ListIntelligenceFindingsRequest())->setParent($formattedParent); + try { + $gapicClient->listIntelligenceFindings($request); + // If the $gapicClient method call did not throw, fail the test + $this->fail('Expected an ApiException, but no exception was thrown.'); + } catch (ApiException $ex) { + $this->assertEquals($status->code, $ex->getCode()); + $this->assertEquals($expectedExceptionMessage, $ex->getMessage()); + } + // Call popReceivedCalls to ensure the stub is exhausted + $transport->popReceivedCalls(); + $this->assertTrue($transport->isExhausted()); + } + /** @test */ public function listManagedFoldersTest() { @@ -1821,6 +2121,77 @@ public function setIamPolicyExceptionTest() $this->assertTrue($transport->isExhausted()); } + /** @test */ + public function summarizeIntelligenceFindingsTest() + { + $transport = $this->createTransport(); + $gapicClient = $this->createClient([ + 'transport' => $transport, + ]); + $this->assertTrue($transport->isExhausted()); + // Mock response + $nextPageToken = ''; + $findingSummariesElement = new FindingSummary(); + $findingSummaries = [$findingSummariesElement]; + $expectedResponse = new SummarizeIntelligenceFindingsResponse(); + $expectedResponse->setNextPageToken($nextPageToken); + $expectedResponse->setFindingSummaries($findingSummaries); + $transport->addResponse($expectedResponse); + // Mock request + $parent = 'parent-995424086'; + $request = (new SummarizeIntelligenceFindingsRequest())->setParent($parent); + $response = $gapicClient->summarizeIntelligenceFindings($request); + $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject()); + $resources = iterator_to_array($response->iterateAllElements()); + $this->assertSame(1, count($resources)); + $this->assertEquals($expectedResponse->getFindingSummaries()[0], $resources[0]); + $actualRequests = $transport->popReceivedCalls(); + $this->assertSame(1, count($actualRequests)); + $actualFuncCall = $actualRequests[0]->getFuncCall(); + $actualRequestObject = $actualRequests[0]->getRequestObject(); + $this->assertSame('/google.storage.control.v2.StorageControl/SummarizeIntelligenceFindings', $actualFuncCall); + $actualValue = $actualRequestObject->getParent(); + $this->assertProtobufEquals($parent, $actualValue); + $this->assertTrue($transport->isExhausted()); + } + + /** @test */ + public function summarizeIntelligenceFindingsExceptionTest() + { + $transport = $this->createTransport(); + $gapicClient = $this->createClient([ + 'transport' => $transport, + ]); + $this->assertTrue($transport->isExhausted()); + $status = new stdClass(); + $status->code = Code::DATA_LOSS; + $status->details = 'internal error'; + $expectedExceptionMessage = json_encode( + [ + 'message' => 'internal error', + 'code' => Code::DATA_LOSS, + 'status' => 'DATA_LOSS', + 'details' => [], + ], + JSON_PRETTY_PRINT + ); + $transport->addResponse(null, $status); + // Mock request + $parent = 'parent-995424086'; + $request = (new SummarizeIntelligenceFindingsRequest())->setParent($parent); + try { + $gapicClient->summarizeIntelligenceFindings($request); + // If the $gapicClient method call did not throw, fail the test + $this->fail('Expected an ApiException, but no exception was thrown.'); + } catch (ApiException $ex) { + $this->assertEquals($status->code, $ex->getCode()); + $this->assertEquals($expectedExceptionMessage, $ex->getMessage()); + } + // Call popReceivedCalls to ensure the stub is exhausted + $transport->popReceivedCalls(); + $this->assertTrue($transport->isExhausted()); + } + /** @test */ public function testIamPermissionsTest() { From b6a6b3eb44481d0813d1a77a784167fcbc2b7c70 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 27 May 2026 17:25:29 -0400 Subject: [PATCH 3/7] feat: [SqlAdmin] A new field `target_instance_settings` is added to message `.google.cloud.sql.v1.PointInTimeRestoreContext` (#9216) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: A new field `target_instance_settings` is added to message `.google.cloud.sql.v1.PointInTimeRestoreContext` feat: A new field `target_instance_clear_settings_field_names` is added to message `.google.cloud.sql.v1.PointInTimeRestoreContext` feat: A new field `region` is added to message `.google.cloud.sql.v1.PointInTimeRestoreContext` feat: A new value `PROJECT_ABUSE` is added to enum `SqlSuspensionReason` feat: A new field `psc_auto_dns_enabled` is added to message `.google.cloud.sql.v1.PscConfig` feat: A new field `psc_write_endpoint_dns_enabled` is added to message `.google.cloud.sql.v1.PscConfig` feat: A new value `PRE_CHECK_MAJOR_VERSION_UPGRADE` is added to enum `SqlOperationType` feat: A new field `accelerated_replica_mode` is added to message `.google.cloud.sql.v1.Settings` feat: A new value `POSTGRES_19` is added to enum `SqlDatabaseVersion` feat: A new value `SQLSERVER_2025_STANDARD` is added to enum `SqlDatabaseVersion` feat: A new value `SQLSERVER_2025_ENTERPRISE` is added to enum `SqlDatabaseVersion` feat: A new value `SQLSERVER_2025_EXPRESS` is added to enum `SqlDatabaseVersion` docs: A comment for field `project` in message `.google.cloud.sql.v1.SqlInstancesCloneRequest` is changed docs: A comment for field `auto_iam_authn` in message `.google.cloud.sql.v1.ExecuteSqlPayload` is changed docs: A comment for field `consumer_project` in message `.google.cloud.sql.v1.PscAutoConnectionConfig` is changed docs: A comment for message `PerformanceCaptureConfig` is changed docs: A comment for field `enabled` in message `.google.cloud.sql.v1.PerformanceCaptureConfig` is changed docs: A comment for field `probing_interval_seconds` in message `.google.cloud.sql.v1.PerformanceCaptureConfig` is changed docs: A comment for field `probe_threshold` in message `.google.cloud.sql.v1.PerformanceCaptureConfig` is changed docs: A comment for field `running_threads_threshold` in message `.google.cloud.sql.v1.PerformanceCaptureConfig` is changed docs: A comment for field `seconds_behind_source_threshold` in message `.google.cloud.sql.v1.PerformanceCaptureConfig` is changed docs: A comment for field `transaction_duration_threshold` in message `.google.cloud.sql.v1.PerformanceCaptureConfig` is changed PiperOrigin-RevId: 921857990 Source-Link: https://github.com/googleapis/googleapis/commit/06fde4541dbd2c110e359703e400c394bb24cc5e Source-Link: https://github.com/googleapis/googleapis-gen/commit/6c6337a7d993487d86994b440bd4cfbcf16fc079 Copy-Tag: eyJwIjoiU3FsQWRtaW4vLk93bEJvdC55YW1sIiwiaCI6IjZjNjMzN2E3ZDk5MzQ4N2Q4Njk5NGI0NDBiZDRjZmJjZjE2ZmMwNzkifQ== * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- SqlAdmin/metadata/V1/CloudSqlInstances.php | 2 +- SqlAdmin/metadata/V1/CloudSqlResources.php | 2 +- SqlAdmin/metadata/V1/CloudSqlUsers.php | 3 +- .../V1/SqlInstancesServiceClient/clone.php | 2 +- SqlAdmin/src/V1/ExecuteSqlPayload.php | 6 +- .../src/V1/Operation/SqlOperationType.php | 7 + SqlAdmin/src/V1/PerformanceCaptureConfig.php | 86 +++++------ SqlAdmin/src/V1/PointInTimeRestoreContext.php | 134 ++++++++++++++++++ SqlAdmin/src/V1/PscAutoConnectionConfig.php | 8 +- SqlAdmin/src/V1/PscConfig.php | 128 +++++++++++++++++ SqlAdmin/src/V1/Settings.php | 77 ++++++++++ SqlAdmin/src/V1/SqlDatabaseVersion.php | 28 ++++ SqlAdmin/src/V1/SqlInstancesCloneRequest.php | 8 +- SqlAdmin/src/V1/SqlSuspensionReason.php | 7 + 14 files changed, 442 insertions(+), 56 deletions(-) diff --git a/SqlAdmin/metadata/V1/CloudSqlInstances.php b/SqlAdmin/metadata/V1/CloudSqlInstances.php index 0db52cf01183..8f0ef5b7d71d 100644 --- a/SqlAdmin/metadata/V1/CloudSqlInstances.php +++ b/SqlAdmin/metadata/V1/CloudSqlInstances.php @@ -24,7 +24,7 @@ public static function initOnce() { \GPBMetadata\Google\Protobuf\Wrappers::initOnce(); \GPBMetadata\Google\Rpc\Status::initOnce(); $pool->internalAddGeneratedFile( - "\x0A\xB7\xED\x01\x0A-google/cloud/sql/v1/cloud_sql_instances.proto\x12\x13google.cloud.sql.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x19google/api/resource.proto\x1A-google/cloud/sql/v1/cloud_sql_resources.proto\x1A\x1Egoogle/protobuf/duration.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\x1A\x1Egoogle/protobuf/wrappers.proto\x1A\x17google/rpc/status.proto\"C\x0A\x1ESqlInstancesAddServerCaRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\"L\x0A'SqlInstancesAddServerCertificateRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\"W\x0A(SqlInstancesAddEntraIdCertificateRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\"\x86\x01\x0A\x18SqlInstancesCloneRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\x12=\x0A\x04body\x18d \x01(\x0B2*.google.cloud.sql.v1.InstancesCloneRequestB\x03\xE0A\x02\"\x98\x02\x0A\x19SqlInstancesDeleteRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12 \x0A\x13enable_final_backup\x18\x07 \x01(\x08H\x01\x88\x01\x01\x12\$\x0A\x15final_backup_ttl_days\x18\x04 \x01(\x03B\x03\xE0A\x01H\x00\x12C\x0A\x18final_backup_expiry_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01H\x00\x12%\x0A\x18final_backup_description\x18\x05 \x01(\x09B\x03\xE0A\x01B\x0C\x0A\x0AexpirationB\x16\x0A\x14_enable_final_backup\"\x85\x01\x0A\x1FSqlInstancesDemoteMasterRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12?\x0A\x04body\x18d \x01(\x0B21.google.cloud.sql.v1.InstancesDemoteMasterRequest\"\x88\x01\x0A\x19SqlInstancesDemoteRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\x12>\x0A\x04body\x18d \x01(\x0B2+.google.cloud.sql.v1.InstancesDemoteRequestB\x03\xE0A\x02\"y\x0A\x19SqlInstancesExportRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x129\x0A\x04body\x18d \x01(\x0B2+.google.cloud.sql.v1.InstancesExportRequest\"}\x0A\x1BSqlInstancesFailoverRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12;\x0A\x04body\x18d \x01(\x0B2-.google.cloud.sql.v1.InstancesFailoverRequest\"E\x0A\x16SqlInstancesGetRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\"y\x0A\x19SqlInstancesImportRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x129\x0A\x04body\x18d \x01(\x0B2+.google.cloud.sql.v1.InstancesImportRequest\"a\x0A\x19SqlInstancesInsertRequest\x12\x0F\x0A\x07project\x18\x01 \x01(\x09\x123\x0A\x04body\x18d \x01(\x0B2%.google.cloud.sql.v1.DatabaseInstance\"c\x0A\x17SqlInstancesListRequest\x12\x0E\x0A\x06filter\x18\x01 \x01(\x09\x12\x13\x0A\x0Bmax_results\x18\x02 \x01(\x0D\x12\x12\x0A\x0Apage_token\x18\x03 \x01(\x09\x12\x0F\x0A\x07project\x18\x04 \x01(\x09\"E\x0A SqlInstancesListServerCasRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\"X\x0A)SqlInstancesListServerCertificatesRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\"Y\x0A*SqlInstancesListEntraIdCertificatesRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\"r\x0A\x18SqlInstancesPatchRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x123\x0A\x04body\x18d \x01(\x0B2%.google.cloud.sql.v1.DatabaseInstance\"X\x0A!SqlInstancesPromoteReplicaRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12\x10\x0A\x08failover\x18\x03 \x01(\x08\"v\x0A\x1DSqlInstancesSwitchoverRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x122\x0A\x0Adb_timeout\x18\x03 \x01(\x0B2\x19.google.protobuf.DurationB\x03\xE0A\x01\"\xEE\x01\x0A!SqlInstancesResetSslConfigRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12V\x0A\x04mode\x18\x03 \x01(\x0E2C.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest.ResetSslModeB\x03\xE0A\x01\"N\x0A\x0CResetSslMode\x12\x1E\x0A\x1ARESET_SSL_MODE_UNSPECIFIED\x10\x00\x12\x07\x0A\x03ALL\x10\x01\x12\x15\x0A\x11SYNC_FROM_PRIMARY\x10\x02\"?\x0A\x1ASqlInstancesRestartRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\"\x87\x01\x0A SqlInstancesRestoreBackupRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12@\x0A\x04body\x18d \x01(\x0B22.google.cloud.sql.v1.InstancesRestoreBackupRequest\"\x89\x01\x0A!SqlInstancesRotateServerCaRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12A\x0A\x04body\x18d \x01(\x0B23.google.cloud.sql.v1.InstancesRotateServerCaRequest\"\xAA\x01\x0A*SqlInstancesRotateServerCertificateRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\x12O\x0A\x04body\x18d \x01(\x0B2<.google.cloud.sql.v1.InstancesRotateServerCertificateRequestB\x03\xE0A\x01\"\xAC\x01\x0A+SqlInstancesRotateEntraIdCertificateRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\x12P\x0A\x04body\x18d \x01(\x0B2=.google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequestB\x03\xE0A\x01\"D\x0A\x1FSqlInstancesStartReplicaRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\"C\x0A\x1ESqlInstancesStopReplicaRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\"\x83\x01\x0A\x1ESqlInstancesTruncateLogRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12>\x0A\x04body\x18d \x01(\x0B20.google.cloud.sql.v1.InstancesTruncateLogRequest\"\x86\x01\x0A\$SqlInstancesPerformDiskShrinkRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12;\x0A\x04body\x18d \x01(\x0B2-.google.cloud.sql.v1.PerformDiskShrinkContext\"s\x0A\x19SqlInstancesUpdateRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x123\x0A\x04body\x18d \x01(\x0B2%.google.cloud.sql.v1.DatabaseInstance\"\x9E\x01\x0A(SqlInstancesRescheduleMaintenanceRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12O\x0A\x04body\x18d \x01(\x0B2A.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody\"\x7F\x0A\x1CSqlInstancesReencryptRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12<\x0A\x04body\x18\x03 \x01(\x0B2..google.cloud.sql.v1.InstancesReencryptRequest\"\x92\x01\x0A\x19InstancesReencryptRequest\x12V\x0A\x1Abackup_reencryption_config\x18\x01 \x01(\x0B2-.google.cloud.sql.v1.BackupReencryptionConfigH\x00\x88\x01\x01B\x1D\x0A\x1B_backup_reencryption_config\"\xF3\x01\x0A\x18BackupReencryptionConfig\x12\x19\x0A\x0Cbackup_limit\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12R\x0A\x0Bbackup_type\x18\x02 \x01(\x0E28.google.cloud.sql.v1.BackupReencryptionConfig.BackupTypeH\x01\x88\x01\x01\"G\x0A\x0ABackupType\x12\x1B\x0A\x17BACKUP_TYPE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09AUTOMATED\x10\x01\x12\x0D\x0A\x09ON_DEMAND\x10\x02B\x0F\x0A\x0D_backup_limitB\x0E\x0A\x0C_backup_type\".\x0A\x1AExternalSyncSelectedObject\x12\x10\x0A\x08database\x18\x01 \x01(\x09\"K\x0A&SqlInstancesGetDiskShrinkConfigRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\"\x85\x06\x0A-SqlInstancesVerifyExternalSyncSettingsRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12\x1E\x0A\x16verify_connection_only\x18\x03 \x01(\x08\x12f\x0A\x09sync_mode\x18\x04 \x01(\x0E2S.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode\x12\$\x0A\x17verify_replication_only\x18\x05 \x01(\x08B\x03\xE0A\x01\x12F\x0A\x11mysql_sync_config\x18\x06 \x01(\x0B2\$.google.cloud.sql.v1.MySqlSyncConfigB\x03\xE0A\x01H\x00\x12m\x0A\x0Emigration_type\x18\x07 \x01(\x0E2P.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.MigrationTypeB\x03\xE0A\x01\x12P\x0A\x13sync_parallel_level\x18\x08 \x01(\x0E2..google.cloud.sql.v1.ExternalSyncParallelLevelB\x03\xE0A\x01\x12N\x0A\x10selected_objects\x18\x09 \x03(\x0B2/.google.cloud.sql.v1.ExternalSyncSelectedObjectB\x03\xE0A\x01\"O\x0A\x10ExternalSyncMode\x12\"\x0A\x1EEXTERNAL_SYNC_MODE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06ONLINE\x10\x01\x12\x0B\x0A\x07OFFLINE\x10\x02\"J\x0A\x0DMigrationType\x12\x1E\x0A\x1AMIGRATION_TYPE_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07LOGICAL\x10\x01\x12\x0C\x0A\x08PHYSICAL\x10\x02B\x0D\x0A\x0Bsync_config\"\x87\x04\x0A\$SqlInstancesStartExternalSyncRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12f\x0A\x09sync_mode\x18\x03 \x01(\x0E2S.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode\x12\x19\x0A\x11skip_verification\x18\x04 \x01(\x08\x12A\x0A\x11mysql_sync_config\x18\x06 \x01(\x0B2\$.google.cloud.sql.v1.MySqlSyncConfigH\x00\x12P\x0A\x13sync_parallel_level\x18\x07 \x01(\x0E2..google.cloud.sql.v1.ExternalSyncParallelLevelB\x03\xE0A\x01\x12m\x0A\x0Emigration_type\x18\x08 \x01(\x0E2P.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.MigrationTypeB\x03\xE0A\x01\x12&\x0A\x19replica_overwrite_enabled\x18\x09 \x01(\x08B\x03\xE0A\x01B\x0D\x0A\x0Bsync_config\"H\x0A#SqlInstancesResetReplicaSizeRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\"\x8E\x01\x0A&SqlInstancesCreateEphemeralCertRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12A\x0A\x04body\x18d \x01(\x0B23.google.cloud.sql.v1.SslCertsCreateEphemeralRequest\"V\x0A\x15InstancesCloneRequest\x12=\x0A\x0Dclone_context\x18\x01 \x01(\x0B2!.google.cloud.sql.v1.CloneContextB\x03\xE0A\x02\"g\x0A\x1CInstancesDemoteMasterRequest\x12G\x0A\x15demote_master_context\x18\x01 \x01(\x0B2(.google.cloud.sql.v1.DemoteMasterContext\"Y\x0A\x16InstancesDemoteRequest\x12?\x0A\x0Edemote_context\x18\x01 \x01(\x0B2\".google.cloud.sql.v1.DemoteContextB\x03\xE0A\x02\"T\x0A\x16InstancesExportRequest\x12:\x0A\x0Eexport_context\x18\x01 \x01(\x0B2\".google.cloud.sql.v1.ExportContext\"Z\x0A\x18InstancesFailoverRequest\x12>\x0A\x10failover_context\x18\x01 \x01(\x0B2\$.google.cloud.sql.v1.FailoverContext\"d\x0A\x1ESslCertsCreateEphemeralRequest\x12\x1E\x0A\x0Apublic_key\x18\x01 \x01(\x09R\x0Apublic_key\x12\"\x0A\x0Caccess_token\x18\x02 \x01(\x09R\x0Caccess_token\"T\x0A\x16InstancesImportRequest\x12:\x0A\x0Eimport_context\x18\x01 \x01(\x0B2\".google.cloud.sql.v1.ImportContext\"\x9C\x01\x0A+InstancesPreCheckMajorVersionUpgradeRequest\x12m\x0A'pre_check_major_version_upgrade_context\x18\x01 \x01(\x0B27.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContextB\x03\xE0A\x02\"\xA7\x01\x0A\x15InstancesListResponse\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x121\x0A\x08warnings\x18\x02 \x03(\x0B2\x1F.google.cloud.sql.v1.ApiWarning\x124\x0A\x05items\x18\x03 \x03(\x0B2%.google.cloud.sql.v1.DatabaseInstance\x12\x17\x0A\x0Fnext_page_token\x18\x04 \x01(\x09\"s\x0A\x1EInstancesListServerCasResponse\x12+\x0A\x05certs\x18\x01 \x03(\x0B2\x1C.google.cloud.sql.v1.SslCert\x12\x16\x0A\x0Eactive_version\x18\x02 \x01(\x09\x12\x0C\x0A\x04kind\x18\x03 \x01(\x09\"\xB3\x01\x0A'InstancesListServerCertificatesResponse\x12.\x0A\x08ca_certs\x18\x01 \x03(\x0B2\x1C.google.cloud.sql.v1.SslCert\x122\x0A\x0Cserver_certs\x18\x02 \x03(\x0B2\x1C.google.cloud.sql.v1.SslCert\x12\x16\x0A\x0Eactive_version\x18\x03 \x01(\x09\x12\x0C\x0A\x04kind\x18\x04 \x01(\x09\"}\x0A(InstancesListEntraIdCertificatesResponse\x12+\x0A\x05certs\x18\x01 \x03(\x0B2\x1C.google.cloud.sql.v1.SslCert\x12\x16\x0A\x0Eactive_version\x18\x02 \x01(\x09\x12\x0C\x0A\x04kind\x18\x03 \x01(\x09\"\xE7\x02\x0A\x1DInstancesRestoreBackupRequest\x12I\x0A\x16restore_backup_context\x18\x01 \x01(\x0B2).google.cloud.sql.v1.RestoreBackupContext\x123\x0A\x06backup\x18\x02 \x01(\x09B#\xFAA \x0A\x1Esqladmin.googleapis.com/Backup\x12<\x0A\x0Fbackupdr_backup\x18\x04 \x01(\x09B#\xFAA \x0A\x1Ebackupdr.googleapis.com/Backup\x12M\x0A\x19restore_instance_settings\x18\x03 \x01(\x0B2%.google.cloud.sql.v1.DatabaseInstanceB\x03\xE0A\x01\x129\x0A,restore_instance_clear_overrides_field_names\x18\x05 \x03(\x09B\x03\xE0A\x01\"n\x0A\x1EInstancesRotateServerCaRequest\x12L\x0A\x18rotate_server_ca_context\x18\x01 \x01(\x0B2*.google.cloud.sql.v1.RotateServerCaContext\"\x8E\x01\x0A'InstancesRotateServerCertificateRequest\x12c\x0A!rotate_server_certificate_context\x18\x01 \x01(\x0B23.google.cloud.sql.v1.RotateServerCertificateContextB\x03\xE0A\x01\"\x92\x01\x0A(InstancesRotateEntraIdCertificateRequest\x12f\x0A#rotate_entra_id_certificate_context\x18\x01 \x01(\x0B24.google.cloud.sql.v1.RotateEntraIdCertificateContextB\x03\xE0A\x01\"d\x0A\x1BInstancesTruncateLogRequest\x12E\x0A\x14truncate_log_context\x18\x01 \x01(\x0B2'.google.cloud.sql.v1.TruncateLogContext\"t\x0A InstancesAcquireSsrsLeaseRequest\x12P\x0A\x1Aacquire_ssrs_lease_context\x18\x01 \x01(\x0B2,.google.cloud.sql.v1.AcquireSsrsLeaseContext\"\xB2\x01\x0A.SqlInstancesPreCheckMajorVersionUpgradeRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\x12S\x0A\x04body\x18\x03 \x01(\x0B2@.google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequestB\x03\xE0A\x02\"\xC4\x01\x0A.SqlInstancesVerifyExternalSyncSettingsResponse\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12@\x0A\x06errors\x18\x02 \x03(\x0B20.google.cloud.sql.v1.SqlExternalSyncSettingError\x12B\x0A\x08warnings\x18\x03 \x03(\x0B20.google.cloud.sql.v1.SqlExternalSyncSettingError\"h\x0A'SqlInstancesGetDiskShrinkConfigResponse\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x1E\x0A\x16minimal_target_size_gb\x18\x02 \x01(\x03\x12\x0F\x0A\x07message\x18\x03 \x01(\x09\"\xB7\x01\x0A(SqlInstancesGetLatestRecoveryTimeRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12F\x0A\x1Dsource_instance_deletion_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampH\x00\x88\x01\x01B \x0A\x1E_source_instance_deletion_time\"\xAF\x01\x0A)SqlInstancesGetLatestRecoveryTimeResponse\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x128\x0A\x14latest_recovery_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12:\x0A\x16earliest_recovery_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.Timestamp\"\x94\x05\x0A\x0CCloneContext\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x19\x0A\x11pitr_timestamp_ms\x18\x02 \x01(\x03\x12&\x0A\x19destination_instance_name\x18\x03 \x01(\x09B\x03\xE0A\x02\x12C\x0A\x13bin_log_coordinates\x18\x04 \x01(\x0B2&.google.cloud.sql.v1.BinLogCoordinates\x121\x0A\x0Dpoint_in_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12\x1A\x0A\x12allocated_ip_range\x18\x06 \x01(\x09\x12\x16\x0A\x0Edatabase_names\x18\x09 \x03(\x09\x12 \x0A\x0Epreferred_zone\x18\x0A \x01(\x09B\x03\xE0A\x01H\x00\x88\x01\x01\x12*\x0A\x18preferred_secondary_zone\x18\x0B \x01(\x09B\x03\xE0A\x01H\x01\x88\x01\x01\x12F\x0A\x1Dsource_instance_deletion_time\x18\x0C \x01(\x0B2\x1A.google.protobuf.TimestampH\x02\x88\x01\x01\x12%\x0A\x13destination_project\x18\x0D \x01(\x09B\x03\xE0A\x01H\x03\x88\x01\x01\x12H\x0A\x13destination_network\x18\x0E \x01(\x09B&\xE0A\x01\xFAA \x0A\x1Ecompute.googleapis.com/NetworkH\x04\x88\x01\x01B\x11\x0A\x0F_preferred_zoneB\x1B\x0A\x19_preferred_secondary_zoneB \x0A\x1E_source_instance_deletion_timeB\x16\x0A\x14_destination_projectB\x16\x0A\x14_destination_network\"\x9F\x03\x0A\x19PointInTimeRestoreContext\x12\x17\x0A\x0Adatasource\x18\x01 \x01(\x09H\x00\x88\x01\x01\x126\x0A\x0Dpoint_in_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x02\x12\x1C\x0A\x0Ftarget_instance\x18\x03 \x01(\x09H\x01\x88\x01\x01\x12!\x0A\x0Fprivate_network\x18\x04 \x01(\x09B\x03\xE0A\x01H\x02\x88\x01\x01\x12\$\x0A\x12allocated_ip_range\x18\x05 \x01(\x09B\x03\xE0A\x01H\x03\x88\x01\x01\x12 \x0A\x0Epreferred_zone\x18\x06 \x01(\x09B\x03\xE0A\x01H\x04\x88\x01\x01\x12*\x0A\x18preferred_secondary_zone\x18\x09 \x01(\x09B\x03\xE0A\x01H\x05\x88\x01\x01B\x0D\x0A\x0B_datasourceB\x12\x0A\x10_target_instanceB\x12\x0A\x10_private_networkB\x15\x0A\x13_allocated_ip_rangeB\x11\x0A\x0F_preferred_zoneB\x1B\x0A\x19_preferred_secondary_zone\"V\x0A\x11BinLogCoordinates\x12\x19\x0A\x11bin_log_file_name\x18\x01 \x01(\x09\x12\x18\x0A\x10bin_log_position\x18\x02 \x01(\x03\x12\x0C\x0A\x04kind\x18\x03 \x01(\x09\"\x80#\x0A\x10DatabaseInstance\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12E\x0A\x05state\x18\x02 \x01(\x0E26.google.cloud.sql.v1.DatabaseInstance.SqlInstanceState\x12A\x0A\x10database_version\x18\x03 \x01(\x0E2'.google.cloud.sql.v1.SqlDatabaseVersion\x12/\x0A\x08settings\x18\x04 \x01(\x0B2\x1D.google.cloud.sql.v1.Settings\x12\x0C\x0A\x04etag\x18\x05 \x01(\x09\x12R\x0A\x10failover_replica\x18\x06 \x01(\x0B28.google.cloud.sql.v1.DatabaseInstance.SqlFailoverReplica\x12\x1C\x0A\x14master_instance_name\x18\x07 \x01(\x09\x12\x15\x0A\x0Dreplica_names\x18\x08 \x03(\x09\x126\x0A\x0Dmax_disk_size\x18\x09 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x02\x18\x01\x12:\x0A\x11current_disk_size\x18\x0A \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x02\x18\x01\x124\x0A\x0Cip_addresses\x18\x0B \x03(\x0B2\x1E.google.cloud.sql.v1.IpMapping\x124\x0A\x0Eserver_ca_cert\x18\x0C \x01(\x0B2\x1C.google.cloud.sql.v1.SslCert\x12;\x0A\x0Dinstance_type\x18\x0D \x01(\x0E2\$.google.cloud.sql.v1.SqlInstanceType\x12\x0F\x0A\x07project\x18\x0E \x01(\x09\x12\x18\x0A\x0Cipv6_address\x18\x0F \x01(\x09B\x02\x18\x01\x12%\x0A\x1Dservice_account_email_address\x18\x10 \x01(\x09\x12O\x0A\x19on_premises_configuration\x18\x11 \x01(\x0B2,.google.cloud.sql.v1.OnPremisesConfiguration\x12H\x0A\x15replica_configuration\x18\x12 \x01(\x0B2).google.cloud.sql.v1.ReplicaConfiguration\x129\x0A\x0Cbackend_type\x18\x13 \x01(\x0E2#.google.cloud.sql.v1.SqlBackendType\x12\x11\x0A\x09self_link\x18\x14 \x01(\x09\x12C\x0A\x11suspension_reason\x18\x15 \x03(\x0E2(.google.cloud.sql.v1.SqlSuspensionReason\x12\x17\x0A\x0Fconnection_name\x18\x16 \x01(\x09\x12\x0C\x0A\x04name\x18\x17 \x01(\x09\x12\x0E\x0A\x06region\x18\x18 \x01(\x09\x12\x10\x0A\x08gce_zone\x18\x19 \x01(\x09\x12\x1A\x0A\x12secondary_gce_zone\x18\" \x01(\x09\x12W\x0A\x1Ddisk_encryption_configuration\x18\x1A \x01(\x0B20.google.cloud.sql.v1.DiskEncryptionConfiguration\x12I\x0A\x16disk_encryption_status\x18\x1B \x01(\x0B2).google.cloud.sql.v1.DiskEncryptionStatus\x12\x15\x0A\x0Droot_password\x18\x1D \x01(\x09\x12\\\x0A\x15scheduled_maintenance\x18\x1E \x01(\x0B2=.google.cloud.sql.v1.DatabaseInstance.SqlScheduledMaintenance\x121\x0A\x0Dsatisfies_pzs\x18# \x01(\x0B2\x1A.google.protobuf.BoolValue\x12'\x0A\x1Adatabase_installed_version\x18( \x01(\x09B\x03\xE0A\x03\x12Y\x0A\x12out_of_disk_report\x18& \x01(\x0B28.google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReportH\x00\x88\x01\x01\x124\x0A\x0Bcreate_time\x18' \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12+\x0A\x1Eavailable_maintenance_versions\x18) \x03(\x09B\x03\xE0A\x03\x12\x1B\x0A\x13maintenance_version\x18* \x01(\x09\x12X\x0A\x1Cupgradable_database_versions\x18- \x03(\x0B2-.google.cloud.sql.v1.AvailableDatabaseVersionB\x03\xE0A\x03\x12c\x0A\x18sql_network_architecture\x18/ \x01(\x0E2<.google.cloud.sql.v1.DatabaseInstance.SqlNetworkArchitectureH\x01\x88\x01\x01\x12-\x0A\x1Bpsc_service_attachment_link\x180 \x01(\x09B\x03\xE0A\x03H\x02\x88\x01\x01\x12\x1A\x0A\x08dns_name\x181 \x01(\x09B\x03\xE0A\x03H\x03\x88\x01\x01\x12\$\x0A\x10primary_dns_name\x183 \x01(\x09B\x05\x18\x01\xE0A\x03H\x04\x88\x01\x01\x12 \x0A\x0Ewrite_endpoint\x184 \x01(\x09B\x03\xE0A\x03H\x05\x88\x01\x01\x12I\x0A\x13replication_cluster\x186 \x01(\x0B2'.google.cloud.sql.v1.ReplicationClusterB\x03\xE0A\x01\x12E\x0A\x0Dgemini_config\x187 \x01(\x0B2).google.cloud.sql.v1.GeminiInstanceConfigH\x06\x88\x01\x01\x126\x0A\x0Dsatisfies_pzi\x188 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x03\x12^\x0A0switch_transaction_logs_to_cloud_storage_enabled\x189 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x04H\x07\x88\x01\x01\x12X\x0A*include_replicas_for_major_version_upgrade\x18; \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x04H\x08\x88\x01\x01\x12H\x0A\x04tags\x18< \x03(\x0B2/.google.cloud.sql.v1.DatabaseInstance.TagsEntryB\x09\xE0A\x04\xE0A\x05\xE0A\x01\x12\x17\x0A\x0Anode_count\x18? \x01(\x05H\x09\x88\x01\x01\x12H\x0A\x05nodes\x18@ \x03(\x0B24.google.cloud.sql.v1.DatabaseInstance.PoolNodeConfigB\x03\xE0A\x03\x12;\x0A\x09dns_names\x18C \x03(\x0B2#.google.cloud.sql.v1.DnsNameMappingB\x03\xE0A\x03\x1AQ\x0A\x12SqlFailoverReplica\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12-\x0A\x09available\x18\x02 \x01(\x0B2\x1A.google.protobuf.BoolValue\x1A\xD4\x01\x0A\x17SqlScheduledMaintenance\x12.\x0A\x0Astart_time\x18\x01 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12\x15\x0A\x09can_defer\x18\x02 \x01(\x08B\x02\x18\x01\x12\x16\x0A\x0Ecan_reschedule\x18\x03 \x01(\x08\x12?\x0A\x16schedule_deadline_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampH\x00\x88\x01\x01B\x19\x0A\x17_schedule_deadline_time\x1A\xD5\x02\x0A\x12SqlOutOfDiskReport\x12n\x0A\x15sql_out_of_disk_state\x18\x01 \x01(\x0E2J.google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReport.SqlOutOfDiskStateH\x00\x88\x01\x01\x121\x0A\$sql_min_recommended_increase_size_gb\x18\x02 \x01(\x05H\x01\x88\x01\x01\"Y\x0A\x11SqlOutOfDiskState\x12%\x0A!SQL_OUT_OF_DISK_STATE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06NORMAL\x10\x01\x12\x11\x0A\x0DSOFT_SHUTDOWN\x10\x02B\x18\x0A\x16_sql_out_of_disk_stateB'\x0A%_sql_min_recommended_increase_size_gb\x1A\xF6\x03\x0A\x0EPoolNodeConfig\x12\x16\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x03H\x00\x88\x01\x01\x12\x1A\x0A\x08gce_zone\x18\x02 \x01(\x09B\x03\xE0A\x03H\x01\x88\x01\x01\x129\x0A\x0Cip_addresses\x18\x03 \x03(\x0B2\x1E.google.cloud.sql.v1.IpMappingB\x03\xE0A\x03\x12\x1A\x0A\x08dns_name\x18\x04 \x01(\x09B\x03\xE0A\x03H\x02\x88\x01\x01\x12O\x0A\x05state\x18\x05 \x01(\x0E26.google.cloud.sql.v1.DatabaseInstance.SqlInstanceStateB\x03\xE0A\x03H\x03\x88\x01\x01\x12;\x0A\x09dns_names\x18\x06 \x03(\x0B2#.google.cloud.sql.v1.DnsNameMappingB\x03\xE0A\x03\x12-\x0A\x1Bpsc_service_attachment_link\x18\x07 \x01(\x09B\x03\xE0A\x03H\x04\x88\x01\x01\x12O\x0A\x14psc_auto_connections\x18\x08 \x03(\x0B2,.google.cloud.sql.v1.PscAutoConnectionConfigB\x03\xE0A\x03B\x07\x0A\x05_nameB\x0B\x0A\x09_gce_zoneB\x0B\x0A\x09_dns_nameB\x08\x0A\x06_stateB\x1E\x0A\x1C_psc_service_attachment_link\x1A+\x0A\x09TagsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"\xC3\x01\x0A\x10SqlInstanceState\x12\"\x0A\x1ESQL_INSTANCE_STATE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08RUNNABLE\x10\x01\x12\x0D\x0A\x09SUSPENDED\x10\x02\x12\x12\x0A\x0EPENDING_DELETE\x10\x03\x12\x12\x0A\x0EPENDING_CREATE\x10\x04\x12\x0F\x0A\x0BMAINTENANCE\x10\x05\x12\x0A\x0A\x06FAILED\x10\x06\x12\x1A\x0A\x12ONLINE_MAINTENANCE\x10\x07\x1A\x02\x08\x01\x12\x0D\x0A\x09REPAIRING\x10\x08\"~\x0A\x16SqlNetworkArchitecture\x12(\x0A\$SQL_NETWORK_ARCHITECTURE_UNSPECIFIED\x10\x00\x12\x1C\x0A\x18NEW_NETWORK_ARCHITECTURE\x10\x01\x12\x1C\x0A\x18OLD_NETWORK_ARCHITECTURE\x10\x02B\x15\x0A\x13_out_of_disk_reportB\x1B\x0A\x19_sql_network_architectureB\x1E\x0A\x1C_psc_service_attachment_linkB\x0B\x0A\x09_dns_nameB\x13\x0A\x11_primary_dns_nameB\x11\x0A\x0F_write_endpointB\x10\x0A\x0E_gemini_configB3\x0A1_switch_transaction_logs_to_cloud_storage_enabledB-\x0A+_include_replicas_for_major_version_upgradeB\x0D\x0A\x0B_node_count\"\xA6\x03\x0A\x14GeminiInstanceConfig\x12\x1A\x0A\x08entitled\x18\x01 \x01(\x08B\x03\xE0A\x03H\x00\x88\x01\x01\x12,\x0A\x1Agoogle_vacuum_mgmt_enabled\x18\x02 \x01(\x08B\x03\xE0A\x03H\x01\x88\x01\x01\x12,\x0A\x1Aoom_session_cancel_enabled\x18\x03 \x01(\x08B\x03\xE0A\x03H\x02\x88\x01\x01\x12&\x0A\x14active_query_enabled\x18\x04 \x01(\x08B\x03\xE0A\x03H\x03\x88\x01\x01\x12'\x0A\x15index_advisor_enabled\x18\x05 \x01(\x08B\x03\xE0A\x03H\x04\x88\x01\x01\x12*\x0A\x18flag_recommender_enabled\x18\x06 \x01(\x08B\x03\xE0A\x03H\x05\x88\x01\x01B\x0B\x0A\x09_entitledB\x1D\x0A\x1B_google_vacuum_mgmt_enabledB\x1D\x0A\x1B_oom_session_cancel_enabledB\x17\x0A\x15_active_query_enabledB\x18\x0A\x16_index_advisor_enabledB\x1B\x0A\x19_flag_recommender_enabled\"u\x0A\x12ReplicationCluster\x12\x1F\x0A\x12psa_write_endpoint\x18\x01 \x01(\x09B\x03\xE0A\x03\x12%\x0A\x18failover_dr_replica_name\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x17\x0A\x0Adr_replica\x18\x04 \x01(\x08B\x03\xE0A\x03\"\x90\x01\x0A\x18AvailableDatabaseVersion\x12\x1A\x0A\x0Dmajor_version\x18\x03 \x01(\x09H\x00\x88\x01\x01\x12\x11\x0A\x04name\x18\x08 \x01(\x09H\x01\x88\x01\x01\x12\x19\x0A\x0Cdisplay_name\x18\x09 \x01(\x09H\x02\x88\x01\x01B\x10\x0A\x0E_major_versionB\x07\x0A\x05_nameB\x0F\x0A\x0D_display_name\"\xB2\x03\x0A,SqlInstancesRescheduleMaintenanceRequestBody\x12`\x0A\x0Areschedule\x18\x03 \x01(\x0B2L.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule\x1A\xAF\x01\x0A\x0AReschedule\x12i\x0A\x0Freschedule_type\x18\x01 \x01(\x0E2P.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.RescheduleType\x126\x0A\x0Dschedule_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\"n\x0A\x0ERescheduleType\x12\x1F\x0A\x1BRESCHEDULE_TYPE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09IMMEDIATE\x10\x01\x12\x19\x0A\x15NEXT_AVAILABLE_WINDOW\x10\x02\x12\x11\x0A\x0DSPECIFIC_TIME\x10\x03\"\xED\x01\x0A\x13DemoteMasterContext\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12;\x0A\x17verify_gtid_consistency\x18\x02 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12\x1C\x0A\x14master_instance_name\x18\x03 \x01(\x09\x12M\x0A\x15replica_configuration\x18\x04 \x01(\x0B2..google.cloud.sql.v1.DemoteMasterConfiguration\x12\x1E\x0A\x16skip_replication_setup\x18\x05 \x01(\x08\"O\x0A\x0DDemoteContext\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x120\x0A#source_representative_instance_name\x18\x02 \x01(\x09B\x03\xE0A\x02\"9\x0A\x0FFailoverContext\x12\x18\x0A\x10settings_version\x18\x01 \x01(\x03\x12\x0C\x0A\x04kind\x18\x02 \x01(\x09\"a\x0A\x14RestoreBackupContext\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x15\x0A\x0Dbackup_run_id\x18\x02 \x01(\x03\x12\x13\x0A\x0Binstance_id\x18\x03 \x01(\x09\x12\x0F\x0A\x07project\x18\x04 \x01(\x09\";\x0A\x15RotateServerCaContext\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x14\x0A\x0Cnext_version\x18\x02 \x01(\x09\"I\x0A\x1ERotateServerCertificateContext\x12\x11\x0A\x04kind\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x14\x0A\x0Cnext_version\x18\x02 \x01(\x09\"O\x0A\x1FRotateEntraIdCertificateContext\x12\x11\x0A\x04kind\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Cnext_version\x18\x02 \x01(\x09B\x03\xE0A\x01\"4\x0A\x12TruncateLogContext\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x10\x0A\x08log_type\x18\x02 \x01(\x09\"\xDF\x10\x0A\x1BSqlExternalSyncSettingError\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12^\x0A\x04type\x18\x02 \x01(\x0E2P.google.cloud.sql.v1.SqlExternalSyncSettingError.SqlExternalSyncSettingErrorType\x12\x0E\x0A\x06detail\x18\x03 \x01(\x09\"\xC1\x0F\x0A\x1FSqlExternalSyncSettingErrorType\x124\x0A0SQL_EXTERNAL_SYNC_SETTING_ERROR_TYPE_UNSPECIFIED\x10\x00\x12\x16\x0A\x12CONNECTION_FAILURE\x10\x01\x12\x16\x0A\x12BINLOG_NOT_ENABLED\x10\x02\x12!\x0A\x1DINCOMPATIBLE_DATABASE_VERSION\x10\x03\x12\x19\x0A\x15REPLICA_ALREADY_SETUP\x10\x04\x12\x1A\x0A\x16INSUFFICIENT_PRIVILEGE\x10\x05\x12\x1E\x0A\x1AUNSUPPORTED_MIGRATION_TYPE\x10\x06\x12\x1A\x0A\x16NO_PGLOGICAL_INSTALLED\x10\x07\x12!\x0A\x1DPGLOGICAL_NODE_ALREADY_EXISTS\x10\x08\x12\x15\x0A\x11INVALID_WAL_LEVEL\x10\x09\x12\"\x0A\x1EINVALID_SHARED_PRELOAD_LIBRARY\x10\x0A\x12&\x0A\"INSUFFICIENT_MAX_REPLICATION_SLOTS\x10\x0B\x12 \x0A\x1CINSUFFICIENT_MAX_WAL_SENDERS\x10\x0C\x12%\x0A!INSUFFICIENT_MAX_WORKER_PROCESSES\x10\x0D\x12\x1A\x0A\x16UNSUPPORTED_EXTENSIONS\x10\x0E\x12#\x0A\x1FINVALID_RDS_LOGICAL_REPLICATION\x10\x0F\x12\x19\x0A\x15INVALID_LOGGING_SETUP\x10\x10\x12\x14\x0A\x10INVALID_DB_PARAM\x10\x11\x12\x19\x0A\x15UNSUPPORTED_GTID_MODE\x10\x12\x12\x1F\x0A\x1BSQLSERVER_AGENT_NOT_RUNNING\x10\x13\x12 \x0A\x1CUNSUPPORTED_TABLE_DEFINITION\x10\x14\x12\x17\x0A\x13UNSUPPORTED_DEFINER\x10\x15\x12!\x0A\x1DSQLSERVER_SERVERNAME_MISMATCH\x10\x16\x12\x19\x0A\x15PRIMARY_ALREADY_SETUP\x10\x17\x12\x1D\x0A\x19UNSUPPORTED_BINLOG_FORMAT\x10\x18\x12\x1C\x0A\x18BINLOG_RETENTION_SETTING\x10\x19\x12\x1E\x0A\x1AUNSUPPORTED_STORAGE_ENGINE\x10\x1A\x12\x1A\x0A\x16LIMITED_SUPPORT_TABLES\x10\x1B\x12\x1C\x0A\x18EXISTING_DATA_IN_REPLICA\x10\x1C\x12\x1F\x0A\x1BMISSING_OPTIONAL_PRIVILEGES\x10\x1D\x12 \x0A\x1CRISKY_BACKUP_ADMIN_PRIVILEGE\x10\x1E\x12 \x0A\x1CINSUFFICIENT_GCS_PERMISSIONS\x10\x1F\x12\x15\x0A\x11INVALID_FILE_INFO\x10 \x12!\x0A\x1DUNSUPPORTED_DATABASE_SETTINGS\x10!\x120\x0A,MYSQL_PARALLEL_IMPORT_INSUFFICIENT_PRIVILEGE\x10\"\x12\x14\x0A\x10LOCAL_INFILE_OFF\x10#\x12\x1E\x0A\x1ATURN_ON_PITR_AFTER_PROMOTE\x10\$\x12'\x0A#INCOMPATIBLE_DATABASE_MINOR_VERSION\x10%\x12\x1C\x0A\x18SOURCE_MAX_SUBSCRIPTIONS\x10&\x12\x1D\x0A\x19UNABLE_TO_VERIFY_DEFINERS\x10'\x12#\x0A\x1FSUBSCRIPTION_CALCULATION_STATUS\x10(\x12\x19\x0A\x15PG_SUBSCRIPTION_COUNT\x10)\x12\x1A\x0A\x16PG_SYNC_PARALLEL_LEVEL\x10*\x12\x1A\x0A\x16INSUFFICIENT_DISK_SIZE\x10+\x12\x1D\x0A\x19INSUFFICIENT_MACHINE_TIER\x10,\x12'\x0A#UNSUPPORTED_EXTENSIONS_NOT_MIGRATED\x10-\x12\x1B\x0A\x17EXTENSIONS_NOT_MIGRATED\x10.\x12#\x0A\x1FPG_CRON_FLAG_ENABLED_IN_REPLICA\x10/\x12%\x0A!EXTENSIONS_NOT_ENABLED_IN_REPLICA\x100\x12\x17\x0A\x13UNSUPPORTED_COLUMNS\x101\x12 \x0A\x1CUSERS_NOT_CREATED_IN_REPLICA\x102\x12\x1E\x0A\x1AUNSUPPORTED_SYSTEM_OBJECTS\x103\x12,\x0A(UNSUPPORTED_TABLES_WITH_REPLICA_IDENTITY\x104\x12(\x0A\$SELECTED_OBJECTS_NOT_EXIST_ON_SOURCE\x105\x124\x0A0PSC_ONLY_INSTANCE_WITH_NO_NETWORK_ATTACHMENT_URI\x106\x121\x0A-SELECTED_OBJECTS_REFERENCE_UNSELECTED_OBJECTS\x107\x12\x1A\x0A\x16PROMPT_DELETE_EXISTING\x108\x12\x18\x0A\x14WILL_DELETE_EXISTING\x109\x12-\x0A)PG_DDL_REPLICATION_INSUFFICIENT_PRIVILEGE\x10:\"(\x0A\x0FSelectedObjects\x12\x15\x0A\x08database\x18\x01 \x01(\x09B\x03\xE0A\x02\"\xE7\x03\x0A\x17OnPremisesConfiguration\x12\x11\x0A\x09host_port\x18\x01 \x01(\x09\x12\x0C\x0A\x04kind\x18\x02 \x01(\x09\x12\x10\x0A\x08username\x18\x03 \x01(\x09\x12\x10\x0A\x08password\x18\x04 \x01(\x09\x12\x16\x0A\x0Eca_certificate\x18\x05 \x01(\x09\x12\x1A\x0A\x12client_certificate\x18\x06 \x01(\x09\x12\x12\x0A\x0Aclient_key\x18\x07 \x01(\x09\x12\x16\x0A\x0Edump_file_path\x18\x08 \x01(\x09\x12?\x0A\x0Fsource_instance\x18\x0F \x01(\x0B2&.google.cloud.sql.v1.InstanceReference\x12C\x0A\x10selected_objects\x18\x10 \x03(\x0B2\$.google.cloud.sql.v1.SelectedObjectsB\x03\xE0A\x01\x12O\x0A\x0Assl_option\x18\x12 \x01(\x0E26.google.cloud.sql.v1.OnPremisesConfiguration.SslOptionB\x03\xE0A\x01\"P\x0A\x09SslOption\x12\x1A\x0A\x16SSL_OPTION_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07DISABLE\x10\x01\x12\x0B\x0A\x07REQUIRE\x10\x02\x12\x0D\x0A\x09VERIFY_CA\x10\x03\"\xEB\x01\x0A\x14ReplicaConfiguration\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12S\x0A\x1Bmysql_replica_configuration\x18\x02 \x01(\x0B2..google.cloud.sql.v1.MySqlReplicaConfiguration\x123\x0A\x0Ffailover_target\x18\x03 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12;\x0A\x12cascadable_replica\x18\x05 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\"\x82\x01\x0A\x1DSqlInstancesExecuteSqlRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\x124\x0A\x04body\x18d \x01(\x0B2&.google.cloud.sql.v1.ExecuteSqlPayload\"\x84\x03\x0A\x11ExecuteSqlPayload\x12\x11\x0A\x04user\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x1A\x0A\x0Dsql_statement\x18\x02 \x01(\x09B\x03\xE0A\x02\x12\x15\x0A\x08database\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x1D\x0A\x0Eauto_iam_authn\x18\x0B \x01(\x08B\x03\xE0A\x01H\x00\x12\x16\x0A\x09row_limit\x18\x0A \x01(\x03B\x03\xE0A\x01\x12Z\x0A\x13partial_result_mode\x18\x0D \x01(\x0E28.google.cloud.sql.v1.ExecuteSqlPayload.PartialResultModeB\x03\xE0A\x01\x12\x18\x0A\x0Bapplication\x18\x10 \x01(\x09B\x03\xE0A\x01\"k\x0A\x11PartialResultMode\x12#\x0A\x1FPARTIAL_RESULT_MODE_UNSPECIFIED\x10\x00\x12\x17\x0A\x13FAIL_PARTIAL_RESULT\x10\x01\x12\x18\x0A\x14ALLOW_PARTIAL_RESULT\x10\x02B\x0F\x0A\x0Duser_password\"\xC8\x02\x0A\x1ESqlInstancesExecuteSqlResponse\x12M\x0A\x08messages\x18\x09 \x03(\x0B2;.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.Message\x12/\x0A\x08metadata\x18\x06 \x01(\x0B2\x1D.google.cloud.sql.v1.Metadata\x121\x0A\x07results\x18\x07 \x03(\x0B2 .google.cloud.sql.v1.QueryResult\x12\"\x0A\x06status\x18\x08 \x01(\x0B2\x12.google.rpc.Status\x1AO\x0A\x07Message\x12\x14\x0A\x07message\x18\x01 \x01(\x09H\x00\x88\x01\x01\x12\x15\x0A\x08severity\x18\x02 \x01(\x09H\x01\x88\x01\x01B\x0A\x0A\x08_messageB\x0B\x0A\x09_severity\"\xB0\x01\x0A\x0BQueryResult\x12,\x0A\x07columns\x18\x01 \x03(\x0B2\x1B.google.cloud.sql.v1.Column\x12&\x0A\x04rows\x18\x02 \x03(\x0B2\x18.google.cloud.sql.v1.Row\x12\x0F\x0A\x07message\x18\x03 \x01(\x09\x12\x16\x0A\x0Epartial_result\x18\x04 \x01(\x08\x12\"\x0A\x06status\x18\x08 \x01(\x0B2\x12.google.rpc.Status\"\$\x0A\x06Column\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12\x0C\x0A\x04type\x18\x02 \x01(\x09\"1\x0A\x03Row\x12*\x0A\x06values\x18\x01 \x03(\x0B2\x1A.google.cloud.sql.v1.Value\"*\x0A\x05Value\x12\x0D\x0A\x05value\x18\x01 \x01(\x09\x12\x12\x0A\x0Anull_value\x18\x02 \x01(\x08\"K\x0A\x08Metadata\x12?\x0A\x1Csql_statement_execution_time\x18\x01 \x01(\x0B2\x19.google.protobuf.Duration\"\x9C\x01\x0A#SqlInstancesAcquireSsrsLeaseRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\x12H\x0A\x04body\x18d \x01(\x0B25.google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequestB\x03\xE0A\x02\"<\x0A\$SqlInstancesAcquireSsrsLeaseResponse\x12\x14\x0A\x0Coperation_id\x18\x01 \x01(\x09\"R\x0A#SqlInstancesReleaseSsrsLeaseRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\"<\x0A\$SqlInstancesReleaseSsrsLeaseResponse\x12\x14\x0A\x0Coperation_id\x18\x01 \x01(\x09\"\x82\x01\x0A%SqlInstancesPointInTimeRestoreRequest\x12\x13\x0A\x06parent\x18\x01 \x01(\x09B\x03\xE0A\x02\x12D\x0A\x07context\x18d \x01(\x0B2..google.cloud.sql.v1.PointInTimeRestoreContextB\x03\xE0A\x02*h\x0A\x19ExternalSyncParallelLevel\x12,\x0A(EXTERNAL_SYNC_PARALLEL_LEVEL_UNSPECIFIED\x10\x00\x12\x07\x0A\x03MIN\x10\x01\x12\x0B\x0A\x07OPTIMAL\x10\x02\x12\x07\x0A\x03MAX\x10\x03*\x99\x01\x0A\x0FSqlInstanceType\x12!\x0A\x1DSQL_INSTANCE_TYPE_UNSPECIFIED\x10\x00\x12\x16\x0A\x12CLOUD_SQL_INSTANCE\x10\x01\x12\x18\x0A\x14ON_PREMISES_INSTANCE\x10\x02\x12\x19\x0A\x15READ_REPLICA_INSTANCE\x10\x03\x12\x16\x0A\x12READ_POOL_INSTANCE\x10\x05*\x8A\x01\x0A\x13SqlSuspensionReason\x12%\x0A!SQL_SUSPENSION_REASON_UNSPECIFIED\x10\x00\x12\x11\x0A\x0DBILLING_ISSUE\x10\x02\x12\x0F\x0A\x0BLEGAL_ISSUE\x10\x03\x12\x15\x0A\x11OPERATIONAL_ISSUE\x10\x04\x12\x11\x0A\x0DKMS_KEY_ISSUE\x10\x052\x99>\x0A\x13SqlInstancesService\x12\xA3\x01\x0A\x0BAddServerCa\x123.google.cloud.sql.v1.SqlInstancesAddServerCaRequest\x1A\x1E.google.cloud.sql.v1.Operation\"?\x82\xD3\xE4\x93\x029\"7/v1/projects/{project}/instances/{instance}/addServerCa\x12\xBE\x01\x0A\x14AddServerCertificate\x12<.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest\x1A\x1E.google.cloud.sql.v1.Operation\"H\x82\xD3\xE4\x93\x02B\"@/v1/projects/{project}/instances/{instance}/addServerCertificate\x12\xC1\x01\x0A\x15AddEntraIdCertificate\x12=.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest\x1A\x1E.google.cloud.sql.v1.Operation\"I\x82\xD3\xE4\x93\x02C\"A/v1/projects/{project}/instances/{instance}/addEntraIdCertificate\x12\x97\x01\x0A\x05Clone\x12-.google.cloud.sql.v1.SqlInstancesCloneRequest\x1A\x1E.google.cloud.sql.v1.Operation\"?\x82\xD3\xE4\x93\x029\"1/v1/projects/{project}/instances/{instance}/clone:\x04body\x12\x8D\x01\x0A\x06Delete\x12..google.cloud.sql.v1.SqlInstancesDeleteRequest\x1A\x1E.google.cloud.sql.v1.Operation\"3\x82\xD3\xE4\x93\x02-*+/v1/projects/{project}/instances/{instance}\x12\xAC\x01\x0A\x0CDemoteMaster\x124.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest\x1A\x1E.google.cloud.sql.v1.Operation\"F\x82\xD3\xE4\x93\x02@\"8/v1/projects/{project}/instances/{instance}/demoteMaster:\x04body\x12\x9A\x01\x0A\x06Demote\x12..google.cloud.sql.v1.SqlInstancesDemoteRequest\x1A\x1E.google.cloud.sql.v1.Operation\"@\x82\xD3\xE4\x93\x02:\"2/v1/projects/{project}/instances/{instance}/demote:\x04body\x12\x9A\x01\x0A\x06Export\x12..google.cloud.sql.v1.SqlInstancesExportRequest\x1A\x1E.google.cloud.sql.v1.Operation\"@\x82\xD3\xE4\x93\x02:\"2/v1/projects/{project}/instances/{instance}/export:\x04body\x12\xA0\x01\x0A\x08Failover\x120.google.cloud.sql.v1.SqlInstancesFailoverRequest\x1A\x1E.google.cloud.sql.v1.Operation\"B\x82\xD3\xE4\x93\x02<\"4/v1/projects/{project}/instances/{instance}/failover:\x04body\x12\xA3\x01\x0A\x09Reencrypt\x121.google.cloud.sql.v1.SqlInstancesReencryptRequest\x1A\x1E.google.cloud.sql.v1.Operation\"C\x82\xD3\xE4\x93\x02=\"5/v1/projects/{project}/instances/{instance}/reencrypt:\x04body\x12\x8E\x01\x0A\x03Get\x12+.google.cloud.sql.v1.SqlInstancesGetRequest\x1A%.google.cloud.sql.v1.DatabaseInstance\"3\x82\xD3\xE4\x93\x02-\x12+/v1/projects/{project}/instances/{instance}\x12\x9A\x01\x0A\x06Import\x12..google.cloud.sql.v1.SqlInstancesImportRequest\x1A\x1E.google.cloud.sql.v1.Operation\"@\x82\xD3\xE4\x93\x02:\"2/v1/projects/{project}/instances/{instance}/import:\x04body\x12\x88\x01\x0A\x06Insert\x12..google.cloud.sql.v1.SqlInstancesInsertRequest\x1A\x1E.google.cloud.sql.v1.Operation\".\x82\xD3\xE4\x93\x02(\" /v1/projects/{project}/instances:\x04body\x12\x8A\x01\x0A\x04List\x12,.google.cloud.sql.v1.SqlInstancesListRequest\x1A*.google.cloud.sql.v1.InstancesListResponse\"(\x82\xD3\xE4\x93\x02\"\x12 /v1/projects/{project}/instances\x12\xBE\x01\x0A\x0DListServerCas\x125.google.cloud.sql.v1.SqlInstancesListServerCasRequest\x1A3.google.cloud.sql.v1.InstancesListServerCasResponse\"A\x82\xD3\xE4\x93\x02;\x129/v1/projects/{project}/instances/{instance}/listServerCas\x12\xE2\x01\x0A\x16ListServerCertificates\x12>.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest\x1A<.google.cloud.sql.v1.InstancesListServerCertificatesResponse\"J\x82\xD3\xE4\x93\x02D\x12B/v1/projects/{project}/instances/{instance}/listServerCertificates\x12\xE6\x01\x0A\x17ListEntraIdCertificates\x12?.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest\x1A=.google.cloud.sql.v1.InstancesListEntraIdCertificatesResponse\"K\x82\xD3\xE4\x93\x02E\x12C/v1/projects/{project}/instances/{instance}/listEntraIdCertificates\x12\x91\x01\x0A\x05Patch\x12-.google.cloud.sql.v1.SqlInstancesPatchRequest\x1A\x1E.google.cloud.sql.v1.Operation\"9\x82\xD3\xE4\x93\x0232+/v1/projects/{project}/instances/{instance}:\x04body\x12\xAC\x01\x0A\x0EPromoteReplica\x126.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest\x1A\x1E.google.cloud.sql.v1.Operation\"B\x82\xD3\xE4\x93\x02<\":/v1/projects/{project}/instances/{instance}/promoteReplica\x12\xA0\x01\x0A\x0ASwitchover\x122.google.cloud.sql.v1.SqlInstancesSwitchoverRequest\x1A\x1E.google.cloud.sql.v1.Operation\">\x82\xD3\xE4\x93\x028\"6/v1/projects/{project}/instances/{instance}/switchover\x12\xAC\x01\x0A\x0EResetSslConfig\x126.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest\x1A\x1E.google.cloud.sql.v1.Operation\"B\x82\xD3\xE4\x93\x02<\":/v1/projects/{project}/instances/{instance}/resetSslConfig\x12\x97\x01\x0A\x07Restart\x12/.google.cloud.sql.v1.SqlInstancesRestartRequest\x1A\x1E.google.cloud.sql.v1.Operation\";\x82\xD3\xE4\x93\x025\"3/v1/projects/{project}/instances/{instance}/restart\x12\xAF\x01\x0A\x0DRestoreBackup\x125.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest\x1A\x1E.google.cloud.sql.v1.Operation\"G\x82\xD3\xE4\x93\x02A\"9/v1/projects/{project}/instances/{instance}/restoreBackup:\x04body\x12\xB2\x01\x0A\x0ERotateServerCa\x126.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest\x1A\x1E.google.cloud.sql.v1.Operation\"H\x82\xD3\xE4\x93\x02B\":/v1/projects/{project}/instances/{instance}/rotateServerCa:\x04body\x12\xCD\x01\x0A\x17RotateServerCertificate\x12?.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest\x1A\x1E.google.cloud.sql.v1.Operation\"Q\x82\xD3\xE4\x93\x02K\"C/v1/projects/{project}/instances/{instance}/rotateServerCertificate:\x04body\x12\xD0\x01\x0A\x18RotateEntraIdCertificate\x12@.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest\x1A\x1E.google.cloud.sql.v1.Operation\"R\x82\xD3\xE4\x93\x02L\"D/v1/projects/{project}/instances/{instance}/rotateEntraIdCertificate:\x04body\x12\xA6\x01\x0A\x0CStartReplica\x124.google.cloud.sql.v1.SqlInstancesStartReplicaRequest\x1A\x1E.google.cloud.sql.v1.Operation\"@\x82\xD3\xE4\x93\x02:\"8/v1/projects/{project}/instances/{instance}/startReplica\x12\xA3\x01\x0A\x0BStopReplica\x123.google.cloud.sql.v1.SqlInstancesStopReplicaRequest\x1A\x1E.google.cloud.sql.v1.Operation\"?\x82\xD3\xE4\x93\x029\"7/v1/projects/{project}/instances/{instance}/stopReplica\x12\xA9\x01\x0A\x0BTruncateLog\x123.google.cloud.sql.v1.SqlInstancesTruncateLogRequest\x1A\x1E.google.cloud.sql.v1.Operation\"E\x82\xD3\xE4\x93\x02?\"7/v1/projects/{project}/instances/{instance}/truncateLog:\x04body\x12\x93\x01\x0A\x06Update\x12..google.cloud.sql.v1.SqlInstancesUpdateRequest\x1A\x1E.google.cloud.sql.v1.Operation\"9\x82\xD3\xE4\x93\x023\x1A+/v1/projects/{project}/instances/{instance}:\x04body\x12\xB7\x01\x0A\x0FCreateEphemeral\x12;.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest\x1A\x1C.google.cloud.sql.v1.SslCert\"I\x82\xD3\xE4\x93\x02C\";/v1/projects/{project}/instances/{instance}/createEphemeral:\x04body\x12\xC7\x01\x0A\x15RescheduleMaintenance\x12=.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest\x1A\x1E.google.cloud.sql.v1.Operation\"O\x82\xD3\xE4\x93\x02I\"A/v1/projects/{project}/instances/{instance}/rescheduleMaintenance:\x04body\x12\xF8\x01\x0A\x1AVerifyExternalSyncSettings\x12B.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest\x1AC.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsResponse\"Q\x82\xD3\xE4\x93\x02K\"F/v1/projects/{project}/instances/{instance}/verifyExternalSyncSettings:\x01*\x12\xB8\x01\x0A\x11StartExternalSync\x129.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest\x1A\x1E.google.cloud.sql.v1.Operation\"H\x82\xD3\xE4\x93\x02B\"=/v1/projects/{project}/instances/{instance}/startExternalSync:\x01*\x12\xBB\x01\x0A\x11PerformDiskShrink\x129.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest\x1A\x1E.google.cloud.sql.v1.Operation\"K\x82\xD3\xE4\x93\x02E\"=/v1/projects/{project}/instances/{instance}/performDiskShrink:\x04body\x12\xD9\x01\x0A\x13GetDiskShrinkConfig\x12;.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest\x1A<.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigResponse\"G\x82\xD3\xE4\x93\x02A\x12?/v1/projects/{project}/instances/{instance}/getDiskShrinkConfig\x12\xB5\x01\x0A\x10ResetReplicaSize\x128.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest\x1A\x1E.google.cloud.sql.v1.Operation\"G\x82\xD3\xE4\x93\x02A\".google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeResponse\"I\x82\xD3\xE4\x93\x02C\x12A/v1/projects/{project}/instances/{instance}/getLatestRecoveryTime\x12\xBB\x01\x0A\x0AExecuteSql\x122.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest\x1A3.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse\"D\x82\xD3\xE4\x93\x02>\"6/v1/projects/{project}/instances/{instance}/executeSql:\x04body\x12\xD3\x01\x0A\x10AcquireSsrsLease\x128.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest\x1A9.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseResponse\"J\x82\xD3\xE4\x93\x02D\"\"\x0A\x04body\x18d \x01(\x0B2+.google.cloud.sql.v1.InstancesDemoteRequestB\x03\xE0A\x02\"y\x0A\x19SqlInstancesExportRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x129\x0A\x04body\x18d \x01(\x0B2+.google.cloud.sql.v1.InstancesExportRequest\"}\x0A\x1BSqlInstancesFailoverRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12;\x0A\x04body\x18d \x01(\x0B2-.google.cloud.sql.v1.InstancesFailoverRequest\"E\x0A\x16SqlInstancesGetRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\"y\x0A\x19SqlInstancesImportRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x129\x0A\x04body\x18d \x01(\x0B2+.google.cloud.sql.v1.InstancesImportRequest\"a\x0A\x19SqlInstancesInsertRequest\x12\x0F\x0A\x07project\x18\x01 \x01(\x09\x123\x0A\x04body\x18d \x01(\x0B2%.google.cloud.sql.v1.DatabaseInstance\"c\x0A\x17SqlInstancesListRequest\x12\x0E\x0A\x06filter\x18\x01 \x01(\x09\x12\x13\x0A\x0Bmax_results\x18\x02 \x01(\x0D\x12\x12\x0A\x0Apage_token\x18\x03 \x01(\x09\x12\x0F\x0A\x07project\x18\x04 \x01(\x09\"E\x0A SqlInstancesListServerCasRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\"X\x0A)SqlInstancesListServerCertificatesRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\"Y\x0A*SqlInstancesListEntraIdCertificatesRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\"r\x0A\x18SqlInstancesPatchRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x123\x0A\x04body\x18d \x01(\x0B2%.google.cloud.sql.v1.DatabaseInstance\"X\x0A!SqlInstancesPromoteReplicaRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12\x10\x0A\x08failover\x18\x03 \x01(\x08\"v\x0A\x1DSqlInstancesSwitchoverRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x122\x0A\x0Adb_timeout\x18\x03 \x01(\x0B2\x19.google.protobuf.DurationB\x03\xE0A\x01\"\xEE\x01\x0A!SqlInstancesResetSslConfigRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12V\x0A\x04mode\x18\x03 \x01(\x0E2C.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest.ResetSslModeB\x03\xE0A\x01\"N\x0A\x0CResetSslMode\x12\x1E\x0A\x1ARESET_SSL_MODE_UNSPECIFIED\x10\x00\x12\x07\x0A\x03ALL\x10\x01\x12\x15\x0A\x11SYNC_FROM_PRIMARY\x10\x02\"?\x0A\x1ASqlInstancesRestartRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\"\x87\x01\x0A SqlInstancesRestoreBackupRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12@\x0A\x04body\x18d \x01(\x0B22.google.cloud.sql.v1.InstancesRestoreBackupRequest\"\x89\x01\x0A!SqlInstancesRotateServerCaRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12A\x0A\x04body\x18d \x01(\x0B23.google.cloud.sql.v1.InstancesRotateServerCaRequest\"\xAA\x01\x0A*SqlInstancesRotateServerCertificateRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\x12O\x0A\x04body\x18d \x01(\x0B2<.google.cloud.sql.v1.InstancesRotateServerCertificateRequestB\x03\xE0A\x01\"\xAC\x01\x0A+SqlInstancesRotateEntraIdCertificateRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\x12P\x0A\x04body\x18d \x01(\x0B2=.google.cloud.sql.v1.InstancesRotateEntraIdCertificateRequestB\x03\xE0A\x01\"D\x0A\x1FSqlInstancesStartReplicaRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\"C\x0A\x1ESqlInstancesStopReplicaRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\"\x83\x01\x0A\x1ESqlInstancesTruncateLogRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12>\x0A\x04body\x18d \x01(\x0B20.google.cloud.sql.v1.InstancesTruncateLogRequest\"\x86\x01\x0A\$SqlInstancesPerformDiskShrinkRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12;\x0A\x04body\x18d \x01(\x0B2-.google.cloud.sql.v1.PerformDiskShrinkContext\"s\x0A\x19SqlInstancesUpdateRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x123\x0A\x04body\x18d \x01(\x0B2%.google.cloud.sql.v1.DatabaseInstance\"\x9E\x01\x0A(SqlInstancesRescheduleMaintenanceRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12O\x0A\x04body\x18d \x01(\x0B2A.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody\"\x7F\x0A\x1CSqlInstancesReencryptRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12<\x0A\x04body\x18\x03 \x01(\x0B2..google.cloud.sql.v1.InstancesReencryptRequest\"\x92\x01\x0A\x19InstancesReencryptRequest\x12V\x0A\x1Abackup_reencryption_config\x18\x01 \x01(\x0B2-.google.cloud.sql.v1.BackupReencryptionConfigH\x00\x88\x01\x01B\x1D\x0A\x1B_backup_reencryption_config\"\xF3\x01\x0A\x18BackupReencryptionConfig\x12\x19\x0A\x0Cbackup_limit\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12R\x0A\x0Bbackup_type\x18\x02 \x01(\x0E28.google.cloud.sql.v1.BackupReencryptionConfig.BackupTypeH\x01\x88\x01\x01\"G\x0A\x0ABackupType\x12\x1B\x0A\x17BACKUP_TYPE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09AUTOMATED\x10\x01\x12\x0D\x0A\x09ON_DEMAND\x10\x02B\x0F\x0A\x0D_backup_limitB\x0E\x0A\x0C_backup_type\".\x0A\x1AExternalSyncSelectedObject\x12\x10\x0A\x08database\x18\x01 \x01(\x09\"K\x0A&SqlInstancesGetDiskShrinkConfigRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\"\x85\x06\x0A-SqlInstancesVerifyExternalSyncSettingsRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12\x1E\x0A\x16verify_connection_only\x18\x03 \x01(\x08\x12f\x0A\x09sync_mode\x18\x04 \x01(\x0E2S.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode\x12\$\x0A\x17verify_replication_only\x18\x05 \x01(\x08B\x03\xE0A\x01\x12F\x0A\x11mysql_sync_config\x18\x06 \x01(\x0B2\$.google.cloud.sql.v1.MySqlSyncConfigB\x03\xE0A\x01H\x00\x12m\x0A\x0Emigration_type\x18\x07 \x01(\x0E2P.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.MigrationTypeB\x03\xE0A\x01\x12P\x0A\x13sync_parallel_level\x18\x08 \x01(\x0E2..google.cloud.sql.v1.ExternalSyncParallelLevelB\x03\xE0A\x01\x12N\x0A\x10selected_objects\x18\x09 \x03(\x0B2/.google.cloud.sql.v1.ExternalSyncSelectedObjectB\x03\xE0A\x01\"O\x0A\x10ExternalSyncMode\x12\"\x0A\x1EEXTERNAL_SYNC_MODE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06ONLINE\x10\x01\x12\x0B\x0A\x07OFFLINE\x10\x02\"J\x0A\x0DMigrationType\x12\x1E\x0A\x1AMIGRATION_TYPE_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07LOGICAL\x10\x01\x12\x0C\x0A\x08PHYSICAL\x10\x02B\x0D\x0A\x0Bsync_config\"\x87\x04\x0A\$SqlInstancesStartExternalSyncRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12f\x0A\x09sync_mode\x18\x03 \x01(\x0E2S.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.ExternalSyncMode\x12\x19\x0A\x11skip_verification\x18\x04 \x01(\x08\x12A\x0A\x11mysql_sync_config\x18\x06 \x01(\x0B2\$.google.cloud.sql.v1.MySqlSyncConfigH\x00\x12P\x0A\x13sync_parallel_level\x18\x07 \x01(\x0E2..google.cloud.sql.v1.ExternalSyncParallelLevelB\x03\xE0A\x01\x12m\x0A\x0Emigration_type\x18\x08 \x01(\x0E2P.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest.MigrationTypeB\x03\xE0A\x01\x12&\x0A\x19replica_overwrite_enabled\x18\x09 \x01(\x08B\x03\xE0A\x01B\x0D\x0A\x0Bsync_config\"H\x0A#SqlInstancesResetReplicaSizeRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\"\x8E\x01\x0A&SqlInstancesCreateEphemeralCertRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12A\x0A\x04body\x18d \x01(\x0B23.google.cloud.sql.v1.SslCertsCreateEphemeralRequest\"V\x0A\x15InstancesCloneRequest\x12=\x0A\x0Dclone_context\x18\x01 \x01(\x0B2!.google.cloud.sql.v1.CloneContextB\x03\xE0A\x02\"g\x0A\x1CInstancesDemoteMasterRequest\x12G\x0A\x15demote_master_context\x18\x01 \x01(\x0B2(.google.cloud.sql.v1.DemoteMasterContext\"Y\x0A\x16InstancesDemoteRequest\x12?\x0A\x0Edemote_context\x18\x01 \x01(\x0B2\".google.cloud.sql.v1.DemoteContextB\x03\xE0A\x02\"T\x0A\x16InstancesExportRequest\x12:\x0A\x0Eexport_context\x18\x01 \x01(\x0B2\".google.cloud.sql.v1.ExportContext\"Z\x0A\x18InstancesFailoverRequest\x12>\x0A\x10failover_context\x18\x01 \x01(\x0B2\$.google.cloud.sql.v1.FailoverContext\"d\x0A\x1ESslCertsCreateEphemeralRequest\x12\x1E\x0A\x0Apublic_key\x18\x01 \x01(\x09R\x0Apublic_key\x12\"\x0A\x0Caccess_token\x18\x02 \x01(\x09R\x0Caccess_token\"T\x0A\x16InstancesImportRequest\x12:\x0A\x0Eimport_context\x18\x01 \x01(\x0B2\".google.cloud.sql.v1.ImportContext\"\x9C\x01\x0A+InstancesPreCheckMajorVersionUpgradeRequest\x12m\x0A'pre_check_major_version_upgrade_context\x18\x01 \x01(\x0B27.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContextB\x03\xE0A\x02\"\xA7\x01\x0A\x15InstancesListResponse\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x121\x0A\x08warnings\x18\x02 \x03(\x0B2\x1F.google.cloud.sql.v1.ApiWarning\x124\x0A\x05items\x18\x03 \x03(\x0B2%.google.cloud.sql.v1.DatabaseInstance\x12\x17\x0A\x0Fnext_page_token\x18\x04 \x01(\x09\"s\x0A\x1EInstancesListServerCasResponse\x12+\x0A\x05certs\x18\x01 \x03(\x0B2\x1C.google.cloud.sql.v1.SslCert\x12\x16\x0A\x0Eactive_version\x18\x02 \x01(\x09\x12\x0C\x0A\x04kind\x18\x03 \x01(\x09\"\xB3\x01\x0A'InstancesListServerCertificatesResponse\x12.\x0A\x08ca_certs\x18\x01 \x03(\x0B2\x1C.google.cloud.sql.v1.SslCert\x122\x0A\x0Cserver_certs\x18\x02 \x03(\x0B2\x1C.google.cloud.sql.v1.SslCert\x12\x16\x0A\x0Eactive_version\x18\x03 \x01(\x09\x12\x0C\x0A\x04kind\x18\x04 \x01(\x09\"}\x0A(InstancesListEntraIdCertificatesResponse\x12+\x0A\x05certs\x18\x01 \x03(\x0B2\x1C.google.cloud.sql.v1.SslCert\x12\x16\x0A\x0Eactive_version\x18\x02 \x01(\x09\x12\x0C\x0A\x04kind\x18\x03 \x01(\x09\"\xE7\x02\x0A\x1DInstancesRestoreBackupRequest\x12I\x0A\x16restore_backup_context\x18\x01 \x01(\x0B2).google.cloud.sql.v1.RestoreBackupContext\x123\x0A\x06backup\x18\x02 \x01(\x09B#\xFAA \x0A\x1Esqladmin.googleapis.com/Backup\x12<\x0A\x0Fbackupdr_backup\x18\x04 \x01(\x09B#\xFAA \x0A\x1Ebackupdr.googleapis.com/Backup\x12M\x0A\x19restore_instance_settings\x18\x03 \x01(\x0B2%.google.cloud.sql.v1.DatabaseInstanceB\x03\xE0A\x01\x129\x0A,restore_instance_clear_overrides_field_names\x18\x05 \x03(\x09B\x03\xE0A\x01\"n\x0A\x1EInstancesRotateServerCaRequest\x12L\x0A\x18rotate_server_ca_context\x18\x01 \x01(\x0B2*.google.cloud.sql.v1.RotateServerCaContext\"\x8E\x01\x0A'InstancesRotateServerCertificateRequest\x12c\x0A!rotate_server_certificate_context\x18\x01 \x01(\x0B23.google.cloud.sql.v1.RotateServerCertificateContextB\x03\xE0A\x01\"\x92\x01\x0A(InstancesRotateEntraIdCertificateRequest\x12f\x0A#rotate_entra_id_certificate_context\x18\x01 \x01(\x0B24.google.cloud.sql.v1.RotateEntraIdCertificateContextB\x03\xE0A\x01\"d\x0A\x1BInstancesTruncateLogRequest\x12E\x0A\x14truncate_log_context\x18\x01 \x01(\x0B2'.google.cloud.sql.v1.TruncateLogContext\"t\x0A InstancesAcquireSsrsLeaseRequest\x12P\x0A\x1Aacquire_ssrs_lease_context\x18\x01 \x01(\x0B2,.google.cloud.sql.v1.AcquireSsrsLeaseContext\"\xB2\x01\x0A.SqlInstancesPreCheckMajorVersionUpgradeRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\x12S\x0A\x04body\x18\x03 \x01(\x0B2@.google.cloud.sql.v1.InstancesPreCheckMajorVersionUpgradeRequestB\x03\xE0A\x02\"\xC4\x01\x0A.SqlInstancesVerifyExternalSyncSettingsResponse\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12@\x0A\x06errors\x18\x02 \x03(\x0B20.google.cloud.sql.v1.SqlExternalSyncSettingError\x12B\x0A\x08warnings\x18\x03 \x03(\x0B20.google.cloud.sql.v1.SqlExternalSyncSettingError\"h\x0A'SqlInstancesGetDiskShrinkConfigResponse\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x1E\x0A\x16minimal_target_size_gb\x18\x02 \x01(\x03\x12\x0F\x0A\x07message\x18\x03 \x01(\x09\"\xB7\x01\x0A(SqlInstancesGetLatestRecoveryTimeRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12F\x0A\x1Dsource_instance_deletion_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampH\x00\x88\x01\x01B \x0A\x1E_source_instance_deletion_time\"\xAF\x01\x0A)SqlInstancesGetLatestRecoveryTimeResponse\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x128\x0A\x14latest_recovery_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12:\x0A\x16earliest_recovery_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.Timestamp\"\x94\x05\x0A\x0CCloneContext\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x19\x0A\x11pitr_timestamp_ms\x18\x02 \x01(\x03\x12&\x0A\x19destination_instance_name\x18\x03 \x01(\x09B\x03\xE0A\x02\x12C\x0A\x13bin_log_coordinates\x18\x04 \x01(\x0B2&.google.cloud.sql.v1.BinLogCoordinates\x121\x0A\x0Dpoint_in_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12\x1A\x0A\x12allocated_ip_range\x18\x06 \x01(\x09\x12\x16\x0A\x0Edatabase_names\x18\x09 \x03(\x09\x12 \x0A\x0Epreferred_zone\x18\x0A \x01(\x09B\x03\xE0A\x01H\x00\x88\x01\x01\x12*\x0A\x18preferred_secondary_zone\x18\x0B \x01(\x09B\x03\xE0A\x01H\x01\x88\x01\x01\x12F\x0A\x1Dsource_instance_deletion_time\x18\x0C \x01(\x0B2\x1A.google.protobuf.TimestampH\x02\x88\x01\x01\x12%\x0A\x13destination_project\x18\x0D \x01(\x09B\x03\xE0A\x01H\x03\x88\x01\x01\x12H\x0A\x13destination_network\x18\x0E \x01(\x09B&\xE0A\x01\xFAA \x0A\x1Ecompute.googleapis.com/NetworkH\x04\x88\x01\x01B\x11\x0A\x0F_preferred_zoneB\x1B\x0A\x19_preferred_secondary_zoneB \x0A\x1E_source_instance_deletion_timeB\x16\x0A\x14_destination_projectB\x16\x0A\x14_destination_network\"\xCB\x04\x0A\x19PointInTimeRestoreContext\x12\x17\x0A\x0Adatasource\x18\x01 \x01(\x09H\x00\x88\x01\x01\x126\x0A\x0Dpoint_in_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x02\x12\x1C\x0A\x0Ftarget_instance\x18\x03 \x01(\x09H\x01\x88\x01\x01\x12!\x0A\x0Fprivate_network\x18\x04 \x01(\x09B\x03\xE0A\x01H\x02\x88\x01\x01\x12\$\x0A\x12allocated_ip_range\x18\x05 \x01(\x09B\x03\xE0A\x01H\x03\x88\x01\x01\x12 \x0A\x0Epreferred_zone\x18\x06 \x01(\x09B\x03\xE0A\x01H\x04\x88\x01\x01\x12*\x0A\x18preferred_secondary_zone\x18\x09 \x01(\x09B\x03\xE0A\x01H\x05\x88\x01\x01\x12L\x0A\x18target_instance_settings\x18\x0B \x01(\x0B2%.google.cloud.sql.v1.DatabaseInstanceB\x03\xE0A\x01\x127\x0A*target_instance_clear_settings_field_names\x18\x0C \x03(\x09B\x03\xE0A\x01\x12\x18\x0A\x06region\x18\x0D \x01(\x09B\x03\xE0A\x01H\x06\x88\x01\x01B\x0D\x0A\x0B_datasourceB\x12\x0A\x10_target_instanceB\x12\x0A\x10_private_networkB\x15\x0A\x13_allocated_ip_rangeB\x11\x0A\x0F_preferred_zoneB\x1B\x0A\x19_preferred_secondary_zoneB\x09\x0A\x07_region\"V\x0A\x11BinLogCoordinates\x12\x19\x0A\x11bin_log_file_name\x18\x01 \x01(\x09\x12\x18\x0A\x10bin_log_position\x18\x02 \x01(\x03\x12\x0C\x0A\x04kind\x18\x03 \x01(\x09\"\x80#\x0A\x10DatabaseInstance\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12E\x0A\x05state\x18\x02 \x01(\x0E26.google.cloud.sql.v1.DatabaseInstance.SqlInstanceState\x12A\x0A\x10database_version\x18\x03 \x01(\x0E2'.google.cloud.sql.v1.SqlDatabaseVersion\x12/\x0A\x08settings\x18\x04 \x01(\x0B2\x1D.google.cloud.sql.v1.Settings\x12\x0C\x0A\x04etag\x18\x05 \x01(\x09\x12R\x0A\x10failover_replica\x18\x06 \x01(\x0B28.google.cloud.sql.v1.DatabaseInstance.SqlFailoverReplica\x12\x1C\x0A\x14master_instance_name\x18\x07 \x01(\x09\x12\x15\x0A\x0Dreplica_names\x18\x08 \x03(\x09\x126\x0A\x0Dmax_disk_size\x18\x09 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x02\x18\x01\x12:\x0A\x11current_disk_size\x18\x0A \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x02\x18\x01\x124\x0A\x0Cip_addresses\x18\x0B \x03(\x0B2\x1E.google.cloud.sql.v1.IpMapping\x124\x0A\x0Eserver_ca_cert\x18\x0C \x01(\x0B2\x1C.google.cloud.sql.v1.SslCert\x12;\x0A\x0Dinstance_type\x18\x0D \x01(\x0E2\$.google.cloud.sql.v1.SqlInstanceType\x12\x0F\x0A\x07project\x18\x0E \x01(\x09\x12\x18\x0A\x0Cipv6_address\x18\x0F \x01(\x09B\x02\x18\x01\x12%\x0A\x1Dservice_account_email_address\x18\x10 \x01(\x09\x12O\x0A\x19on_premises_configuration\x18\x11 \x01(\x0B2,.google.cloud.sql.v1.OnPremisesConfiguration\x12H\x0A\x15replica_configuration\x18\x12 \x01(\x0B2).google.cloud.sql.v1.ReplicaConfiguration\x129\x0A\x0Cbackend_type\x18\x13 \x01(\x0E2#.google.cloud.sql.v1.SqlBackendType\x12\x11\x0A\x09self_link\x18\x14 \x01(\x09\x12C\x0A\x11suspension_reason\x18\x15 \x03(\x0E2(.google.cloud.sql.v1.SqlSuspensionReason\x12\x17\x0A\x0Fconnection_name\x18\x16 \x01(\x09\x12\x0C\x0A\x04name\x18\x17 \x01(\x09\x12\x0E\x0A\x06region\x18\x18 \x01(\x09\x12\x10\x0A\x08gce_zone\x18\x19 \x01(\x09\x12\x1A\x0A\x12secondary_gce_zone\x18\" \x01(\x09\x12W\x0A\x1Ddisk_encryption_configuration\x18\x1A \x01(\x0B20.google.cloud.sql.v1.DiskEncryptionConfiguration\x12I\x0A\x16disk_encryption_status\x18\x1B \x01(\x0B2).google.cloud.sql.v1.DiskEncryptionStatus\x12\x15\x0A\x0Droot_password\x18\x1D \x01(\x09\x12\\\x0A\x15scheduled_maintenance\x18\x1E \x01(\x0B2=.google.cloud.sql.v1.DatabaseInstance.SqlScheduledMaintenance\x121\x0A\x0Dsatisfies_pzs\x18# \x01(\x0B2\x1A.google.protobuf.BoolValue\x12'\x0A\x1Adatabase_installed_version\x18( \x01(\x09B\x03\xE0A\x03\x12Y\x0A\x12out_of_disk_report\x18& \x01(\x0B28.google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReportH\x00\x88\x01\x01\x124\x0A\x0Bcreate_time\x18' \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12+\x0A\x1Eavailable_maintenance_versions\x18) \x03(\x09B\x03\xE0A\x03\x12\x1B\x0A\x13maintenance_version\x18* \x01(\x09\x12X\x0A\x1Cupgradable_database_versions\x18- \x03(\x0B2-.google.cloud.sql.v1.AvailableDatabaseVersionB\x03\xE0A\x03\x12c\x0A\x18sql_network_architecture\x18/ \x01(\x0E2<.google.cloud.sql.v1.DatabaseInstance.SqlNetworkArchitectureH\x01\x88\x01\x01\x12-\x0A\x1Bpsc_service_attachment_link\x180 \x01(\x09B\x03\xE0A\x03H\x02\x88\x01\x01\x12\x1A\x0A\x08dns_name\x181 \x01(\x09B\x03\xE0A\x03H\x03\x88\x01\x01\x12\$\x0A\x10primary_dns_name\x183 \x01(\x09B\x05\x18\x01\xE0A\x03H\x04\x88\x01\x01\x12 \x0A\x0Ewrite_endpoint\x184 \x01(\x09B\x03\xE0A\x03H\x05\x88\x01\x01\x12I\x0A\x13replication_cluster\x186 \x01(\x0B2'.google.cloud.sql.v1.ReplicationClusterB\x03\xE0A\x01\x12E\x0A\x0Dgemini_config\x187 \x01(\x0B2).google.cloud.sql.v1.GeminiInstanceConfigH\x06\x88\x01\x01\x126\x0A\x0Dsatisfies_pzi\x188 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x03\x12^\x0A0switch_transaction_logs_to_cloud_storage_enabled\x189 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x04H\x07\x88\x01\x01\x12X\x0A*include_replicas_for_major_version_upgrade\x18; \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x04H\x08\x88\x01\x01\x12H\x0A\x04tags\x18< \x03(\x0B2/.google.cloud.sql.v1.DatabaseInstance.TagsEntryB\x09\xE0A\x04\xE0A\x05\xE0A\x01\x12\x17\x0A\x0Anode_count\x18? \x01(\x05H\x09\x88\x01\x01\x12H\x0A\x05nodes\x18@ \x03(\x0B24.google.cloud.sql.v1.DatabaseInstance.PoolNodeConfigB\x03\xE0A\x03\x12;\x0A\x09dns_names\x18C \x03(\x0B2#.google.cloud.sql.v1.DnsNameMappingB\x03\xE0A\x03\x1AQ\x0A\x12SqlFailoverReplica\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12-\x0A\x09available\x18\x02 \x01(\x0B2\x1A.google.protobuf.BoolValue\x1A\xD4\x01\x0A\x17SqlScheduledMaintenance\x12.\x0A\x0Astart_time\x18\x01 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12\x15\x0A\x09can_defer\x18\x02 \x01(\x08B\x02\x18\x01\x12\x16\x0A\x0Ecan_reschedule\x18\x03 \x01(\x08\x12?\x0A\x16schedule_deadline_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampH\x00\x88\x01\x01B\x19\x0A\x17_schedule_deadline_time\x1A\xD5\x02\x0A\x12SqlOutOfDiskReport\x12n\x0A\x15sql_out_of_disk_state\x18\x01 \x01(\x0E2J.google.cloud.sql.v1.DatabaseInstance.SqlOutOfDiskReport.SqlOutOfDiskStateH\x00\x88\x01\x01\x121\x0A\$sql_min_recommended_increase_size_gb\x18\x02 \x01(\x05H\x01\x88\x01\x01\"Y\x0A\x11SqlOutOfDiskState\x12%\x0A!SQL_OUT_OF_DISK_STATE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06NORMAL\x10\x01\x12\x11\x0A\x0DSOFT_SHUTDOWN\x10\x02B\x18\x0A\x16_sql_out_of_disk_stateB'\x0A%_sql_min_recommended_increase_size_gb\x1A\xF6\x03\x0A\x0EPoolNodeConfig\x12\x16\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x03H\x00\x88\x01\x01\x12\x1A\x0A\x08gce_zone\x18\x02 \x01(\x09B\x03\xE0A\x03H\x01\x88\x01\x01\x129\x0A\x0Cip_addresses\x18\x03 \x03(\x0B2\x1E.google.cloud.sql.v1.IpMappingB\x03\xE0A\x03\x12\x1A\x0A\x08dns_name\x18\x04 \x01(\x09B\x03\xE0A\x03H\x02\x88\x01\x01\x12O\x0A\x05state\x18\x05 \x01(\x0E26.google.cloud.sql.v1.DatabaseInstance.SqlInstanceStateB\x03\xE0A\x03H\x03\x88\x01\x01\x12;\x0A\x09dns_names\x18\x06 \x03(\x0B2#.google.cloud.sql.v1.DnsNameMappingB\x03\xE0A\x03\x12-\x0A\x1Bpsc_service_attachment_link\x18\x07 \x01(\x09B\x03\xE0A\x03H\x04\x88\x01\x01\x12O\x0A\x14psc_auto_connections\x18\x08 \x03(\x0B2,.google.cloud.sql.v1.PscAutoConnectionConfigB\x03\xE0A\x03B\x07\x0A\x05_nameB\x0B\x0A\x09_gce_zoneB\x0B\x0A\x09_dns_nameB\x08\x0A\x06_stateB\x1E\x0A\x1C_psc_service_attachment_link\x1A+\x0A\x09TagsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"\xC3\x01\x0A\x10SqlInstanceState\x12\"\x0A\x1ESQL_INSTANCE_STATE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08RUNNABLE\x10\x01\x12\x0D\x0A\x09SUSPENDED\x10\x02\x12\x12\x0A\x0EPENDING_DELETE\x10\x03\x12\x12\x0A\x0EPENDING_CREATE\x10\x04\x12\x0F\x0A\x0BMAINTENANCE\x10\x05\x12\x0A\x0A\x06FAILED\x10\x06\x12\x1A\x0A\x12ONLINE_MAINTENANCE\x10\x07\x1A\x02\x08\x01\x12\x0D\x0A\x09REPAIRING\x10\x08\"~\x0A\x16SqlNetworkArchitecture\x12(\x0A\$SQL_NETWORK_ARCHITECTURE_UNSPECIFIED\x10\x00\x12\x1C\x0A\x18NEW_NETWORK_ARCHITECTURE\x10\x01\x12\x1C\x0A\x18OLD_NETWORK_ARCHITECTURE\x10\x02B\x15\x0A\x13_out_of_disk_reportB\x1B\x0A\x19_sql_network_architectureB\x1E\x0A\x1C_psc_service_attachment_linkB\x0B\x0A\x09_dns_nameB\x13\x0A\x11_primary_dns_nameB\x11\x0A\x0F_write_endpointB\x10\x0A\x0E_gemini_configB3\x0A1_switch_transaction_logs_to_cloud_storage_enabledB-\x0A+_include_replicas_for_major_version_upgradeB\x0D\x0A\x0B_node_count\"\xA6\x03\x0A\x14GeminiInstanceConfig\x12\x1A\x0A\x08entitled\x18\x01 \x01(\x08B\x03\xE0A\x03H\x00\x88\x01\x01\x12,\x0A\x1Agoogle_vacuum_mgmt_enabled\x18\x02 \x01(\x08B\x03\xE0A\x03H\x01\x88\x01\x01\x12,\x0A\x1Aoom_session_cancel_enabled\x18\x03 \x01(\x08B\x03\xE0A\x03H\x02\x88\x01\x01\x12&\x0A\x14active_query_enabled\x18\x04 \x01(\x08B\x03\xE0A\x03H\x03\x88\x01\x01\x12'\x0A\x15index_advisor_enabled\x18\x05 \x01(\x08B\x03\xE0A\x03H\x04\x88\x01\x01\x12*\x0A\x18flag_recommender_enabled\x18\x06 \x01(\x08B\x03\xE0A\x03H\x05\x88\x01\x01B\x0B\x0A\x09_entitledB\x1D\x0A\x1B_google_vacuum_mgmt_enabledB\x1D\x0A\x1B_oom_session_cancel_enabledB\x17\x0A\x15_active_query_enabledB\x18\x0A\x16_index_advisor_enabledB\x1B\x0A\x19_flag_recommender_enabled\"u\x0A\x12ReplicationCluster\x12\x1F\x0A\x12psa_write_endpoint\x18\x01 \x01(\x09B\x03\xE0A\x03\x12%\x0A\x18failover_dr_replica_name\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x17\x0A\x0Adr_replica\x18\x04 \x01(\x08B\x03\xE0A\x03\"\x90\x01\x0A\x18AvailableDatabaseVersion\x12\x1A\x0A\x0Dmajor_version\x18\x03 \x01(\x09H\x00\x88\x01\x01\x12\x11\x0A\x04name\x18\x08 \x01(\x09H\x01\x88\x01\x01\x12\x19\x0A\x0Cdisplay_name\x18\x09 \x01(\x09H\x02\x88\x01\x01B\x10\x0A\x0E_major_versionB\x07\x0A\x05_nameB\x0F\x0A\x0D_display_name\"\xB2\x03\x0A,SqlInstancesRescheduleMaintenanceRequestBody\x12`\x0A\x0Areschedule\x18\x03 \x01(\x0B2L.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.Reschedule\x1A\xAF\x01\x0A\x0AReschedule\x12i\x0A\x0Freschedule_type\x18\x01 \x01(\x0E2P.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequestBody.RescheduleType\x126\x0A\x0Dschedule_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\"n\x0A\x0ERescheduleType\x12\x1F\x0A\x1BRESCHEDULE_TYPE_UNSPECIFIED\x10\x00\x12\x0D\x0A\x09IMMEDIATE\x10\x01\x12\x19\x0A\x15NEXT_AVAILABLE_WINDOW\x10\x02\x12\x11\x0A\x0DSPECIFIC_TIME\x10\x03\"\xED\x01\x0A\x13DemoteMasterContext\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12;\x0A\x17verify_gtid_consistency\x18\x02 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12\x1C\x0A\x14master_instance_name\x18\x03 \x01(\x09\x12M\x0A\x15replica_configuration\x18\x04 \x01(\x0B2..google.cloud.sql.v1.DemoteMasterConfiguration\x12\x1E\x0A\x16skip_replication_setup\x18\x05 \x01(\x08\"O\x0A\x0DDemoteContext\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x120\x0A#source_representative_instance_name\x18\x02 \x01(\x09B\x03\xE0A\x02\"9\x0A\x0FFailoverContext\x12\x18\x0A\x10settings_version\x18\x01 \x01(\x03\x12\x0C\x0A\x04kind\x18\x02 \x01(\x09\"a\x0A\x14RestoreBackupContext\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x15\x0A\x0Dbackup_run_id\x18\x02 \x01(\x03\x12\x13\x0A\x0Binstance_id\x18\x03 \x01(\x09\x12\x0F\x0A\x07project\x18\x04 \x01(\x09\";\x0A\x15RotateServerCaContext\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x14\x0A\x0Cnext_version\x18\x02 \x01(\x09\"I\x0A\x1ERotateServerCertificateContext\x12\x11\x0A\x04kind\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x14\x0A\x0Cnext_version\x18\x02 \x01(\x09\"O\x0A\x1FRotateEntraIdCertificateContext\x12\x11\x0A\x04kind\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Cnext_version\x18\x02 \x01(\x09B\x03\xE0A\x01\"4\x0A\x12TruncateLogContext\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x10\x0A\x08log_type\x18\x02 \x01(\x09\"\xDF\x10\x0A\x1BSqlExternalSyncSettingError\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12^\x0A\x04type\x18\x02 \x01(\x0E2P.google.cloud.sql.v1.SqlExternalSyncSettingError.SqlExternalSyncSettingErrorType\x12\x0E\x0A\x06detail\x18\x03 \x01(\x09\"\xC1\x0F\x0A\x1FSqlExternalSyncSettingErrorType\x124\x0A0SQL_EXTERNAL_SYNC_SETTING_ERROR_TYPE_UNSPECIFIED\x10\x00\x12\x16\x0A\x12CONNECTION_FAILURE\x10\x01\x12\x16\x0A\x12BINLOG_NOT_ENABLED\x10\x02\x12!\x0A\x1DINCOMPATIBLE_DATABASE_VERSION\x10\x03\x12\x19\x0A\x15REPLICA_ALREADY_SETUP\x10\x04\x12\x1A\x0A\x16INSUFFICIENT_PRIVILEGE\x10\x05\x12\x1E\x0A\x1AUNSUPPORTED_MIGRATION_TYPE\x10\x06\x12\x1A\x0A\x16NO_PGLOGICAL_INSTALLED\x10\x07\x12!\x0A\x1DPGLOGICAL_NODE_ALREADY_EXISTS\x10\x08\x12\x15\x0A\x11INVALID_WAL_LEVEL\x10\x09\x12\"\x0A\x1EINVALID_SHARED_PRELOAD_LIBRARY\x10\x0A\x12&\x0A\"INSUFFICIENT_MAX_REPLICATION_SLOTS\x10\x0B\x12 \x0A\x1CINSUFFICIENT_MAX_WAL_SENDERS\x10\x0C\x12%\x0A!INSUFFICIENT_MAX_WORKER_PROCESSES\x10\x0D\x12\x1A\x0A\x16UNSUPPORTED_EXTENSIONS\x10\x0E\x12#\x0A\x1FINVALID_RDS_LOGICAL_REPLICATION\x10\x0F\x12\x19\x0A\x15INVALID_LOGGING_SETUP\x10\x10\x12\x14\x0A\x10INVALID_DB_PARAM\x10\x11\x12\x19\x0A\x15UNSUPPORTED_GTID_MODE\x10\x12\x12\x1F\x0A\x1BSQLSERVER_AGENT_NOT_RUNNING\x10\x13\x12 \x0A\x1CUNSUPPORTED_TABLE_DEFINITION\x10\x14\x12\x17\x0A\x13UNSUPPORTED_DEFINER\x10\x15\x12!\x0A\x1DSQLSERVER_SERVERNAME_MISMATCH\x10\x16\x12\x19\x0A\x15PRIMARY_ALREADY_SETUP\x10\x17\x12\x1D\x0A\x19UNSUPPORTED_BINLOG_FORMAT\x10\x18\x12\x1C\x0A\x18BINLOG_RETENTION_SETTING\x10\x19\x12\x1E\x0A\x1AUNSUPPORTED_STORAGE_ENGINE\x10\x1A\x12\x1A\x0A\x16LIMITED_SUPPORT_TABLES\x10\x1B\x12\x1C\x0A\x18EXISTING_DATA_IN_REPLICA\x10\x1C\x12\x1F\x0A\x1BMISSING_OPTIONAL_PRIVILEGES\x10\x1D\x12 \x0A\x1CRISKY_BACKUP_ADMIN_PRIVILEGE\x10\x1E\x12 \x0A\x1CINSUFFICIENT_GCS_PERMISSIONS\x10\x1F\x12\x15\x0A\x11INVALID_FILE_INFO\x10 \x12!\x0A\x1DUNSUPPORTED_DATABASE_SETTINGS\x10!\x120\x0A,MYSQL_PARALLEL_IMPORT_INSUFFICIENT_PRIVILEGE\x10\"\x12\x14\x0A\x10LOCAL_INFILE_OFF\x10#\x12\x1E\x0A\x1ATURN_ON_PITR_AFTER_PROMOTE\x10\$\x12'\x0A#INCOMPATIBLE_DATABASE_MINOR_VERSION\x10%\x12\x1C\x0A\x18SOURCE_MAX_SUBSCRIPTIONS\x10&\x12\x1D\x0A\x19UNABLE_TO_VERIFY_DEFINERS\x10'\x12#\x0A\x1FSUBSCRIPTION_CALCULATION_STATUS\x10(\x12\x19\x0A\x15PG_SUBSCRIPTION_COUNT\x10)\x12\x1A\x0A\x16PG_SYNC_PARALLEL_LEVEL\x10*\x12\x1A\x0A\x16INSUFFICIENT_DISK_SIZE\x10+\x12\x1D\x0A\x19INSUFFICIENT_MACHINE_TIER\x10,\x12'\x0A#UNSUPPORTED_EXTENSIONS_NOT_MIGRATED\x10-\x12\x1B\x0A\x17EXTENSIONS_NOT_MIGRATED\x10.\x12#\x0A\x1FPG_CRON_FLAG_ENABLED_IN_REPLICA\x10/\x12%\x0A!EXTENSIONS_NOT_ENABLED_IN_REPLICA\x100\x12\x17\x0A\x13UNSUPPORTED_COLUMNS\x101\x12 \x0A\x1CUSERS_NOT_CREATED_IN_REPLICA\x102\x12\x1E\x0A\x1AUNSUPPORTED_SYSTEM_OBJECTS\x103\x12,\x0A(UNSUPPORTED_TABLES_WITH_REPLICA_IDENTITY\x104\x12(\x0A\$SELECTED_OBJECTS_NOT_EXIST_ON_SOURCE\x105\x124\x0A0PSC_ONLY_INSTANCE_WITH_NO_NETWORK_ATTACHMENT_URI\x106\x121\x0A-SELECTED_OBJECTS_REFERENCE_UNSELECTED_OBJECTS\x107\x12\x1A\x0A\x16PROMPT_DELETE_EXISTING\x108\x12\x18\x0A\x14WILL_DELETE_EXISTING\x109\x12-\x0A)PG_DDL_REPLICATION_INSUFFICIENT_PRIVILEGE\x10:\"(\x0A\x0FSelectedObjects\x12\x15\x0A\x08database\x18\x01 \x01(\x09B\x03\xE0A\x02\"\xE7\x03\x0A\x17OnPremisesConfiguration\x12\x11\x0A\x09host_port\x18\x01 \x01(\x09\x12\x0C\x0A\x04kind\x18\x02 \x01(\x09\x12\x10\x0A\x08username\x18\x03 \x01(\x09\x12\x10\x0A\x08password\x18\x04 \x01(\x09\x12\x16\x0A\x0Eca_certificate\x18\x05 \x01(\x09\x12\x1A\x0A\x12client_certificate\x18\x06 \x01(\x09\x12\x12\x0A\x0Aclient_key\x18\x07 \x01(\x09\x12\x16\x0A\x0Edump_file_path\x18\x08 \x01(\x09\x12?\x0A\x0Fsource_instance\x18\x0F \x01(\x0B2&.google.cloud.sql.v1.InstanceReference\x12C\x0A\x10selected_objects\x18\x10 \x03(\x0B2\$.google.cloud.sql.v1.SelectedObjectsB\x03\xE0A\x01\x12O\x0A\x0Assl_option\x18\x12 \x01(\x0E26.google.cloud.sql.v1.OnPremisesConfiguration.SslOptionB\x03\xE0A\x01\"P\x0A\x09SslOption\x12\x1A\x0A\x16SSL_OPTION_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07DISABLE\x10\x01\x12\x0B\x0A\x07REQUIRE\x10\x02\x12\x0D\x0A\x09VERIFY_CA\x10\x03\"\xEB\x01\x0A\x14ReplicaConfiguration\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12S\x0A\x1Bmysql_replica_configuration\x18\x02 \x01(\x0B2..google.cloud.sql.v1.MySqlReplicaConfiguration\x123\x0A\x0Ffailover_target\x18\x03 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12;\x0A\x12cascadable_replica\x18\x05 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\"\x82\x01\x0A\x1DSqlInstancesExecuteSqlRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\x124\x0A\x04body\x18d \x01(\x0B2&.google.cloud.sql.v1.ExecuteSqlPayload\"\x84\x03\x0A\x11ExecuteSqlPayload\x12\x11\x0A\x04user\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x1A\x0A\x0Dsql_statement\x18\x02 \x01(\x09B\x03\xE0A\x02\x12\x15\x0A\x08database\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x1D\x0A\x0Eauto_iam_authn\x18\x0B \x01(\x08B\x03\xE0A\x01H\x00\x12\x16\x0A\x09row_limit\x18\x0A \x01(\x03B\x03\xE0A\x01\x12Z\x0A\x13partial_result_mode\x18\x0D \x01(\x0E28.google.cloud.sql.v1.ExecuteSqlPayload.PartialResultModeB\x03\xE0A\x01\x12\x18\x0A\x0Bapplication\x18\x10 \x01(\x09B\x03\xE0A\x01\"k\x0A\x11PartialResultMode\x12#\x0A\x1FPARTIAL_RESULT_MODE_UNSPECIFIED\x10\x00\x12\x17\x0A\x13FAIL_PARTIAL_RESULT\x10\x01\x12\x18\x0A\x14ALLOW_PARTIAL_RESULT\x10\x02B\x0F\x0A\x0Duser_password\"\xC8\x02\x0A\x1ESqlInstancesExecuteSqlResponse\x12M\x0A\x08messages\x18\x09 \x03(\x0B2;.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse.Message\x12/\x0A\x08metadata\x18\x06 \x01(\x0B2\x1D.google.cloud.sql.v1.Metadata\x121\x0A\x07results\x18\x07 \x03(\x0B2 .google.cloud.sql.v1.QueryResult\x12\"\x0A\x06status\x18\x08 \x01(\x0B2\x12.google.rpc.Status\x1AO\x0A\x07Message\x12\x14\x0A\x07message\x18\x01 \x01(\x09H\x00\x88\x01\x01\x12\x15\x0A\x08severity\x18\x02 \x01(\x09H\x01\x88\x01\x01B\x0A\x0A\x08_messageB\x0B\x0A\x09_severity\"\xB0\x01\x0A\x0BQueryResult\x12,\x0A\x07columns\x18\x01 \x03(\x0B2\x1B.google.cloud.sql.v1.Column\x12&\x0A\x04rows\x18\x02 \x03(\x0B2\x18.google.cloud.sql.v1.Row\x12\x0F\x0A\x07message\x18\x03 \x01(\x09\x12\x16\x0A\x0Epartial_result\x18\x04 \x01(\x08\x12\"\x0A\x06status\x18\x08 \x01(\x0B2\x12.google.rpc.Status\"\$\x0A\x06Column\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12\x0C\x0A\x04type\x18\x02 \x01(\x09\"1\x0A\x03Row\x12*\x0A\x06values\x18\x01 \x03(\x0B2\x1A.google.cloud.sql.v1.Value\"*\x0A\x05Value\x12\x0D\x0A\x05value\x18\x01 \x01(\x09\x12\x12\x0A\x0Anull_value\x18\x02 \x01(\x08\"K\x0A\x08Metadata\x12?\x0A\x1Csql_statement_execution_time\x18\x01 \x01(\x0B2\x19.google.protobuf.Duration\"\x9C\x01\x0A#SqlInstancesAcquireSsrsLeaseRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\x12H\x0A\x04body\x18d \x01(\x0B25.google.cloud.sql.v1.InstancesAcquireSsrsLeaseRequestB\x03\xE0A\x02\"<\x0A\$SqlInstancesAcquireSsrsLeaseResponse\x12\x14\x0A\x0Coperation_id\x18\x01 \x01(\x09\"R\x0A#SqlInstancesReleaseSsrsLeaseRequest\x12\x15\x0A\x08instance\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x14\x0A\x07project\x18\x02 \x01(\x09B\x03\xE0A\x02\"<\x0A\$SqlInstancesReleaseSsrsLeaseResponse\x12\x14\x0A\x0Coperation_id\x18\x01 \x01(\x09\"\x82\x01\x0A%SqlInstancesPointInTimeRestoreRequest\x12\x13\x0A\x06parent\x18\x01 \x01(\x09B\x03\xE0A\x02\x12D\x0A\x07context\x18d \x01(\x0B2..google.cloud.sql.v1.PointInTimeRestoreContextB\x03\xE0A\x02*h\x0A\x19ExternalSyncParallelLevel\x12,\x0A(EXTERNAL_SYNC_PARALLEL_LEVEL_UNSPECIFIED\x10\x00\x12\x07\x0A\x03MIN\x10\x01\x12\x0B\x0A\x07OPTIMAL\x10\x02\x12\x07\x0A\x03MAX\x10\x03*\x99\x01\x0A\x0FSqlInstanceType\x12!\x0A\x1DSQL_INSTANCE_TYPE_UNSPECIFIED\x10\x00\x12\x16\x0A\x12CLOUD_SQL_INSTANCE\x10\x01\x12\x18\x0A\x14ON_PREMISES_INSTANCE\x10\x02\x12\x19\x0A\x15READ_REPLICA_INSTANCE\x10\x03\x12\x16\x0A\x12READ_POOL_INSTANCE\x10\x05*\x9D\x01\x0A\x13SqlSuspensionReason\x12%\x0A!SQL_SUSPENSION_REASON_UNSPECIFIED\x10\x00\x12\x11\x0A\x0DBILLING_ISSUE\x10\x02\x12\x0F\x0A\x0BLEGAL_ISSUE\x10\x03\x12\x15\x0A\x11OPERATIONAL_ISSUE\x10\x04\x12\x11\x0A\x0DKMS_KEY_ISSUE\x10\x05\x12\x11\x0A\x0DPROJECT_ABUSE\x10\x082\x99>\x0A\x13SqlInstancesService\x12\xA3\x01\x0A\x0BAddServerCa\x123.google.cloud.sql.v1.SqlInstancesAddServerCaRequest\x1A\x1E.google.cloud.sql.v1.Operation\"?\x82\xD3\xE4\x93\x029\"7/v1/projects/{project}/instances/{instance}/addServerCa\x12\xBE\x01\x0A\x14AddServerCertificate\x12<.google.cloud.sql.v1.SqlInstancesAddServerCertificateRequest\x1A\x1E.google.cloud.sql.v1.Operation\"H\x82\xD3\xE4\x93\x02B\"@/v1/projects/{project}/instances/{instance}/addServerCertificate\x12\xC1\x01\x0A\x15AddEntraIdCertificate\x12=.google.cloud.sql.v1.SqlInstancesAddEntraIdCertificateRequest\x1A\x1E.google.cloud.sql.v1.Operation\"I\x82\xD3\xE4\x93\x02C\"A/v1/projects/{project}/instances/{instance}/addEntraIdCertificate\x12\x97\x01\x0A\x05Clone\x12-.google.cloud.sql.v1.SqlInstancesCloneRequest\x1A\x1E.google.cloud.sql.v1.Operation\"?\x82\xD3\xE4\x93\x029\"1/v1/projects/{project}/instances/{instance}/clone:\x04body\x12\x8D\x01\x0A\x06Delete\x12..google.cloud.sql.v1.SqlInstancesDeleteRequest\x1A\x1E.google.cloud.sql.v1.Operation\"3\x82\xD3\xE4\x93\x02-*+/v1/projects/{project}/instances/{instance}\x12\xAC\x01\x0A\x0CDemoteMaster\x124.google.cloud.sql.v1.SqlInstancesDemoteMasterRequest\x1A\x1E.google.cloud.sql.v1.Operation\"F\x82\xD3\xE4\x93\x02@\"8/v1/projects/{project}/instances/{instance}/demoteMaster:\x04body\x12\x9A\x01\x0A\x06Demote\x12..google.cloud.sql.v1.SqlInstancesDemoteRequest\x1A\x1E.google.cloud.sql.v1.Operation\"@\x82\xD3\xE4\x93\x02:\"2/v1/projects/{project}/instances/{instance}/demote:\x04body\x12\x9A\x01\x0A\x06Export\x12..google.cloud.sql.v1.SqlInstancesExportRequest\x1A\x1E.google.cloud.sql.v1.Operation\"@\x82\xD3\xE4\x93\x02:\"2/v1/projects/{project}/instances/{instance}/export:\x04body\x12\xA0\x01\x0A\x08Failover\x120.google.cloud.sql.v1.SqlInstancesFailoverRequest\x1A\x1E.google.cloud.sql.v1.Operation\"B\x82\xD3\xE4\x93\x02<\"4/v1/projects/{project}/instances/{instance}/failover:\x04body\x12\xA3\x01\x0A\x09Reencrypt\x121.google.cloud.sql.v1.SqlInstancesReencryptRequest\x1A\x1E.google.cloud.sql.v1.Operation\"C\x82\xD3\xE4\x93\x02=\"5/v1/projects/{project}/instances/{instance}/reencrypt:\x04body\x12\x8E\x01\x0A\x03Get\x12+.google.cloud.sql.v1.SqlInstancesGetRequest\x1A%.google.cloud.sql.v1.DatabaseInstance\"3\x82\xD3\xE4\x93\x02-\x12+/v1/projects/{project}/instances/{instance}\x12\x9A\x01\x0A\x06Import\x12..google.cloud.sql.v1.SqlInstancesImportRequest\x1A\x1E.google.cloud.sql.v1.Operation\"@\x82\xD3\xE4\x93\x02:\"2/v1/projects/{project}/instances/{instance}/import:\x04body\x12\x88\x01\x0A\x06Insert\x12..google.cloud.sql.v1.SqlInstancesInsertRequest\x1A\x1E.google.cloud.sql.v1.Operation\".\x82\xD3\xE4\x93\x02(\" /v1/projects/{project}/instances:\x04body\x12\x8A\x01\x0A\x04List\x12,.google.cloud.sql.v1.SqlInstancesListRequest\x1A*.google.cloud.sql.v1.InstancesListResponse\"(\x82\xD3\xE4\x93\x02\"\x12 /v1/projects/{project}/instances\x12\xBE\x01\x0A\x0DListServerCas\x125.google.cloud.sql.v1.SqlInstancesListServerCasRequest\x1A3.google.cloud.sql.v1.InstancesListServerCasResponse\"A\x82\xD3\xE4\x93\x02;\x129/v1/projects/{project}/instances/{instance}/listServerCas\x12\xE2\x01\x0A\x16ListServerCertificates\x12>.google.cloud.sql.v1.SqlInstancesListServerCertificatesRequest\x1A<.google.cloud.sql.v1.InstancesListServerCertificatesResponse\"J\x82\xD3\xE4\x93\x02D\x12B/v1/projects/{project}/instances/{instance}/listServerCertificates\x12\xE6\x01\x0A\x17ListEntraIdCertificates\x12?.google.cloud.sql.v1.SqlInstancesListEntraIdCertificatesRequest\x1A=.google.cloud.sql.v1.InstancesListEntraIdCertificatesResponse\"K\x82\xD3\xE4\x93\x02E\x12C/v1/projects/{project}/instances/{instance}/listEntraIdCertificates\x12\x91\x01\x0A\x05Patch\x12-.google.cloud.sql.v1.SqlInstancesPatchRequest\x1A\x1E.google.cloud.sql.v1.Operation\"9\x82\xD3\xE4\x93\x0232+/v1/projects/{project}/instances/{instance}:\x04body\x12\xAC\x01\x0A\x0EPromoteReplica\x126.google.cloud.sql.v1.SqlInstancesPromoteReplicaRequest\x1A\x1E.google.cloud.sql.v1.Operation\"B\x82\xD3\xE4\x93\x02<\":/v1/projects/{project}/instances/{instance}/promoteReplica\x12\xA0\x01\x0A\x0ASwitchover\x122.google.cloud.sql.v1.SqlInstancesSwitchoverRequest\x1A\x1E.google.cloud.sql.v1.Operation\">\x82\xD3\xE4\x93\x028\"6/v1/projects/{project}/instances/{instance}/switchover\x12\xAC\x01\x0A\x0EResetSslConfig\x126.google.cloud.sql.v1.SqlInstancesResetSslConfigRequest\x1A\x1E.google.cloud.sql.v1.Operation\"B\x82\xD3\xE4\x93\x02<\":/v1/projects/{project}/instances/{instance}/resetSslConfig\x12\x97\x01\x0A\x07Restart\x12/.google.cloud.sql.v1.SqlInstancesRestartRequest\x1A\x1E.google.cloud.sql.v1.Operation\";\x82\xD3\xE4\x93\x025\"3/v1/projects/{project}/instances/{instance}/restart\x12\xAF\x01\x0A\x0DRestoreBackup\x125.google.cloud.sql.v1.SqlInstancesRestoreBackupRequest\x1A\x1E.google.cloud.sql.v1.Operation\"G\x82\xD3\xE4\x93\x02A\"9/v1/projects/{project}/instances/{instance}/restoreBackup:\x04body\x12\xB2\x01\x0A\x0ERotateServerCa\x126.google.cloud.sql.v1.SqlInstancesRotateServerCaRequest\x1A\x1E.google.cloud.sql.v1.Operation\"H\x82\xD3\xE4\x93\x02B\":/v1/projects/{project}/instances/{instance}/rotateServerCa:\x04body\x12\xCD\x01\x0A\x17RotateServerCertificate\x12?.google.cloud.sql.v1.SqlInstancesRotateServerCertificateRequest\x1A\x1E.google.cloud.sql.v1.Operation\"Q\x82\xD3\xE4\x93\x02K\"C/v1/projects/{project}/instances/{instance}/rotateServerCertificate:\x04body\x12\xD0\x01\x0A\x18RotateEntraIdCertificate\x12@.google.cloud.sql.v1.SqlInstancesRotateEntraIdCertificateRequest\x1A\x1E.google.cloud.sql.v1.Operation\"R\x82\xD3\xE4\x93\x02L\"D/v1/projects/{project}/instances/{instance}/rotateEntraIdCertificate:\x04body\x12\xA6\x01\x0A\x0CStartReplica\x124.google.cloud.sql.v1.SqlInstancesStartReplicaRequest\x1A\x1E.google.cloud.sql.v1.Operation\"@\x82\xD3\xE4\x93\x02:\"8/v1/projects/{project}/instances/{instance}/startReplica\x12\xA3\x01\x0A\x0BStopReplica\x123.google.cloud.sql.v1.SqlInstancesStopReplicaRequest\x1A\x1E.google.cloud.sql.v1.Operation\"?\x82\xD3\xE4\x93\x029\"7/v1/projects/{project}/instances/{instance}/stopReplica\x12\xA9\x01\x0A\x0BTruncateLog\x123.google.cloud.sql.v1.SqlInstancesTruncateLogRequest\x1A\x1E.google.cloud.sql.v1.Operation\"E\x82\xD3\xE4\x93\x02?\"7/v1/projects/{project}/instances/{instance}/truncateLog:\x04body\x12\x93\x01\x0A\x06Update\x12..google.cloud.sql.v1.SqlInstancesUpdateRequest\x1A\x1E.google.cloud.sql.v1.Operation\"9\x82\xD3\xE4\x93\x023\x1A+/v1/projects/{project}/instances/{instance}:\x04body\x12\xB7\x01\x0A\x0FCreateEphemeral\x12;.google.cloud.sql.v1.SqlInstancesCreateEphemeralCertRequest\x1A\x1C.google.cloud.sql.v1.SslCert\"I\x82\xD3\xE4\x93\x02C\";/v1/projects/{project}/instances/{instance}/createEphemeral:\x04body\x12\xC7\x01\x0A\x15RescheduleMaintenance\x12=.google.cloud.sql.v1.SqlInstancesRescheduleMaintenanceRequest\x1A\x1E.google.cloud.sql.v1.Operation\"O\x82\xD3\xE4\x93\x02I\"A/v1/projects/{project}/instances/{instance}/rescheduleMaintenance:\x04body\x12\xF8\x01\x0A\x1AVerifyExternalSyncSettings\x12B.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsRequest\x1AC.google.cloud.sql.v1.SqlInstancesVerifyExternalSyncSettingsResponse\"Q\x82\xD3\xE4\x93\x02K\"F/v1/projects/{project}/instances/{instance}/verifyExternalSyncSettings:\x01*\x12\xB8\x01\x0A\x11StartExternalSync\x129.google.cloud.sql.v1.SqlInstancesStartExternalSyncRequest\x1A\x1E.google.cloud.sql.v1.Operation\"H\x82\xD3\xE4\x93\x02B\"=/v1/projects/{project}/instances/{instance}/startExternalSync:\x01*\x12\xBB\x01\x0A\x11PerformDiskShrink\x129.google.cloud.sql.v1.SqlInstancesPerformDiskShrinkRequest\x1A\x1E.google.cloud.sql.v1.Operation\"K\x82\xD3\xE4\x93\x02E\"=/v1/projects/{project}/instances/{instance}/performDiskShrink:\x04body\x12\xD9\x01\x0A\x13GetDiskShrinkConfig\x12;.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigRequest\x1A<.google.cloud.sql.v1.SqlInstancesGetDiskShrinkConfigResponse\"G\x82\xD3\xE4\x93\x02A\x12?/v1/projects/{project}/instances/{instance}/getDiskShrinkConfig\x12\xB5\x01\x0A\x10ResetReplicaSize\x128.google.cloud.sql.v1.SqlInstancesResetReplicaSizeRequest\x1A\x1E.google.cloud.sql.v1.Operation\"G\x82\xD3\xE4\x93\x02A\".google.cloud.sql.v1.SqlInstancesGetLatestRecoveryTimeResponse\"I\x82\xD3\xE4\x93\x02C\x12A/v1/projects/{project}/instances/{instance}/getLatestRecoveryTime\x12\xBB\x01\x0A\x0AExecuteSql\x122.google.cloud.sql.v1.SqlInstancesExecuteSqlRequest\x1A3.google.cloud.sql.v1.SqlInstancesExecuteSqlResponse\"D\x82\xD3\xE4\x93\x02>\"6/v1/projects/{project}/instances/{instance}/executeSql:\x04body\x12\xD3\x01\x0A\x10AcquireSsrsLease\x128.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseRequest\x1A9.google.cloud.sql.v1.SqlInstancesAcquireSsrsLeaseResponse\"J\x82\xD3\xE4\x93\x02D\"\"internalAddGeneratedFile( - "\x0A\xB9\xA9\x01\x0A-google/cloud/sql/v1/cloud_sql_resources.proto\x12\x13google.cloud.sql.v1\x1A\x1Bgoogle/api/field_info.proto\x1A\x19google/api/resource.proto\x1A\x1Egoogle/protobuf/duration.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\x1A\x1Egoogle/protobuf/wrappers.proto\"o\x0A\x08AclEntry\x12\x0D\x0A\x05value\x18\x01 \x01(\x09\x123\x0A\x0Fexpiration_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12\x11\x0A\x04name\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x0C\x0A\x04kind\x18\x04 \x01(\x09\"\x9A\x02\x0A\x0AApiWarning\x12?\x0A\x04code\x18\x01 \x01(\x0E21.google.cloud.sql.v1.ApiWarning.SqlApiWarningCode\x12\x0F\x0A\x07message\x18\x02 \x01(\x09\x12\x0E\x0A\x06region\x18\x03 \x01(\x09\"\xA9\x01\x0A\x11SqlApiWarningCode\x12\$\x0A SQL_API_WARNING_CODE_UNSPECIFIED\x10\x00\x12\x16\x0A\x12REGION_UNREACHABLE\x10\x01\x12\x1D\x0A\x19MAX_RESULTS_EXCEEDS_LIMIT\x10\x02\x12\x1B\x0A\x17COMPROMISED_CREDENTIALS\x10\x03\x12\x1A\x0A\x16INTERNAL_STATE_FAILURE\x10\x04\"\xE0\x01\x0A\x17BackupRetentionSettings\x12R\x0A\x0Eretention_unit\x18\x01 \x01(\x0E2:.google.cloud.sql.v1.BackupRetentionSettings.RetentionUnit\x125\x0A\x10retained_backups\x18\x02 \x01(\x0B2\x1B.google.protobuf.Int32Value\":\x0A\x0DRetentionUnit\x12\x1E\x0A\x1ARETENTION_UNIT_UNSPECIFIED\x10\x00\x12\x09\x0A\x05COUNT\x10\x01\"\xD8\x07\x0A\x13BackupConfiguration\x12\x12\x0A\x0Astart_time\x18\x01 \x01(\x09\x12+\x0A\x07enabled\x18\x02 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12\x0C\x0A\x04kind\x18\x03 \x01(\x09\x126\x0A\x12binary_log_enabled\x18\x04 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12E\x0A!replication_log_archiving_enabled\x18\x05 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12\x10\x0A\x08location\x18\x06 \x01(\x09\x12B\x0A\x1Epoint_in_time_recovery_enabled\x18\x07 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12O\x0A\x19backup_retention_settings\x18\x08 \x01(\x0B2,.google.cloud.sql.v1.BackupRetentionSettings\x12C\x0A\x1Etransaction_log_retention_days\x18\x09 \x01(\x0B2\x1B.google.protobuf.Int32Value\x12x\x0A\x1Ftransactional_log_storage_state\x18\x0A \x01(\x0E2E.google.cloud.sql.v1.BackupConfiguration.TransactionalLogStorageStateB\x03\xE0A\x03H\x00\x88\x01\x01\x12R\x0A\x0Bbackup_tier\x18\x0B \x01(\x0E23.google.cloud.sql.v1.BackupConfiguration.BackupTierB\x03\xE0A\x03H\x01\x88\x01\x01\"\xAB\x01\x0A\x1CTransactionalLogStorageState\x12/\x0A+TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED\x10\x00\x12\x08\x0A\x04DISK\x10\x01\x12\x1E\x0A\x1ASWITCHING_TO_CLOUD_STORAGE\x10\x02\x12\x1D\x0A\x19SWITCHED_TO_CLOUD_STORAGE\x10\x03\x12\x11\x0A\x0DCLOUD_STORAGE\x10\x04\"W\x0A\x0ABackupTier\x12\x1B\x0A\x17BACKUP_TIER_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08STANDARD\x10\x01\x12\x10\x0A\x08ADVANCED\x10\x02\x1A\x02\x08\x01\x12\x0C\x0A\x08ENHANCED\x10\x03B\"\x0A _transactional_log_storage_stateB\x0E\x0A\x0C_backup_tier\"2\x0A\x18PerformDiskShrinkContext\x12\x16\x0A\x0Etarget_size_gb\x18\x01 \x01(\x03\"\xFC\x01\x0A\x10PreCheckResponse\x12\x14\x0A\x07message\x18\x02 \x01(\x09H\x00\x88\x01\x01\x12L\x0A\x0Cmessage_type\x18\x03 \x01(\x0E21.google.cloud.sql.v1.PreCheckResponse.MessageTypeH\x01\x88\x01\x01\x12\x18\x0A\x10actions_required\x18\x04 \x03(\x09\"M\x0A\x0BMessageType\x12\x1C\x0A\x18MESSAGE_TYPE_UNSPECIFIED\x10\x00\x12\x08\x0A\x04INFO\x10\x01\x12\x0B\x0A\x07WARNING\x10\x02\x12\x09\x0A\x05ERROR\x10\x03B\x0A\x0A\x08_messageB\x0F\x0A\x0D_message_type\"\xCE\x01\x0A\"PreCheckMajorVersionUpgradeContext\x12M\x0A\x17target_database_version\x18\x01 \x01(\x0E2'.google.cloud.sql.v1.SqlDatabaseVersionB\x03\xE0A\x02\x12F\x0A\x12pre_check_response\x18\x02 \x03(\x0B2%.google.cloud.sql.v1.PreCheckResponseB\x03\xE0A\x03\x12\x11\x0A\x04kind\x18\x03 \x01(\x09B\x03\xE0A\x01\">\x0A\x0DBackupContext\x12\x11\x0A\x09backup_id\x18\x01 \x01(\x03\x12\x0C\x0A\x04kind\x18\x02 \x01(\x09\x12\x0C\x0A\x04name\x18\x03 \x01(\x09\"\xF7\x01\x0A\x08Database\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x0F\x0A\x07charset\x18\x02 \x01(\x09\x12\x11\x0A\x09collation\x18\x03 \x01(\x09\x12\x0C\x0A\x04etag\x18\x04 \x01(\x09\x12\x0C\x0A\x04name\x18\x05 \x01(\x09\x12\x10\x0A\x08instance\x18\x06 \x01(\x09\x12\x11\x0A\x09self_link\x18\x07 \x01(\x09\x12\x0F\x0A\x07project\x18\x08 \x01(\x09\x12S\x0A\x1Asqlserver_database_details\x18\x09 \x01(\x0B2-.google.cloud.sql.v1.SqlServerDatabaseDetailsH\x00B\x12\x0A\x10database_details\"O\x0A\x18SqlServerDatabaseDetails\x12\x1B\x0A\x13compatibility_level\x18\x01 \x01(\x05\x12\x16\x0A\x0Erecovery_model\x18\x02 \x01(\x09\",\x0A\x0DDatabaseFlags\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09\"M\x0A\x0FMySqlSyncConfig\x12:\x0A\x12initial_sync_flags\x18\x01 \x03(\x0B2\x1E.google.cloud.sql.v1.SyncFlags\"(\x0A\x09SyncFlags\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09\"B\x0A\x11InstanceReference\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12\x0E\x0A\x06region\x18\x02 \x01(\x09\x12\x0F\x0A\x07project\x18\x03 \x01(\x09\"\x8A\x01\x0A\x19DemoteMasterConfiguration\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12_\x0A\x1Bmysql_replica_configuration\x18\x02 \x01(\x0B2:.google.cloud.sql.v1.DemoteMasterMySqlReplicaConfiguration\"\xA1\x01\x0A%DemoteMasterMySqlReplicaConfiguration\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x10\x0A\x08username\x18\x02 \x01(\x09\x12\x10\x0A\x08password\x18\x03 \x01(\x09\x12\x12\x0A\x0Aclient_key\x18\x04 \x01(\x09\x12\x1A\x0A\x12client_certificate\x18\x05 \x01(\x09\x12\x16\x0A\x0Eca_certificate\x18\x06 \x01(\x09\"\x81\x0E\x0A\x0DExportContext\x12\x0B\x0A\x03uri\x18\x01 \x01(\x09\x12\x11\x0A\x09databases\x18\x02 \x03(\x09\x12\x0C\x0A\x04kind\x18\x03 \x01(\x09\x12O\x0A\x12sql_export_options\x18\x04 \x01(\x0B23.google.cloud.sql.v1.ExportContext.SqlExportOptions\x12R\x0A\x12csv_export_options\x18\x05 \x01(\x0B26.google.cloud.sql.v1.ExportContext.SqlCsvExportOptions\x123\x0A\x09file_type\x18\x06 \x01(\x0E2 .google.cloud.sql.v1.SqlFileType\x12+\x0A\x07offload\x18\x08 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12R\x0A\x12bak_export_options\x18\x09 \x01(\x0B26.google.cloud.sql.v1.ExportContext.SqlBakExportOptions\x12W\x0A\x12tde_export_options\x18\x0A \x01(\x0B26.google.cloud.sql.v1.ExportContext.SqlTdeExportOptionsB\x03\xE0A\x01\x1A\x99\x01\x0A\x13SqlCsvExportOptions\x12\x14\x0A\x0Cselect_query\x18\x01 \x01(\x09\x12\x18\x0A\x10escape_character\x18\x02 \x01(\x09\x12\x17\x0A\x0Fquote_character\x18\x03 \x01(\x09\x12\x1C\x0A\x14fields_terminated_by\x18\x04 \x01(\x09\x12\x1B\x0A\x13lines_terminated_by\x18\x06 \x01(\x09\x1A\xD5\x04\x0A\x10SqlExportOptions\x12\x0E\x0A\x06tables\x18\x01 \x03(\x09\x12/\x0A\x0Bschema_only\x18\x02 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12d\x0A\x14mysql_export_options\x18\x03 \x01(\x0B2F.google.cloud.sql.v1.ExportContext.SqlExportOptions.MysqlExportOptions\x121\x0A\x07threads\x18\x04 \x01(\x0B2\x1B.google.protobuf.Int32ValueB\x03\xE0A\x01\x121\x0A\x08parallel\x18\x05 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x12o\x0A\x17postgres_export_options\x18\x06 \x01(\x0B2I.google.cloud.sql.v1.ExportContext.SqlExportOptions.PostgresExportOptionsB\x03\xE0A\x01\x1AF\x0A\x12MysqlExportOptions\x120\x0A\x0Bmaster_data\x18\x01 \x01(\x0B2\x1B.google.protobuf.Int32Value\x1A{\x0A\x15PostgresExportOptions\x12.\x0A\x05clean\x18\x01 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x122\x0A\x09if_exists\x18\x02 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x1A\x8D\x03\x0A\x13SqlBakExportOptions\x12+\x0A\x07striped\x18\x01 \x01(\x0B2\x1A.google.protobuf.BoolValue\x121\x0A\x0Cstripe_count\x18\x02 \x01(\x0B2\x1B.google.protobuf.Int32Value\x12.\x0A\x08bak_type\x18\x04 \x01(\x0E2\x1C.google.cloud.sql.v1.BakType\x121\x0A\x09copy_only\x18\x05 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x02\x18\x01\x125\x0A\x11differential_base\x18\x06 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12>\x0A\x15export_log_start_time\x18\x07 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\x12<\x0A\x13export_log_end_time\x18\x08 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\x1A\x89\x01\x0A\x13SqlTdeExportOptions\x12\x1D\x0A\x10certificate_path\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x1D\x0A\x10private_key_path\x18\x02 \x01(\x09B\x03\xE0A\x02\x12!\x0A\x14private_key_password\x18\x03 \x01(\x09B\x03\xE0A\x02\x12\x11\x0A\x04name\x18\x05 \x01(\x09B\x03\xE0A\x02\"\x8E\x0D\x0A\x0DImportContext\x12\x0B\x0A\x03uri\x18\x01 \x01(\x09\x12\x10\x0A\x08database\x18\x02 \x01(\x09\x12\x0C\x0A\x04kind\x18\x03 \x01(\x09\x123\x0A\x09file_type\x18\x04 \x01(\x0E2 .google.cloud.sql.v1.SqlFileType\x12R\x0A\x12csv_import_options\x18\x05 \x01(\x0B26.google.cloud.sql.v1.ImportContext.SqlCsvImportOptions\x12\x13\x0A\x0Bimport_user\x18\x06 \x01(\x09\x12R\x0A\x12bak_import_options\x18\x07 \x01(\x0B26.google.cloud.sql.v1.ImportContext.SqlBakImportOptions\x12T\x0A\x12sql_import_options\x18\x08 \x01(\x0B23.google.cloud.sql.v1.ImportContext.SqlImportOptionsB\x03\xE0A\x01\x12W\x0A\x12tde_import_options\x18\x09 \x01(\x0B26.google.cloud.sql.v1.ImportContext.SqlTdeImportOptionsB\x03\xE0A\x01\x1A\xE6\x02\x0A\x10SqlImportOptions\x121\x0A\x07threads\x18\x01 \x01(\x0B2\x1B.google.protobuf.Int32ValueB\x03\xE0A\x01\x121\x0A\x08parallel\x18\x02 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x12o\x0A\x17postgres_import_options\x18\x03 \x01(\x0B2I.google.cloud.sql.v1.ImportContext.SqlImportOptions.PostgresImportOptionsB\x03\xE0A\x01\x1A{\x0A\x15PostgresImportOptions\x12.\x0A\x05clean\x18\x01 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x122\x0A\x09if_exists\x18\x02 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x1A\xA3\x01\x0A\x13SqlCsvImportOptions\x12\x0D\x0A\x05table\x18\x01 \x01(\x09\x12\x0F\x0A\x07columns\x18\x02 \x03(\x09\x12\x18\x0A\x10escape_character\x18\x04 \x01(\x09\x12\x17\x0A\x0Fquote_character\x18\x05 \x01(\x09\x12\x1C\x0A\x14fields_terminated_by\x18\x06 \x01(\x09\x12\x1B\x0A\x13lines_terminated_by\x18\x08 \x01(\x09\x1A\x93\x04\x0A\x13SqlBakImportOptions\x12d\x0A\x12encryption_options\x18\x01 \x01(\x0B2H.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.EncryptionOptions\x12+\x0A\x07striped\x18\x02 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12/\x0A\x0Bno_recovery\x18\x04 \x01(\x0B2\x1A.google.protobuf.BoolValue\x121\x0A\x0Drecovery_only\x18\x05 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12.\x0A\x08bak_type\x18\x06 \x01(\x0E2\x1C.google.cloud.sql.v1.BakType\x120\x0A\x07stop_at\x18\x07 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\x12\x19\x0A\x0Cstop_at_mark\x18\x08 \x01(\x09B\x03\xE0A\x01\x1A\x87\x01\x0A\x11EncryptionOptions\x12\x11\x0A\x09cert_path\x18\x01 \x01(\x09\x12\x10\x0A\x08pvk_path\x18\x02 \x01(\x09\x12\x14\x0A\x0Cpvk_password\x18\x03 \x01(\x09\x127\x0A\x0Ekeep_encrypted\x18\x05 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x1A\x89\x01\x0A\x13SqlTdeImportOptions\x12\x1D\x0A\x10certificate_path\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x1D\x0A\x10private_key_path\x18\x02 \x01(\x09B\x03\xE0A\x02\x12!\x0A\x14private_key_password\x18\x03 \x01(\x09B\x03\xE0A\x02\x12\x11\x0A\x04name\x18\x05 \x01(\x09B\x03\xE0A\x02\"\xBB\x09\x0A\x0FIpConfiguration\x120\x0A\x0Cipv4_enabled\x18\x01 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12\x17\x0A\x0Fprivate_network\x18\x02 \x01(\x09\x12/\x0A\x0Brequire_ssl\x18\x03 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12:\x0A\x13authorized_networks\x18\x04 \x03(\x0B2\x1D.google.cloud.sql.v1.AclEntry\x12\x1A\x0A\x12allocated_ip_range\x18\x06 \x01(\x09\x12Q\x0A-enable_private_path_for_google_cloud_services\x18\x07 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12>\x0A\x08ssl_mode\x18\x08 \x01(\x0E2,.google.cloud.sql.v1.IpConfiguration.SslMode\x127\x0A\x0Apsc_config\x18\x09 \x01(\x0B2\x1E.google.cloud.sql.v1.PscConfigH\x00\x88\x01\x01\x12H\x0A\x0Eserver_ca_mode\x18\x0A \x01(\x0E2+.google.cloud.sql.v1.IpConfiguration.CaModeH\x01\x88\x01\x01\x12-\x0A custom_subject_alternative_names\x18\x0B \x03(\x09B\x03\xE0A\x01\x12 \x0A\x0Eserver_ca_pool\x18\x0C \x01(\x09B\x03\xE0A\x01H\x02\x88\x01\x01\x12v\x0A server_certificate_rotation_mode\x18\x10 \x01(\x0E2B.google.cloud.sql.v1.IpConfiguration.ServerCertificateRotationModeB\x03\xE0A\x01H\x03\x88\x01\x01\"\x85\x01\x0A\x07SslMode\x12\x18\x0A\x14SSL_MODE_UNSPECIFIED\x10\x00\x12#\x0A\x1FALLOW_UNENCRYPTED_AND_ENCRYPTED\x10\x01\x12\x12\x0A\x0EENCRYPTED_ONLY\x10\x02\x12'\x0A#TRUSTED_CLIENT_CERTIFICATE_REQUIRED\x10\x03\"y\x0A\x06CaMode\x12\x17\x0A\x13CA_MODE_UNSPECIFIED\x10\x00\x12\x1E\x0A\x1AGOOGLE_MANAGED_INTERNAL_CA\x10\x01\x12\x19\x0A\x15GOOGLE_MANAGED_CAS_CA\x10\x02\x12\x1B\x0A\x17CUSTOMER_MANAGED_CAS_CA\x10\x03\"\x97\x01\x0A\x1DServerCertificateRotationMode\x120\x0A,SERVER_CERTIFICATE_ROTATION_MODE_UNSPECIFIED\x10\x00\x12\x19\x0A\x15NO_AUTOMATIC_ROTATION\x10\x01\x12)\x0A%AUTOMATIC_ROTATION_DURING_MAINTENANCE\x10\x02B\x0D\x0A\x0B_psc_configB\x11\x0A\x0F_server_ca_modeB\x11\x0A\x0F_server_ca_poolB#\x0A!_server_certificate_rotation_mode\"\xD3\x01\x0A\x09PscConfig\x12\x18\x0A\x0Bpsc_enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12&\x0A\x19allowed_consumer_projects\x18\x02 \x03(\x09B\x03\xE0A\x01\x12O\x0A\x14psc_auto_connections\x18\x03 \x03(\x0B2,.google.cloud.sql.v1.PscAutoConnectionConfigB\x03\xE0A\x01\x12#\x0A\x16network_attachment_uri\x18\x04 \x01(\x09B\x03\xE0A\x01B\x0E\x0A\x0C_psc_enabled\"\xEB\x01\x0A\x17PscAutoConnectionConfig\x12\x1D\x0A\x10consumer_project\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x1D\x0A\x10consumer_network\x18\x02 \x01(\x09B\x03\xE0A\x01\x12!\x0A\x0Aip_address\x18\x03 \x01(\x09B\x08\xE2\x8C\xCF\xD7\x08\x02\x08\x04H\x00\x88\x01\x01\x12\x13\x0A\x06status\x18\x04 \x01(\x09H\x01\x88\x01\x01\x12\$\x0A\x17consumer_network_status\x18\x05 \x01(\x09H\x02\x88\x01\x01B\x0D\x0A\x0B_ip_addressB\x09\x0A\x07_statusB\x1A\x0A\x18_consumer_network_status\"l\x0A\x12LocationPreference\x12\"\x0A\x16follow_gae_application\x18\x01 \x01(\x09B\x02\x18\x01\x12\x0C\x0A\x04zone\x18\x02 \x01(\x09\x12\x16\x0A\x0Esecondary_zone\x18\x04 \x01(\x09\x12\x0C\x0A\x04kind\x18\x03 \x01(\x09\"\xB1\x01\x0A\x11MaintenanceWindow\x12)\x0A\x04hour\x18\x01 \x01(\x0B2\x1B.google.protobuf.Int32Value\x12(\x0A\x03day\x18\x02 \x01(\x0B2\x1B.google.protobuf.Int32Value\x129\x0A\x0Cupdate_track\x18\x03 \x01(\x0E2#.google.cloud.sql.v1.SqlUpdateTrack\x12\x0C\x0A\x04kind\x18\x04 \x01(\x09\"K\x0A\x15DenyMaintenancePeriod\x12\x12\x0A\x0Astart_date\x18\x01 \x01(\x09\x12\x10\x0A\x08end_date\x18\x02 \x01(\x09\x12\x0C\x0A\x04time\x18\x03 \x01(\x09\"\xB1\x02\x0A\x0EInsightsConfig\x12\x1E\x0A\x16query_insights_enabled\x18\x01 \x01(\x08\x12\x1D\x0A\x15record_client_address\x18\x02 \x01(\x08\x12\x1F\x0A\x17record_application_tags\x18\x03 \x01(\x08\x128\x0A\x13query_string_length\x18\x04 \x01(\x0B2\x1B.google.protobuf.Int32Value\x12;\x0A\x16query_plans_per_minute\x18\x05 \x01(\x0B2\x1B.google.protobuf.Int32Value\x12H\x0A\x1Fenhanced_query_insights_enabled\x18\x08 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\"\xFB\x02\x0A\x19MySqlReplicaConfiguration\x12\x16\x0A\x0Edump_file_path\x18\x01 \x01(\x09\x12\x10\x0A\x08username\x18\x02 \x01(\x09\x12\x10\x0A\x08password\x18\x03 \x01(\x09\x12;\x0A\x16connect_retry_interval\x18\x04 \x01(\x0B2\x1B.google.protobuf.Int32Value\x12<\x0A\x17master_heartbeat_period\x18\x05 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12\x16\x0A\x0Eca_certificate\x18\x06 \x01(\x09\x12\x1A\x0A\x12client_certificate\x18\x07 \x01(\x09\x12\x12\x0A\x0Aclient_key\x18\x08 \x01(\x09\x12\x12\x0A\x0Assl_cipher\x18\x09 \x01(\x09\x12=\x0A\x19verify_server_certificate\x18\x0A \x01(\x0B2\x1A.google.protobuf.BoolValue\x12\x0C\x0A\x04kind\x18\x0B \x01(\x09\"A\x0A\x1BDiskEncryptionConfiguration\x12\x14\x0A\x0Ckms_key_name\x18\x01 \x01(\x09\x12\x0C\x0A\x04kind\x18\x02 \x01(\x09\"B\x0A\x14DiskEncryptionStatus\x12\x1C\x0A\x14kms_key_version_name\x18\x01 \x01(\x09\x12\x0C\x0A\x04kind\x18\x02 \x01(\x09\"\x88\x01\x0A\x09IpMapping\x123\x0A\x04type\x18\x01 \x01(\x0E2%.google.cloud.sql.v1.SqlIpAddressType\x12\x12\x0A\x0Aip_address\x18\x02 \x01(\x09\x122\x0A\x0Etime_to_retire\x18\x03 \x01(\x0B2\x1A.google.protobuf.Timestamp\"s\x0A\x13SqlSubOperationType\x12C\x0A\x10maintenance_type\x18\x01 \x01(\x0E2'.google.cloud.sql.v1.SqlMaintenanceTypeH\x00B\x17\x0A\x15sub_operation_details\"\xD5\x10\x0A\x09Operation\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x13\x0A\x0Btarget_link\x18\x02 \x01(\x09\x12A\x0A\x06status\x18\x03 \x01(\x0E21.google.cloud.sql.v1.Operation.SqlOperationStatus\x12\x0C\x0A\x04user\x18\x04 \x01(\x09\x12/\x0A\x0Binsert_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12.\x0A\x0Astart_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12,\x0A\x08end_time\x18\x07 \x01(\x0B2\x1A.google.protobuf.Timestamp\x123\x0A\x05error\x18\x08 \x01(\x0B2\$.google.cloud.sql.v1.OperationErrors\x124\x0A\x0Bapi_warning\x18\x13 \x01(\x0B2\x1F.google.cloud.sql.v1.ApiWarning\x12G\x0A\x0Eoperation_type\x18\x09 \x01(\x0E2/.google.cloud.sql.v1.Operation.SqlOperationType\x12:\x0A\x0Eimport_context\x18\x0A \x01(\x0B2\".google.cloud.sql.v1.ImportContext\x12:\x0A\x0Eexport_context\x18\x0B \x01(\x0B2\".google.cloud.sql.v1.ExportContext\x12:\x0A\x0Ebackup_context\x18\x11 \x01(\x0B2\".google.cloud.sql.v1.BackupContext\x12h\x0A'pre_check_major_version_upgrade_context\x182 \x01(\x0B27.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext\x12\x0C\x0A\x04name\x18\x0C \x01(\x09\x12\x11\x0A\x09target_id\x18\x0D \x01(\x09\x12\x11\x0A\x09self_link\x18\x0E \x01(\x09\x12\x16\x0A\x0Etarget_project\x18\x0F \x01(\x09\x12P\x0A\x1Aacquire_ssrs_lease_context\x18\x14 \x01(\x0B2,.google.cloud.sql.v1.AcquireSsrsLeaseContext\x12I\x0A\x12sub_operation_type\x180 \x01(\x0B2(.google.cloud.sql.v1.SqlSubOperationTypeB\x03\xE0A\x01\"\xA9\x08\x0A\x10SqlOperationType\x12\"\x0A\x1ESQL_OPERATION_TYPE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06IMPORT\x10\x01\x12\x0A\x0A\x06EXPORT\x10\x02\x12\x0A\x0A\x06CREATE\x10\x03\x12\x0A\x0A\x06UPDATE\x10\x04\x12\x0A\x0A\x06DELETE\x10\x05\x12\x0B\x0A\x07RESTART\x10\x06\x12\x0E\x0A\x06BACKUP\x10\x07\x1A\x02\x08\x01\x12\x10\x0A\x08SNAPSHOT\x10\x08\x1A\x02\x08\x01\x12\x11\x0A\x0DBACKUP_VOLUME\x10\x09\x12\x11\x0A\x0DDELETE_VOLUME\x10\x0A\x12\x12\x0A\x0ERESTORE_VOLUME\x10\x0B\x12\x0F\x0A\x0BINJECT_USER\x10\x0C\x12\x09\x0A\x05CLONE\x10\x0E\x12\x10\x0A\x0CSTOP_REPLICA\x10\x0F\x12\x11\x0A\x0DSTART_REPLICA\x10\x10\x12\x13\x0A\x0FPROMOTE_REPLICA\x10\x11\x12\x12\x0A\x0ECREATE_REPLICA\x10\x12\x12\x0F\x0A\x0BCREATE_USER\x10\x13\x12\x0F\x0A\x0BDELETE_USER\x10\x14\x12\x0F\x0A\x0BUPDATE_USER\x10\x15\x12\x13\x0A\x0FCREATE_DATABASE\x10\x16\x12\x13\x0A\x0FDELETE_DATABASE\x10\x17\x12\x13\x0A\x0FUPDATE_DATABASE\x10\x18\x12\x0C\x0A\x08FAILOVER\x10\x19\x12\x11\x0A\x0DDELETE_BACKUP\x10\x1A\x12\x14\x0A\x10RECREATE_REPLICA\x10\x1B\x12\x10\x0A\x0CTRUNCATE_LOG\x10\x1C\x12\x11\x0A\x0DDEMOTE_MASTER\x10\x1D\x12\x0F\x0A\x0BMAINTENANCE\x10\x1E\x12\x19\x0A\x11ENABLE_PRIVATE_IP\x10\x1F\x1A\x02\x08\x01\x12\x19\x0A\x11DEFER_MAINTENANCE\x10 \x1A\x02\x08\x01\x12\x14\x0A\x0CCREATE_CLONE\x10!\x1A\x02\x08\x01\x12\x1A\x0A\x16RESCHEDULE_MAINTENANCE\x10\"\x12\x17\x0A\x13START_EXTERNAL_SYNC\x10#\x12\x0F\x0A\x0BLOG_CLEANUP\x10\$\x12\x10\x0A\x0CAUTO_RESTART\x10%\x12\x0D\x0A\x09REENCRYPT\x10&\x12\x0E\x0A\x0ASWITCHOVER\x10'\x12\x11\x0A\x0DUPDATE_BACKUP\x10(\x12\x16\x0A\x12ACQUIRE_SSRS_LEASE\x10*\x12\x16\x0A\x12RELEASE_SSRS_LEASE\x10+\x12\x1B\x0A\x17RECONFIGURE_OLD_PRIMARY\x10,\x12\x1B\x0A\x13CLUSTER_MAINTENANCE\x10-\x1A\x02\x08\x01\x12 \x0A\x18SELF_SERVICE_MAINTENANCE\x10.\x1A\x02\x08\x01\x12\x19\x0A\x15SWITCHOVER_TO_REPLICA\x10/\x12\x19\x0A\x15MAJOR_VERSION_UPGRADE\x100\x12\x17\x0A\x0FADVANCED_BACKUP\x101\x1A\x02\x08\x01\x12\x11\x0A\x0DMANAGE_BACKUP\x102\x12\x13\x0A\x0FENHANCED_BACKUP\x103\x12\x14\x0A\x10REPAIR_READ_POOL\x104\x12\x14\x0A\x10CREATE_READ_POOL\x105\"^\x0A\x12SqlOperationStatus\x12\$\x0A SQL_OPERATION_STATUS_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07PENDING\x10\x01\x12\x0B\x0A\x07RUNNING\x10\x02\x12\x08\x0A\x04DONE\x10\x03\"=\x0A\x0EOperationError\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x0C\x0A\x04code\x18\x02 \x01(\x09\x12\x0F\x0A\x07message\x18\x03 \x01(\x09\"T\x0A\x0FOperationErrors\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x123\x0A\x06errors\x18\x02 \x03(\x0B2#.google.cloud.sql.v1.OperationError\"\x94\x04\x0A\x18PasswordValidationPolicy\x12/\x0A\x0Amin_length\x18\x01 \x01(\x0B2\x1B.google.protobuf.Int32Value\x12L\x0A\x0Acomplexity\x18\x02 \x01(\x0E28.google.cloud.sql.v1.PasswordValidationPolicy.Complexity\x123\x0A\x0Ereuse_interval\x18\x03 \x01(\x0B2\x1B.google.protobuf.Int32Value\x12?\x0A\x1Bdisallow_username_substring\x18\x04 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12;\x0A\x18password_change_interval\x18\x05 \x01(\x0B2\x19.google.protobuf.Duration\x12:\x0A\x16enable_password_policy\x18\x06 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12H\x0A disallow_compromised_credentials\x18\x07 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x02\x18\x01\"@\x0A\x0AComplexity\x12\x1A\x0A\x16COMPLEXITY_UNSPECIFIED\x10\x00\x12\x16\x0A\x12COMPLEXITY_DEFAULT\x10\x01\"-\x0A\x0FDataCacheConfig\x12\x1A\x0A\x12data_cache_enabled\x18\x01 \x01(\x08\"e\x0A\x11FinalBackupConfig\x12\x14\x0A\x07enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1B\x0A\x0Eretention_days\x18\x03 \x01(\x05H\x01\x88\x01\x01B\x0A\x0A\x08_enabledB\x11\x0A\x0F_retention_days\"\x9D\x1B\x0A\x08Settings\x125\x0A\x10settings_version\x18\x01 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12'\x0A\x1Bauthorized_gae_applications\x18\x02 \x03(\x09B\x02\x18\x01\x12\x0C\x0A\x04tier\x18\x03 \x01(\x09\x12\x0C\x0A\x04kind\x18\x04 \x01(\x09\x12B\x0A\x0Buser_labels\x18\x05 \x03(\x0B2-.google.cloud.sql.v1.Settings.UserLabelsEntry\x12C\x0A\x11availability_type\x18\x06 \x01(\x0E2(.google.cloud.sql.v1.SqlAvailabilityType\x129\x0A\x0Cpricing_plan\x18\x07 \x01(\x0E2#.google.cloud.sql.v1.SqlPricingPlan\x12E\x0A\x10replication_type\x18\x08 \x01(\x0E2'.google.cloud.sql.v1.SqlReplicationTypeB\x02\x18\x01\x12>\x0A\x19storage_auto_resize_limit\x18\x09 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12L\x0A\x11activation_policy\x18\x0A \x01(\x0E21.google.cloud.sql.v1.Settings.SqlActivationPolicy\x12>\x0A\x10ip_configuration\x18\x0B \x01(\x0B2\$.google.cloud.sql.v1.IpConfiguration\x127\x0A\x13storage_auto_resize\x18\x0C \x01(\x0B2\x1A.google.protobuf.BoolValue\x12D\x0A\x13location_preference\x18\x0D \x01(\x0B2'.google.cloud.sql.v1.LocationPreference\x12:\x0A\x0Edatabase_flags\x18\x0E \x03(\x0B2\".google.cloud.sql.v1.DatabaseFlags\x12<\x0A\x0Edata_disk_type\x18\x0F \x01(\x0E2\$.google.cloud.sql.v1.SqlDataDiskType\x12B\x0A\x12maintenance_window\x18\x10 \x01(\x0B2&.google.cloud.sql.v1.MaintenanceWindow\x12F\x0A\x14backup_configuration\x18\x11 \x01(\x0B2(.google.cloud.sql.v1.BackupConfiguration\x12@\x0A\x1Cdatabase_replication_enabled\x18\x12 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12F\x0A\x1Ecrash_safe_replication_enabled\x18\x13 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x02\x18\x01\x126\x0A\x11data_disk_size_gb\x18\x14 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12N\x0A\x17active_directory_config\x18\x16 \x01(\x0B2-.google.cloud.sql.v1.SqlActiveDirectoryConfig\x12\x11\x0A\x09collation\x18\x17 \x01(\x09\x12L\x0A\x18deny_maintenance_periods\x18\x18 \x03(\x0B2*.google.cloud.sql.v1.DenyMaintenancePeriod\x12<\x0A\x0Finsights_config\x18\x19 \x01(\x0B2#.google.cloud.sql.v1.InsightsConfig\x12Q\x0A\x1Apassword_validation_policy\x18\x1B \x01(\x0B2-.google.cloud.sql.v1.PasswordValidationPolicy\x12J\x0A\x17sql_server_audit_config\x18\x1D \x01(\x0B2).google.cloud.sql.v1.SqlServerAuditConfig\x12;\x0A\x07edition\x18& \x01(\x0E2%.google.cloud.sql.v1.Settings.EditionB\x03\xE0A\x01\x12Q\x0A\x15connector_enforcement\x18 \x01(\x0E22.google.cloud.sql.v1.Settings.ConnectorEnforcement\x12?\x0A\x1Bdeletion_protection_enabled\x18! \x01(\x0B2\x1A.google.protobuf.BoolValue\x12\x11\x0A\x09time_zone\x18\" \x01(\x09\x12O\x0A\x19advanced_machine_features\x18# \x01(\x0B2,.google.cloud.sql.v1.AdvancedMachineFeatures\x12?\x0A\x11data_cache_config\x18% \x01(\x0B2\$.google.cloud.sql.v1.DataCacheConfig\x12E\x0A\x1Breplication_lag_max_seconds\x18' \x01(\x0B2\x1B.google.protobuf.Int32ValueB\x03\xE0A\x01\x12E\x0A\x1Cenable_google_ml_integration\x18( \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x12D\x0A\x1Benable_dataplex_integration\x18) \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x12A\x0A\x18retain_backups_on_delete\x18* \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x12,\x0A\x1Adata_disk_provisioned_iops\x18+ \x01(\x03B\x03\xE0A\x01H\x00\x88\x01\x01\x122\x0A data_disk_provisioned_throughput\x18, \x01(\x03B\x03\xE0A\x01H\x01\x88\x01\x01\x12S\x0A\x16connection_pool_config\x18- \x01(\x0B2).google.cloud.sql.v1.ConnectionPoolConfigB\x03\xE0A\x01H\x02\x88\x01\x01\x12M\x0A\x13final_backup_config\x18/ \x01(\x0B2&.google.cloud.sql.v1.FinalBackupConfigB\x03\xE0A\x01H\x03\x88\x01\x01\x12[\x0A\x1Bread_pool_auto_scale_config\x180 \x01(\x0B2,.google.cloud.sql.v1.ReadPoolAutoScaleConfigB\x03\xE0A\x01H\x04\x88\x01\x01\x12&\x0A\x14auto_upgrade_enabled\x182 \x01(\x08B\x03\xE0A\x01H\x05\x88\x01\x01\x12H\x0A\x0Eentraid_config\x184 \x01(\x0B2+.google.cloud.sql.v1.SqlServerEntraIdConfigB\x03\xE0A\x01\x12I\x0A\x0Fdata_api_access\x185 \x01(\x0E2+.google.cloud.sql.v1.Settings.DataApiAccessH\x06\x88\x01\x01\x12V\x0A\x1Aperformance_capture_config\x186 \x01(\x0B2-.google.cloud.sql.v1.PerformanceCaptureConfigB\x03\xE0A\x01\x1A1\x0A\x0FUserLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"f\x0A\x13SqlActivationPolicy\x12%\x0A!SQL_ACTIVATION_POLICY_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06ALWAYS\x10\x01\x12\x09\x0A\x05NEVER\x10\x02\x12\x11\x0A\x09ON_DEMAND\x10\x03\x1A\x02\x08\x01\"G\x0A\x07Edition\x12\x17\x0A\x13EDITION_UNSPECIFIED\x10\x00\x12\x0E\x0A\x0AENTERPRISE\x10\x02\x12\x13\x0A\x0FENTERPRISE_PLUS\x10\x03\"]\x0A\x14ConnectorEnforcement\x12%\x0A!CONNECTOR_ENFORCEMENT_UNSPECIFIED\x10\x00\x12\x10\x0A\x0CNOT_REQUIRED\x10\x01\x12\x0C\x0A\x08REQUIRED\x10\x02\"[\x0A\x0DDataApiAccess\x12\x1F\x0A\x1BDATA_API_ACCESS_UNSPECIFIED\x10\x00\x12\x15\x0A\x11DISALLOW_DATA_API\x10\x01\x12\x12\x0A\x0EALLOW_DATA_API\x10\x02B\x1D\x0A\x1B_data_disk_provisioned_iopsB#\x0A!_data_disk_provisioned_throughputB\x19\x0A\x17_connection_pool_configB\x16\x0A\x14_final_backup_configB\x1E\x0A\x1C_read_pool_auto_scale_configB\x17\x0A\x15_auto_upgrade_enabledB\x12\x0A\x10_data_api_access\"\xB8\x03\x0A\x18PerformanceCaptureConfig\x12\x19\x0A\x07enabled\x18\x01 \x01(\x08B\x03\xE0A\x01H\x00\x88\x01\x01\x12*\x0A\x18probing_interval_seconds\x18\x02 \x01(\x05B\x03\xE0A\x01H\x01\x88\x01\x01\x12!\x0A\x0Fprobe_threshold\x18\x03 \x01(\x05B\x03\xE0A\x01H\x02\x88\x01\x01\x12+\x0A\x19running_threads_threshold\x18\x04 \x01(\x05B\x03\xE0A\x01H\x03\x88\x01\x01\x121\x0A\x1Fseconds_behind_source_threshold\x18\x05 \x01(\x05B\x03\xE0A\x01H\x04\x88\x01\x01\x120\x0A\x1Etransaction_duration_threshold\x18\x08 \x01(\x05B\x03\xE0A\x01H\x05\x88\x01\x01B\x0A\x0A\x08_enabledB\x1B\x0A\x19_probing_interval_secondsB\x12\x0A\x10_probe_thresholdB\x1C\x0A\x1A_running_threads_thresholdB\"\x0A _seconds_behind_source_thresholdB!\x0A\x1F_transaction_duration_threshold\"<\x0A\x13ConnectionPoolFlags\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x12\x0A\x05value\x18\x02 \x01(\x09B\x03\xE0A\x02\"\xCD\x01\x0A\x14ConnectionPoolConfig\x12'\x0A\x1Aconnection_pooling_enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12<\x0A\x05flags\x18\x08 \x03(\x0B2(.google.cloud.sql.v1.ConnectionPoolFlagsB\x03\xE0A\x01\x12\x1E\x0A\x0Cpooler_count\x18\x09 \x01(\x05B\x03\xE0A\x03H\x01\x88\x01\x01B\x1D\x0A\x1B_connection_pooling_enabledB\x0F\x0A\x0D_pooler_count\"\x91\x04\x0A\x17ReadPoolAutoScaleConfig\x12\x14\x0A\x07enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1B\x0A\x0Emin_node_count\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x1B\x0A\x0Emax_node_count\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12V\x0A\x0Etarget_metrics\x18\x04 \x03(\x0B29.google.cloud.sql.v1.ReadPoolAutoScaleConfig.TargetMetricB\x03\xE0A\x01\x12\x1D\x0A\x10disable_scale_in\x18\x05 \x01(\x08H\x03\x88\x01\x01\x12&\x0A\x19scale_in_cooldown_seconds\x18\x06 \x01(\x05H\x04\x88\x01\x01\x12'\x0A\x1Ascale_out_cooldown_seconds\x18\x07 \x01(\x05H\x05\x88\x01\x01\x1AZ\x0A\x0CTargetMetric\x12\x13\x0A\x06metric\x18\x01 \x01(\x09H\x00\x88\x01\x01\x12\x19\x0A\x0Ctarget_value\x18\x02 \x01(\x02H\x01\x88\x01\x01B\x09\x0A\x07_metricB\x0F\x0A\x0D_target_valueB\x0A\x0A\x08_enabledB\x11\x0A\x0F_min_node_countB\x11\x0A\x0F_max_node_countB\x13\x0A\x11_disable_scale_inB\x1C\x0A\x1A_scale_in_cooldown_secondsB\x1D\x0A\x1B_scale_out_cooldown_seconds\"3\x0A\x17AdvancedMachineFeatures\x12\x18\x0A\x10threads_per_core\x18\x01 \x01(\x05\"\xFB\x01\x0A\x07SslCert\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x1A\x0A\x12cert_serial_number\x18\x02 \x01(\x09\x12\x0C\x0A\x04cert\x18\x03 \x01(\x09\x12/\x0A\x0Bcreate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12\x13\x0A\x0Bcommon_name\x18\x05 \x01(\x09\x123\x0A\x0Fexpiration_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12\x18\x0A\x10sha1_fingerprint\x18\x07 \x01(\x09\x12\x10\x0A\x08instance\x18\x08 \x01(\x09\x12\x11\x0A\x09self_link\x18\x09 \x01(\x09\"Z\x0A\x0DSslCertDetail\x12/\x0A\x09cert_info\x18\x01 \x01(\x0B2\x1C.google.cloud.sql.v1.SslCert\x12\x18\x0A\x10cert_private_key\x18\x02 \x01(\x09\"\xA8\x03\x0A\x18SqlActiveDirectoryConfig\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x0E\x0A\x06domain\x18\x02 \x01(\x09\x12T\x0A\x04mode\x18\x03 \x01(\x0E2A.google.cloud.sql.v1.SqlActiveDirectoryConfig.ActiveDirectoryModeB\x03\xE0A\x01\x12 \x0A\x0Bdns_servers\x18\x04 \x03(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x02\x12)\x0A\x1Cadmin_credential_secret_name\x18\x05 \x01(\x09B\x03\xE0A\x01\x12 \x0A\x13organizational_unit\x18\x06 \x01(\x09B\x03\xE0A\x01\"\xA8\x01\x0A\x13ActiveDirectoryMode\x12%\x0A!ACTIVE_DIRECTORY_MODE_UNSPECIFIED\x10\x00\x12\x1C\x0A\x18MANAGED_ACTIVE_DIRECTORY\x10\x01\x12%\x0A\x1DSELF_MANAGED_ACTIVE_DIRECTORY\x10\x02\x1A\x02\x08\x01\x12%\x0A!CUSTOMER_MANAGED_ACTIVE_DIRECTORY\x10\x03\"\x9F\x01\x0A\x14SqlServerAuditConfig\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x0E\x0A\x06bucket\x18\x02 \x01(\x09\x125\x0A\x12retention_interval\x18\x03 \x01(\x0B2\x19.google.protobuf.Duration\x122\x0A\x0Fupload_interval\x18\x04 \x01(\x0B2\x19.google.protobuf.Duration\"`\x0A\x16SqlServerEntraIdConfig\x12\x11\x0A\x04kind\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x16\x0A\x09tenant_id\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x1B\x0A\x0Eapplication_id\x18\x03 \x01(\x09B\x03\xE0A\x01\"\xE2\x01\x0A\x17AcquireSsrsLeaseContext\x12\x18\x0A\x0Bsetup_login\x18\x01 \x01(\x09H\x00\x88\x01\x01\x12\x1A\x0A\x0Dservice_login\x18\x02 \x01(\x09H\x01\x88\x01\x01\x12\x1C\x0A\x0Freport_database\x18\x03 \x01(\x09H\x02\x88\x01\x01\x120\x0A\x08duration\x18\x04 \x01(\x0B2\x19.google.protobuf.DurationH\x03\x88\x01\x01B\x0E\x0A\x0C_setup_loginB\x10\x0A\x0E_service_loginB\x12\x0A\x10_report_databaseB\x0B\x0A\x09_duration\"\x9F\x04\x0A\x0EDnsNameMapping\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x03\x12P\x0A\x0Fconnection_type\x18\x02 \x01(\x0E22.google.cloud.sql.v1.DnsNameMapping.ConnectionTypeB\x03\xE0A\x03\x12D\x0A\x09dns_scope\x18\x03 \x01(\x0E2,.google.cloud.sql.v1.DnsNameMapping.DnsScopeB\x03\xE0A\x03\x12N\x0A\x0Erecord_manager\x18\x04 \x01(\x0E21.google.cloud.sql.v1.DnsNameMapping.RecordManagerB\x03\xE0A\x03\"w\x0A\x0EConnectionType\x12\x1F\x0A\x1BCONNECTION_TYPE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06PUBLIC\x10\x01\x12\x1B\x0A\x17PRIVATE_SERVICES_ACCESS\x10\x02\x12\x1B\x0A\x17PRIVATE_SERVICE_CONNECT\x10\x03\"@\x0A\x08DnsScope\x12\x19\x0A\x15DNS_SCOPE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08INSTANCE\x10\x01\x12\x0B\x0A\x07CLUSTER\x10\x02\"W\x0A\x0DRecordManager\x12\x1E\x0A\x1ARECORD_MANAGER_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08CUSTOMER\x10\x01\x12\x18\x0A\x14CLOUD_SQL_AUTOMATION\x10\x02*P\x0A\x0BSqlFileType\x12\x1D\x0A\x19SQL_FILE_TYPE_UNSPECIFIED\x10\x00\x12\x07\x0A\x03SQL\x10\x01\x12\x07\x0A\x03CSV\x10\x02\x12\x07\x0A\x03BAK\x10\x04\x12\x07\x0A\x03TDE\x10\x08*A\x0A\x07BakType\x12\x18\x0A\x14BAK_TYPE_UNSPECIFIED\x10\x00\x12\x08\x0A\x04FULL\x10\x01\x12\x08\x0A\x04DIFF\x10\x02\x12\x08\x0A\x04TLOG\x10\x03*\xCC\x01\x0A\x12SqlMaintenanceType\x12\$\x0A SQL_MAINTENANCE_TYPE_UNSPECIFIED\x10\x00\x12\x18\x0A\x14INSTANCE_MAINTENANCE\x10\x01\x12 \x0A\x1CREPLICA_INCLUDED_MAINTENANCE\x10\x02\x12%\x0A!INSTANCE_SELF_SERVICE_MAINTENANCE\x10\x03\x12-\x0A)REPLICA_INCLUDED_SELF_SERVICE_MAINTENANCE\x10\x04*c\x0A\x0ESqlBackendType\x12 \x0A\x1CSQL_BACKEND_TYPE_UNSPECIFIED\x10\x00\x12\x11\x0A\x09FIRST_GEN\x10\x01\x1A\x02\x08\x01\x12\x0E\x0A\x0ASECOND_GEN\x10\x02\x12\x0C\x0A\x08EXTERNAL\x10\x03*u\x0A\x10SqlIpAddressType\x12#\x0A\x1FSQL_IP_ADDRESS_TYPE_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07PRIMARY\x10\x01\x12\x0C\x0A\x08OUTGOING\x10\x02\x12\x0B\x0A\x07PRIVATE\x10\x03\x12\x14\x0A\x10MIGRATED_1ST_GEN\x10\x04*\xC0\x08\x0A\x12SqlDatabaseVersion\x12\$\x0A SQL_DATABASE_VERSION_UNSPECIFIED\x10\x00\x12\x11\x0A\x09MYSQL_5_1\x10\x02\x1A\x02\x08\x01\x12\x11\x0A\x09MYSQL_5_5\x10\x03\x1A\x02\x08\x01\x12\x0D\x0A\x09MYSQL_5_6\x10\x05\x12\x0D\x0A\x09MYSQL_5_7\x10\x06\x12\x0D\x0A\x09MYSQL_8_0\x10\x14\x12\x10\x0A\x0CMYSQL_8_0_18\x10)\x12\x10\x0A\x0CMYSQL_8_0_26\x10U\x12\x10\x0A\x0CMYSQL_8_0_27\x10o\x12\x11\x0A\x0CMYSQL_8_0_28\x10\x84\x01\x12\x15\x0A\x0CMYSQL_8_0_29\x10\x94\x01\x1A\x02\x08\x01\x12\x11\x0A\x0CMYSQL_8_0_30\x10\xAE\x01\x12\x11\x0A\x0CMYSQL_8_0_31\x10\xC5\x01\x12\x11\x0A\x0CMYSQL_8_0_32\x10\xD5\x01\x12\x11\x0A\x0CMYSQL_8_0_33\x10\xEE\x01\x12\x11\x0A\x0CMYSQL_8_0_34\x10\xEF\x01\x12\x11\x0A\x0CMYSQL_8_0_35\x10\xF0\x01\x12\x11\x0A\x0CMYSQL_8_0_36\x10\xF1\x01\x12\x11\x0A\x0CMYSQL_8_0_37\x10\xE3\x02\x12\x11\x0A\x0CMYSQL_8_0_39\x10\xE5\x02\x12\x11\x0A\x0CMYSQL_8_0_40\x10\xE6\x02\x12\x11\x0A\x0CMYSQL_8_0_41\x10\xE8\x03\x12\x11\x0A\x0CMYSQL_8_0_42\x10\xE9\x03\x12\x11\x0A\x0CMYSQL_8_0_43\x10\xA9\x04\x12\x11\x0A\x0CMYSQL_8_0_44\x10\xAA\x04\x12\x11\x0A\x0CMYSQL_8_0_45\x10\xAB\x04\x12\x11\x0A\x0CMYSQL_8_0_46\x10\xAC\x04\x12\x0E\x0A\x09MYSQL_8_4\x10\x8E\x03\x12\x0E\x0A\x09MYSQL_9_7\x10\x8E\x05\x12\x1B\x0A\x17SQLSERVER_2017_STANDARD\x10\x0B\x12\x1D\x0A\x19SQLSERVER_2017_ENTERPRISE\x10\x0E\x12\x1A\x0A\x16SQLSERVER_2017_EXPRESS\x10\x0F\x12\x16\x0A\x12SQLSERVER_2017_WEB\x10\x10\x12\x10\x0A\x0CPOSTGRES_9_6\x10\x09\x12\x0F\x0A\x0BPOSTGRES_10\x10\x12\x12\x0F\x0A\x0BPOSTGRES_11\x10\x0A\x12\x0F\x0A\x0BPOSTGRES_12\x10\x13\x12\x0F\x0A\x0BPOSTGRES_13\x10\x17\x12\x0F\x0A\x0BPOSTGRES_14\x10n\x12\x10\x0A\x0BPOSTGRES_15\x10\xAC\x01\x12\x10\x0A\x0BPOSTGRES_16\x10\x90\x02\x12\x10\x0A\x0BPOSTGRES_17\x10\x98\x03\x12\x10\x0A\x0BPOSTGRES_18\x10\xAD\x04\x12\x1B\x0A\x17SQLSERVER_2019_STANDARD\x10\x1A\x12\x1D\x0A\x19SQLSERVER_2019_ENTERPRISE\x10\x1B\x12\x1A\x0A\x16SQLSERVER_2019_EXPRESS\x10\x1C\x12\x16\x0A\x12SQLSERVER_2019_WEB\x10\x1D\x12\x1C\x0A\x17SQLSERVER_2022_STANDARD\x10\xC7\x01\x12\x1E\x0A\x19SQLSERVER_2022_ENTERPRISE\x10\xC8\x01\x12\x1B\x0A\x16SQLSERVER_2022_EXPRESS\x10\xC9\x01\x12\x17\x0A\x12SQLSERVER_2022_WEB\x10\xCA\x01*L\x0A\x0ESqlPricingPlan\x12 \x0A\x1CSQL_PRICING_PLAN_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07PACKAGE\x10\x01\x12\x0B\x0A\x07PER_USE\x10\x02*]\x0A\x12SqlReplicationType\x12\$\x0A SQL_REPLICATION_TYPE_UNSPECIFIED\x10\x00\x12\x0F\x0A\x0BSYNCHRONOUS\x10\x01\x12\x10\x0A\x0CASYNCHRONOUS\x10\x02*\x81\x01\x0A\x0FSqlDataDiskType\x12\"\x0A\x1ESQL_DATA_DISK_TYPE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06PD_SSD\x10\x01\x12\x0A\x0A\x06PD_HDD\x10\x02\x12\x1A\x0A\x12OBSOLETE_LOCAL_SSD\x10\x03\x1A\x02\x08\x01\x12\x16\x0A\x12HYPERDISK_BALANCED\x10\x04*U\x0A\x13SqlAvailabilityType\x12%\x0A!SQL_AVAILABILITY_TYPE_UNSPECIFIED\x10\x00\x12\x09\x0A\x05ZONAL\x10\x01\x12\x0C\x0A\x08REGIONAL\x10\x02*U\x0A\x0ESqlUpdateTrack\x12 \x0A\x1CSQL_UPDATE_TRACK_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06canary\x10\x01\x12\x0A\x0A\x06stable\x10\x02\x12\x09\x0A\x05week5\x10\x03B^\x0A\x17com.google.cloud.sql.v1B\x16CloudSqlResourcesProtoP\x01Z)cloud.google.com/go/sql/apiv1/sqlpb;sqlpbb\x06proto3" + "\x0A\xA4\xAC\x01\x0A-google/cloud/sql/v1/cloud_sql_resources.proto\x12\x13google.cloud.sql.v1\x1A\x1Bgoogle/api/field_info.proto\x1A\x19google/api/resource.proto\x1A\x1Egoogle/protobuf/duration.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\x1A\x1Egoogle/protobuf/wrappers.proto\"o\x0A\x08AclEntry\x12\x0D\x0A\x05value\x18\x01 \x01(\x09\x123\x0A\x0Fexpiration_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12\x11\x0A\x04name\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x0C\x0A\x04kind\x18\x04 \x01(\x09\"\x9A\x02\x0A\x0AApiWarning\x12?\x0A\x04code\x18\x01 \x01(\x0E21.google.cloud.sql.v1.ApiWarning.SqlApiWarningCode\x12\x0F\x0A\x07message\x18\x02 \x01(\x09\x12\x0E\x0A\x06region\x18\x03 \x01(\x09\"\xA9\x01\x0A\x11SqlApiWarningCode\x12\$\x0A SQL_API_WARNING_CODE_UNSPECIFIED\x10\x00\x12\x16\x0A\x12REGION_UNREACHABLE\x10\x01\x12\x1D\x0A\x19MAX_RESULTS_EXCEEDS_LIMIT\x10\x02\x12\x1B\x0A\x17COMPROMISED_CREDENTIALS\x10\x03\x12\x1A\x0A\x16INTERNAL_STATE_FAILURE\x10\x04\"\xE0\x01\x0A\x17BackupRetentionSettings\x12R\x0A\x0Eretention_unit\x18\x01 \x01(\x0E2:.google.cloud.sql.v1.BackupRetentionSettings.RetentionUnit\x125\x0A\x10retained_backups\x18\x02 \x01(\x0B2\x1B.google.protobuf.Int32Value\":\x0A\x0DRetentionUnit\x12\x1E\x0A\x1ARETENTION_UNIT_UNSPECIFIED\x10\x00\x12\x09\x0A\x05COUNT\x10\x01\"\xD8\x07\x0A\x13BackupConfiguration\x12\x12\x0A\x0Astart_time\x18\x01 \x01(\x09\x12+\x0A\x07enabled\x18\x02 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12\x0C\x0A\x04kind\x18\x03 \x01(\x09\x126\x0A\x12binary_log_enabled\x18\x04 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12E\x0A!replication_log_archiving_enabled\x18\x05 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12\x10\x0A\x08location\x18\x06 \x01(\x09\x12B\x0A\x1Epoint_in_time_recovery_enabled\x18\x07 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12O\x0A\x19backup_retention_settings\x18\x08 \x01(\x0B2,.google.cloud.sql.v1.BackupRetentionSettings\x12C\x0A\x1Etransaction_log_retention_days\x18\x09 \x01(\x0B2\x1B.google.protobuf.Int32Value\x12x\x0A\x1Ftransactional_log_storage_state\x18\x0A \x01(\x0E2E.google.cloud.sql.v1.BackupConfiguration.TransactionalLogStorageStateB\x03\xE0A\x03H\x00\x88\x01\x01\x12R\x0A\x0Bbackup_tier\x18\x0B \x01(\x0E23.google.cloud.sql.v1.BackupConfiguration.BackupTierB\x03\xE0A\x03H\x01\x88\x01\x01\"\xAB\x01\x0A\x1CTransactionalLogStorageState\x12/\x0A+TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED\x10\x00\x12\x08\x0A\x04DISK\x10\x01\x12\x1E\x0A\x1ASWITCHING_TO_CLOUD_STORAGE\x10\x02\x12\x1D\x0A\x19SWITCHED_TO_CLOUD_STORAGE\x10\x03\x12\x11\x0A\x0DCLOUD_STORAGE\x10\x04\"W\x0A\x0ABackupTier\x12\x1B\x0A\x17BACKUP_TIER_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08STANDARD\x10\x01\x12\x10\x0A\x08ADVANCED\x10\x02\x1A\x02\x08\x01\x12\x0C\x0A\x08ENHANCED\x10\x03B\"\x0A _transactional_log_storage_stateB\x0E\x0A\x0C_backup_tier\"2\x0A\x18PerformDiskShrinkContext\x12\x16\x0A\x0Etarget_size_gb\x18\x01 \x01(\x03\"\xFC\x01\x0A\x10PreCheckResponse\x12\x14\x0A\x07message\x18\x02 \x01(\x09H\x00\x88\x01\x01\x12L\x0A\x0Cmessage_type\x18\x03 \x01(\x0E21.google.cloud.sql.v1.PreCheckResponse.MessageTypeH\x01\x88\x01\x01\x12\x18\x0A\x10actions_required\x18\x04 \x03(\x09\"M\x0A\x0BMessageType\x12\x1C\x0A\x18MESSAGE_TYPE_UNSPECIFIED\x10\x00\x12\x08\x0A\x04INFO\x10\x01\x12\x0B\x0A\x07WARNING\x10\x02\x12\x09\x0A\x05ERROR\x10\x03B\x0A\x0A\x08_messageB\x0F\x0A\x0D_message_type\"\xCE\x01\x0A\"PreCheckMajorVersionUpgradeContext\x12M\x0A\x17target_database_version\x18\x01 \x01(\x0E2'.google.cloud.sql.v1.SqlDatabaseVersionB\x03\xE0A\x02\x12F\x0A\x12pre_check_response\x18\x02 \x03(\x0B2%.google.cloud.sql.v1.PreCheckResponseB\x03\xE0A\x03\x12\x11\x0A\x04kind\x18\x03 \x01(\x09B\x03\xE0A\x01\">\x0A\x0DBackupContext\x12\x11\x0A\x09backup_id\x18\x01 \x01(\x03\x12\x0C\x0A\x04kind\x18\x02 \x01(\x09\x12\x0C\x0A\x04name\x18\x03 \x01(\x09\"\xF7\x01\x0A\x08Database\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x0F\x0A\x07charset\x18\x02 \x01(\x09\x12\x11\x0A\x09collation\x18\x03 \x01(\x09\x12\x0C\x0A\x04etag\x18\x04 \x01(\x09\x12\x0C\x0A\x04name\x18\x05 \x01(\x09\x12\x10\x0A\x08instance\x18\x06 \x01(\x09\x12\x11\x0A\x09self_link\x18\x07 \x01(\x09\x12\x0F\x0A\x07project\x18\x08 \x01(\x09\x12S\x0A\x1Asqlserver_database_details\x18\x09 \x01(\x0B2-.google.cloud.sql.v1.SqlServerDatabaseDetailsH\x00B\x12\x0A\x10database_details\"O\x0A\x18SqlServerDatabaseDetails\x12\x1B\x0A\x13compatibility_level\x18\x01 \x01(\x05\x12\x16\x0A\x0Erecovery_model\x18\x02 \x01(\x09\",\x0A\x0DDatabaseFlags\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09\"M\x0A\x0FMySqlSyncConfig\x12:\x0A\x12initial_sync_flags\x18\x01 \x03(\x0B2\x1E.google.cloud.sql.v1.SyncFlags\"(\x0A\x09SyncFlags\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09\"B\x0A\x11InstanceReference\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12\x0E\x0A\x06region\x18\x02 \x01(\x09\x12\x0F\x0A\x07project\x18\x03 \x01(\x09\"\x8A\x01\x0A\x19DemoteMasterConfiguration\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12_\x0A\x1Bmysql_replica_configuration\x18\x02 \x01(\x0B2:.google.cloud.sql.v1.DemoteMasterMySqlReplicaConfiguration\"\xA1\x01\x0A%DemoteMasterMySqlReplicaConfiguration\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x10\x0A\x08username\x18\x02 \x01(\x09\x12\x10\x0A\x08password\x18\x03 \x01(\x09\x12\x12\x0A\x0Aclient_key\x18\x04 \x01(\x09\x12\x1A\x0A\x12client_certificate\x18\x05 \x01(\x09\x12\x16\x0A\x0Eca_certificate\x18\x06 \x01(\x09\"\x81\x0E\x0A\x0DExportContext\x12\x0B\x0A\x03uri\x18\x01 \x01(\x09\x12\x11\x0A\x09databases\x18\x02 \x03(\x09\x12\x0C\x0A\x04kind\x18\x03 \x01(\x09\x12O\x0A\x12sql_export_options\x18\x04 \x01(\x0B23.google.cloud.sql.v1.ExportContext.SqlExportOptions\x12R\x0A\x12csv_export_options\x18\x05 \x01(\x0B26.google.cloud.sql.v1.ExportContext.SqlCsvExportOptions\x123\x0A\x09file_type\x18\x06 \x01(\x0E2 .google.cloud.sql.v1.SqlFileType\x12+\x0A\x07offload\x18\x08 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12R\x0A\x12bak_export_options\x18\x09 \x01(\x0B26.google.cloud.sql.v1.ExportContext.SqlBakExportOptions\x12W\x0A\x12tde_export_options\x18\x0A \x01(\x0B26.google.cloud.sql.v1.ExportContext.SqlTdeExportOptionsB\x03\xE0A\x01\x1A\x99\x01\x0A\x13SqlCsvExportOptions\x12\x14\x0A\x0Cselect_query\x18\x01 \x01(\x09\x12\x18\x0A\x10escape_character\x18\x02 \x01(\x09\x12\x17\x0A\x0Fquote_character\x18\x03 \x01(\x09\x12\x1C\x0A\x14fields_terminated_by\x18\x04 \x01(\x09\x12\x1B\x0A\x13lines_terminated_by\x18\x06 \x01(\x09\x1A\xD5\x04\x0A\x10SqlExportOptions\x12\x0E\x0A\x06tables\x18\x01 \x03(\x09\x12/\x0A\x0Bschema_only\x18\x02 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12d\x0A\x14mysql_export_options\x18\x03 \x01(\x0B2F.google.cloud.sql.v1.ExportContext.SqlExportOptions.MysqlExportOptions\x121\x0A\x07threads\x18\x04 \x01(\x0B2\x1B.google.protobuf.Int32ValueB\x03\xE0A\x01\x121\x0A\x08parallel\x18\x05 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x12o\x0A\x17postgres_export_options\x18\x06 \x01(\x0B2I.google.cloud.sql.v1.ExportContext.SqlExportOptions.PostgresExportOptionsB\x03\xE0A\x01\x1AF\x0A\x12MysqlExportOptions\x120\x0A\x0Bmaster_data\x18\x01 \x01(\x0B2\x1B.google.protobuf.Int32Value\x1A{\x0A\x15PostgresExportOptions\x12.\x0A\x05clean\x18\x01 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x122\x0A\x09if_exists\x18\x02 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x1A\x8D\x03\x0A\x13SqlBakExportOptions\x12+\x0A\x07striped\x18\x01 \x01(\x0B2\x1A.google.protobuf.BoolValue\x121\x0A\x0Cstripe_count\x18\x02 \x01(\x0B2\x1B.google.protobuf.Int32Value\x12.\x0A\x08bak_type\x18\x04 \x01(\x0E2\x1C.google.cloud.sql.v1.BakType\x121\x0A\x09copy_only\x18\x05 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x02\x18\x01\x125\x0A\x11differential_base\x18\x06 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12>\x0A\x15export_log_start_time\x18\x07 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\x12<\x0A\x13export_log_end_time\x18\x08 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\x1A\x89\x01\x0A\x13SqlTdeExportOptions\x12\x1D\x0A\x10certificate_path\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x1D\x0A\x10private_key_path\x18\x02 \x01(\x09B\x03\xE0A\x02\x12!\x0A\x14private_key_password\x18\x03 \x01(\x09B\x03\xE0A\x02\x12\x11\x0A\x04name\x18\x05 \x01(\x09B\x03\xE0A\x02\"\x8E\x0D\x0A\x0DImportContext\x12\x0B\x0A\x03uri\x18\x01 \x01(\x09\x12\x10\x0A\x08database\x18\x02 \x01(\x09\x12\x0C\x0A\x04kind\x18\x03 \x01(\x09\x123\x0A\x09file_type\x18\x04 \x01(\x0E2 .google.cloud.sql.v1.SqlFileType\x12R\x0A\x12csv_import_options\x18\x05 \x01(\x0B26.google.cloud.sql.v1.ImportContext.SqlCsvImportOptions\x12\x13\x0A\x0Bimport_user\x18\x06 \x01(\x09\x12R\x0A\x12bak_import_options\x18\x07 \x01(\x0B26.google.cloud.sql.v1.ImportContext.SqlBakImportOptions\x12T\x0A\x12sql_import_options\x18\x08 \x01(\x0B23.google.cloud.sql.v1.ImportContext.SqlImportOptionsB\x03\xE0A\x01\x12W\x0A\x12tde_import_options\x18\x09 \x01(\x0B26.google.cloud.sql.v1.ImportContext.SqlTdeImportOptionsB\x03\xE0A\x01\x1A\xE6\x02\x0A\x10SqlImportOptions\x121\x0A\x07threads\x18\x01 \x01(\x0B2\x1B.google.protobuf.Int32ValueB\x03\xE0A\x01\x121\x0A\x08parallel\x18\x02 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x12o\x0A\x17postgres_import_options\x18\x03 \x01(\x0B2I.google.cloud.sql.v1.ImportContext.SqlImportOptions.PostgresImportOptionsB\x03\xE0A\x01\x1A{\x0A\x15PostgresImportOptions\x12.\x0A\x05clean\x18\x01 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x122\x0A\x09if_exists\x18\x02 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x1A\xA3\x01\x0A\x13SqlCsvImportOptions\x12\x0D\x0A\x05table\x18\x01 \x01(\x09\x12\x0F\x0A\x07columns\x18\x02 \x03(\x09\x12\x18\x0A\x10escape_character\x18\x04 \x01(\x09\x12\x17\x0A\x0Fquote_character\x18\x05 \x01(\x09\x12\x1C\x0A\x14fields_terminated_by\x18\x06 \x01(\x09\x12\x1B\x0A\x13lines_terminated_by\x18\x08 \x01(\x09\x1A\x93\x04\x0A\x13SqlBakImportOptions\x12d\x0A\x12encryption_options\x18\x01 \x01(\x0B2H.google.cloud.sql.v1.ImportContext.SqlBakImportOptions.EncryptionOptions\x12+\x0A\x07striped\x18\x02 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12/\x0A\x0Bno_recovery\x18\x04 \x01(\x0B2\x1A.google.protobuf.BoolValue\x121\x0A\x0Drecovery_only\x18\x05 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12.\x0A\x08bak_type\x18\x06 \x01(\x0E2\x1C.google.cloud.sql.v1.BakType\x120\x0A\x07stop_at\x18\x07 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\x12\x19\x0A\x0Cstop_at_mark\x18\x08 \x01(\x09B\x03\xE0A\x01\x1A\x87\x01\x0A\x11EncryptionOptions\x12\x11\x0A\x09cert_path\x18\x01 \x01(\x09\x12\x10\x0A\x08pvk_path\x18\x02 \x01(\x09\x12\x14\x0A\x0Cpvk_password\x18\x03 \x01(\x09\x127\x0A\x0Ekeep_encrypted\x18\x05 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x1A\x89\x01\x0A\x13SqlTdeImportOptions\x12\x1D\x0A\x10certificate_path\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x1D\x0A\x10private_key_path\x18\x02 \x01(\x09B\x03\xE0A\x02\x12!\x0A\x14private_key_password\x18\x03 \x01(\x09B\x03\xE0A\x02\x12\x11\x0A\x04name\x18\x05 \x01(\x09B\x03\xE0A\x02\"\xBB\x09\x0A\x0FIpConfiguration\x120\x0A\x0Cipv4_enabled\x18\x01 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12\x17\x0A\x0Fprivate_network\x18\x02 \x01(\x09\x12/\x0A\x0Brequire_ssl\x18\x03 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12:\x0A\x13authorized_networks\x18\x04 \x03(\x0B2\x1D.google.cloud.sql.v1.AclEntry\x12\x1A\x0A\x12allocated_ip_range\x18\x06 \x01(\x09\x12Q\x0A-enable_private_path_for_google_cloud_services\x18\x07 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12>\x0A\x08ssl_mode\x18\x08 \x01(\x0E2,.google.cloud.sql.v1.IpConfiguration.SslMode\x127\x0A\x0Apsc_config\x18\x09 \x01(\x0B2\x1E.google.cloud.sql.v1.PscConfigH\x00\x88\x01\x01\x12H\x0A\x0Eserver_ca_mode\x18\x0A \x01(\x0E2+.google.cloud.sql.v1.IpConfiguration.CaModeH\x01\x88\x01\x01\x12-\x0A custom_subject_alternative_names\x18\x0B \x03(\x09B\x03\xE0A\x01\x12 \x0A\x0Eserver_ca_pool\x18\x0C \x01(\x09B\x03\xE0A\x01H\x02\x88\x01\x01\x12v\x0A server_certificate_rotation_mode\x18\x10 \x01(\x0E2B.google.cloud.sql.v1.IpConfiguration.ServerCertificateRotationModeB\x03\xE0A\x01H\x03\x88\x01\x01\"\x85\x01\x0A\x07SslMode\x12\x18\x0A\x14SSL_MODE_UNSPECIFIED\x10\x00\x12#\x0A\x1FALLOW_UNENCRYPTED_AND_ENCRYPTED\x10\x01\x12\x12\x0A\x0EENCRYPTED_ONLY\x10\x02\x12'\x0A#TRUSTED_CLIENT_CERTIFICATE_REQUIRED\x10\x03\"y\x0A\x06CaMode\x12\x17\x0A\x13CA_MODE_UNSPECIFIED\x10\x00\x12\x1E\x0A\x1AGOOGLE_MANAGED_INTERNAL_CA\x10\x01\x12\x19\x0A\x15GOOGLE_MANAGED_CAS_CA\x10\x02\x12\x1B\x0A\x17CUSTOMER_MANAGED_CAS_CA\x10\x03\"\x97\x01\x0A\x1DServerCertificateRotationMode\x120\x0A,SERVER_CERTIFICATE_ROTATION_MODE_UNSPECIFIED\x10\x00\x12\x19\x0A\x15NO_AUTOMATIC_ROTATION\x10\x01\x12)\x0A%AUTOMATIC_ROTATION_DURING_MAINTENANCE\x10\x02B\x0D\x0A\x0B_psc_configB\x11\x0A\x0F_server_ca_modeB\x11\x0A\x0F_server_ca_poolB#\x0A!_server_certificate_rotation_mode\"\xE9\x02\x0A\x09PscConfig\x12\x18\x0A\x0Bpsc_enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12&\x0A\x19allowed_consumer_projects\x18\x02 \x03(\x09B\x03\xE0A\x01\x12O\x0A\x14psc_auto_connections\x18\x03 \x03(\x0B2,.google.cloud.sql.v1.PscAutoConnectionConfigB\x03\xE0A\x01\x12#\x0A\x16network_attachment_uri\x18\x04 \x01(\x09B\x03\xE0A\x01\x12&\x0A\x14psc_auto_dns_enabled\x18\x05 \x01(\x08B\x03\xE0A\x01H\x01\x88\x01\x01\x120\x0A\x1Epsc_write_endpoint_dns_enabled\x18\x06 \x01(\x08B\x03\xE0A\x01H\x02\x88\x01\x01B\x0E\x0A\x0C_psc_enabledB\x17\x0A\x15_psc_auto_dns_enabledB!\x0A\x1F_psc_write_endpoint_dns_enabled\"\xEB\x01\x0A\x17PscAutoConnectionConfig\x12\x1D\x0A\x10consumer_project\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x1D\x0A\x10consumer_network\x18\x02 \x01(\x09B\x03\xE0A\x01\x12!\x0A\x0Aip_address\x18\x03 \x01(\x09B\x08\xE2\x8C\xCF\xD7\x08\x02\x08\x04H\x00\x88\x01\x01\x12\x13\x0A\x06status\x18\x04 \x01(\x09H\x01\x88\x01\x01\x12\$\x0A\x17consumer_network_status\x18\x05 \x01(\x09H\x02\x88\x01\x01B\x0D\x0A\x0B_ip_addressB\x09\x0A\x07_statusB\x1A\x0A\x18_consumer_network_status\"l\x0A\x12LocationPreference\x12\"\x0A\x16follow_gae_application\x18\x01 \x01(\x09B\x02\x18\x01\x12\x0C\x0A\x04zone\x18\x02 \x01(\x09\x12\x16\x0A\x0Esecondary_zone\x18\x04 \x01(\x09\x12\x0C\x0A\x04kind\x18\x03 \x01(\x09\"\xB1\x01\x0A\x11MaintenanceWindow\x12)\x0A\x04hour\x18\x01 \x01(\x0B2\x1B.google.protobuf.Int32Value\x12(\x0A\x03day\x18\x02 \x01(\x0B2\x1B.google.protobuf.Int32Value\x129\x0A\x0Cupdate_track\x18\x03 \x01(\x0E2#.google.cloud.sql.v1.SqlUpdateTrack\x12\x0C\x0A\x04kind\x18\x04 \x01(\x09\"K\x0A\x15DenyMaintenancePeriod\x12\x12\x0A\x0Astart_date\x18\x01 \x01(\x09\x12\x10\x0A\x08end_date\x18\x02 \x01(\x09\x12\x0C\x0A\x04time\x18\x03 \x01(\x09\"\xB1\x02\x0A\x0EInsightsConfig\x12\x1E\x0A\x16query_insights_enabled\x18\x01 \x01(\x08\x12\x1D\x0A\x15record_client_address\x18\x02 \x01(\x08\x12\x1F\x0A\x17record_application_tags\x18\x03 \x01(\x08\x128\x0A\x13query_string_length\x18\x04 \x01(\x0B2\x1B.google.protobuf.Int32Value\x12;\x0A\x16query_plans_per_minute\x18\x05 \x01(\x0B2\x1B.google.protobuf.Int32Value\x12H\x0A\x1Fenhanced_query_insights_enabled\x18\x08 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\"\xFB\x02\x0A\x19MySqlReplicaConfiguration\x12\x16\x0A\x0Edump_file_path\x18\x01 \x01(\x09\x12\x10\x0A\x08username\x18\x02 \x01(\x09\x12\x10\x0A\x08password\x18\x03 \x01(\x09\x12;\x0A\x16connect_retry_interval\x18\x04 \x01(\x0B2\x1B.google.protobuf.Int32Value\x12<\x0A\x17master_heartbeat_period\x18\x05 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12\x16\x0A\x0Eca_certificate\x18\x06 \x01(\x09\x12\x1A\x0A\x12client_certificate\x18\x07 \x01(\x09\x12\x12\x0A\x0Aclient_key\x18\x08 \x01(\x09\x12\x12\x0A\x0Assl_cipher\x18\x09 \x01(\x09\x12=\x0A\x19verify_server_certificate\x18\x0A \x01(\x0B2\x1A.google.protobuf.BoolValue\x12\x0C\x0A\x04kind\x18\x0B \x01(\x09\"A\x0A\x1BDiskEncryptionConfiguration\x12\x14\x0A\x0Ckms_key_name\x18\x01 \x01(\x09\x12\x0C\x0A\x04kind\x18\x02 \x01(\x09\"B\x0A\x14DiskEncryptionStatus\x12\x1C\x0A\x14kms_key_version_name\x18\x01 \x01(\x09\x12\x0C\x0A\x04kind\x18\x02 \x01(\x09\"\x88\x01\x0A\x09IpMapping\x123\x0A\x04type\x18\x01 \x01(\x0E2%.google.cloud.sql.v1.SqlIpAddressType\x12\x12\x0A\x0Aip_address\x18\x02 \x01(\x09\x122\x0A\x0Etime_to_retire\x18\x03 \x01(\x0B2\x1A.google.protobuf.Timestamp\"s\x0A\x13SqlSubOperationType\x12C\x0A\x10maintenance_type\x18\x01 \x01(\x0E2'.google.cloud.sql.v1.SqlMaintenanceTypeH\x00B\x17\x0A\x15sub_operation_details\"\xFA\x10\x0A\x09Operation\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x13\x0A\x0Btarget_link\x18\x02 \x01(\x09\x12A\x0A\x06status\x18\x03 \x01(\x0E21.google.cloud.sql.v1.Operation.SqlOperationStatus\x12\x0C\x0A\x04user\x18\x04 \x01(\x09\x12/\x0A\x0Binsert_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12.\x0A\x0Astart_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12,\x0A\x08end_time\x18\x07 \x01(\x0B2\x1A.google.protobuf.Timestamp\x123\x0A\x05error\x18\x08 \x01(\x0B2\$.google.cloud.sql.v1.OperationErrors\x124\x0A\x0Bapi_warning\x18\x13 \x01(\x0B2\x1F.google.cloud.sql.v1.ApiWarning\x12G\x0A\x0Eoperation_type\x18\x09 \x01(\x0E2/.google.cloud.sql.v1.Operation.SqlOperationType\x12:\x0A\x0Eimport_context\x18\x0A \x01(\x0B2\".google.cloud.sql.v1.ImportContext\x12:\x0A\x0Eexport_context\x18\x0B \x01(\x0B2\".google.cloud.sql.v1.ExportContext\x12:\x0A\x0Ebackup_context\x18\x11 \x01(\x0B2\".google.cloud.sql.v1.BackupContext\x12h\x0A'pre_check_major_version_upgrade_context\x182 \x01(\x0B27.google.cloud.sql.v1.PreCheckMajorVersionUpgradeContext\x12\x0C\x0A\x04name\x18\x0C \x01(\x09\x12\x11\x0A\x09target_id\x18\x0D \x01(\x09\x12\x11\x0A\x09self_link\x18\x0E \x01(\x09\x12\x16\x0A\x0Etarget_project\x18\x0F \x01(\x09\x12P\x0A\x1Aacquire_ssrs_lease_context\x18\x14 \x01(\x0B2,.google.cloud.sql.v1.AcquireSsrsLeaseContext\x12I\x0A\x12sub_operation_type\x180 \x01(\x0B2(.google.cloud.sql.v1.SqlSubOperationTypeB\x03\xE0A\x01\"\xCE\x08\x0A\x10SqlOperationType\x12\"\x0A\x1ESQL_OPERATION_TYPE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06IMPORT\x10\x01\x12\x0A\x0A\x06EXPORT\x10\x02\x12\x0A\x0A\x06CREATE\x10\x03\x12\x0A\x0A\x06UPDATE\x10\x04\x12\x0A\x0A\x06DELETE\x10\x05\x12\x0B\x0A\x07RESTART\x10\x06\x12\x0E\x0A\x06BACKUP\x10\x07\x1A\x02\x08\x01\x12\x10\x0A\x08SNAPSHOT\x10\x08\x1A\x02\x08\x01\x12\x11\x0A\x0DBACKUP_VOLUME\x10\x09\x12\x11\x0A\x0DDELETE_VOLUME\x10\x0A\x12\x12\x0A\x0ERESTORE_VOLUME\x10\x0B\x12\x0F\x0A\x0BINJECT_USER\x10\x0C\x12\x09\x0A\x05CLONE\x10\x0E\x12\x10\x0A\x0CSTOP_REPLICA\x10\x0F\x12\x11\x0A\x0DSTART_REPLICA\x10\x10\x12\x13\x0A\x0FPROMOTE_REPLICA\x10\x11\x12\x12\x0A\x0ECREATE_REPLICA\x10\x12\x12\x0F\x0A\x0BCREATE_USER\x10\x13\x12\x0F\x0A\x0BDELETE_USER\x10\x14\x12\x0F\x0A\x0BUPDATE_USER\x10\x15\x12\x13\x0A\x0FCREATE_DATABASE\x10\x16\x12\x13\x0A\x0FDELETE_DATABASE\x10\x17\x12\x13\x0A\x0FUPDATE_DATABASE\x10\x18\x12\x0C\x0A\x08FAILOVER\x10\x19\x12\x11\x0A\x0DDELETE_BACKUP\x10\x1A\x12\x14\x0A\x10RECREATE_REPLICA\x10\x1B\x12\x10\x0A\x0CTRUNCATE_LOG\x10\x1C\x12\x11\x0A\x0DDEMOTE_MASTER\x10\x1D\x12\x0F\x0A\x0BMAINTENANCE\x10\x1E\x12\x19\x0A\x11ENABLE_PRIVATE_IP\x10\x1F\x1A\x02\x08\x01\x12\x19\x0A\x11DEFER_MAINTENANCE\x10 \x1A\x02\x08\x01\x12\x14\x0A\x0CCREATE_CLONE\x10!\x1A\x02\x08\x01\x12\x1A\x0A\x16RESCHEDULE_MAINTENANCE\x10\"\x12\x17\x0A\x13START_EXTERNAL_SYNC\x10#\x12\x0F\x0A\x0BLOG_CLEANUP\x10\$\x12\x10\x0A\x0CAUTO_RESTART\x10%\x12\x0D\x0A\x09REENCRYPT\x10&\x12\x0E\x0A\x0ASWITCHOVER\x10'\x12\x11\x0A\x0DUPDATE_BACKUP\x10(\x12\x16\x0A\x12ACQUIRE_SSRS_LEASE\x10*\x12\x16\x0A\x12RELEASE_SSRS_LEASE\x10+\x12\x1B\x0A\x17RECONFIGURE_OLD_PRIMARY\x10,\x12\x1B\x0A\x13CLUSTER_MAINTENANCE\x10-\x1A\x02\x08\x01\x12 \x0A\x18SELF_SERVICE_MAINTENANCE\x10.\x1A\x02\x08\x01\x12\x19\x0A\x15SWITCHOVER_TO_REPLICA\x10/\x12\x19\x0A\x15MAJOR_VERSION_UPGRADE\x100\x12\x17\x0A\x0FADVANCED_BACKUP\x101\x1A\x02\x08\x01\x12\x11\x0A\x0DMANAGE_BACKUP\x102\x12\x13\x0A\x0FENHANCED_BACKUP\x103\x12\x14\x0A\x10REPAIR_READ_POOL\x104\x12\x14\x0A\x10CREATE_READ_POOL\x105\x12#\x0A\x1FPRE_CHECK_MAJOR_VERSION_UPGRADE\x106\"^\x0A\x12SqlOperationStatus\x12\$\x0A SQL_OPERATION_STATUS_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07PENDING\x10\x01\x12\x0B\x0A\x07RUNNING\x10\x02\x12\x08\x0A\x04DONE\x10\x03\"=\x0A\x0EOperationError\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x0C\x0A\x04code\x18\x02 \x01(\x09\x12\x0F\x0A\x07message\x18\x03 \x01(\x09\"T\x0A\x0FOperationErrors\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x123\x0A\x06errors\x18\x02 \x03(\x0B2#.google.cloud.sql.v1.OperationError\"\x94\x04\x0A\x18PasswordValidationPolicy\x12/\x0A\x0Amin_length\x18\x01 \x01(\x0B2\x1B.google.protobuf.Int32Value\x12L\x0A\x0Acomplexity\x18\x02 \x01(\x0E28.google.cloud.sql.v1.PasswordValidationPolicy.Complexity\x123\x0A\x0Ereuse_interval\x18\x03 \x01(\x0B2\x1B.google.protobuf.Int32Value\x12?\x0A\x1Bdisallow_username_substring\x18\x04 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12;\x0A\x18password_change_interval\x18\x05 \x01(\x0B2\x19.google.protobuf.Duration\x12:\x0A\x16enable_password_policy\x18\x06 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12H\x0A disallow_compromised_credentials\x18\x07 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x02\x18\x01\"@\x0A\x0AComplexity\x12\x1A\x0A\x16COMPLEXITY_UNSPECIFIED\x10\x00\x12\x16\x0A\x12COMPLEXITY_DEFAULT\x10\x01\"-\x0A\x0FDataCacheConfig\x12\x1A\x0A\x12data_cache_enabled\x18\x01 \x01(\x08\"e\x0A\x11FinalBackupConfig\x12\x14\x0A\x07enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1B\x0A\x0Eretention_days\x18\x03 \x01(\x05H\x01\x88\x01\x01B\x0A\x0A\x08_enabledB\x11\x0A\x0F_retention_days\"\xE0\x1B\x0A\x08Settings\x125\x0A\x10settings_version\x18\x01 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12'\x0A\x1Bauthorized_gae_applications\x18\x02 \x03(\x09B\x02\x18\x01\x12\x0C\x0A\x04tier\x18\x03 \x01(\x09\x12\x0C\x0A\x04kind\x18\x04 \x01(\x09\x12B\x0A\x0Buser_labels\x18\x05 \x03(\x0B2-.google.cloud.sql.v1.Settings.UserLabelsEntry\x12C\x0A\x11availability_type\x18\x06 \x01(\x0E2(.google.cloud.sql.v1.SqlAvailabilityType\x129\x0A\x0Cpricing_plan\x18\x07 \x01(\x0E2#.google.cloud.sql.v1.SqlPricingPlan\x12E\x0A\x10replication_type\x18\x08 \x01(\x0E2'.google.cloud.sql.v1.SqlReplicationTypeB\x02\x18\x01\x12>\x0A\x19storage_auto_resize_limit\x18\x09 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12L\x0A\x11activation_policy\x18\x0A \x01(\x0E21.google.cloud.sql.v1.Settings.SqlActivationPolicy\x12>\x0A\x10ip_configuration\x18\x0B \x01(\x0B2\$.google.cloud.sql.v1.IpConfiguration\x127\x0A\x13storage_auto_resize\x18\x0C \x01(\x0B2\x1A.google.protobuf.BoolValue\x12D\x0A\x13location_preference\x18\x0D \x01(\x0B2'.google.cloud.sql.v1.LocationPreference\x12:\x0A\x0Edatabase_flags\x18\x0E \x03(\x0B2\".google.cloud.sql.v1.DatabaseFlags\x12<\x0A\x0Edata_disk_type\x18\x0F \x01(\x0E2\$.google.cloud.sql.v1.SqlDataDiskType\x12B\x0A\x12maintenance_window\x18\x10 \x01(\x0B2&.google.cloud.sql.v1.MaintenanceWindow\x12F\x0A\x14backup_configuration\x18\x11 \x01(\x0B2(.google.cloud.sql.v1.BackupConfiguration\x12@\x0A\x1Cdatabase_replication_enabled\x18\x12 \x01(\x0B2\x1A.google.protobuf.BoolValue\x12F\x0A\x1Ecrash_safe_replication_enabled\x18\x13 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x02\x18\x01\x126\x0A\x11data_disk_size_gb\x18\x14 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12N\x0A\x17active_directory_config\x18\x16 \x01(\x0B2-.google.cloud.sql.v1.SqlActiveDirectoryConfig\x12\x11\x0A\x09collation\x18\x17 \x01(\x09\x12L\x0A\x18deny_maintenance_periods\x18\x18 \x03(\x0B2*.google.cloud.sql.v1.DenyMaintenancePeriod\x12<\x0A\x0Finsights_config\x18\x19 \x01(\x0B2#.google.cloud.sql.v1.InsightsConfig\x12Q\x0A\x1Apassword_validation_policy\x18\x1B \x01(\x0B2-.google.cloud.sql.v1.PasswordValidationPolicy\x12J\x0A\x17sql_server_audit_config\x18\x1D \x01(\x0B2).google.cloud.sql.v1.SqlServerAuditConfig\x12;\x0A\x07edition\x18& \x01(\x0E2%.google.cloud.sql.v1.Settings.EditionB\x03\xE0A\x01\x12Q\x0A\x15connector_enforcement\x18 \x01(\x0E22.google.cloud.sql.v1.Settings.ConnectorEnforcement\x12?\x0A\x1Bdeletion_protection_enabled\x18! \x01(\x0B2\x1A.google.protobuf.BoolValue\x12\x11\x0A\x09time_zone\x18\" \x01(\x09\x12O\x0A\x19advanced_machine_features\x18# \x01(\x0B2,.google.cloud.sql.v1.AdvancedMachineFeatures\x12?\x0A\x11data_cache_config\x18% \x01(\x0B2\$.google.cloud.sql.v1.DataCacheConfig\x12E\x0A\x1Breplication_lag_max_seconds\x18' \x01(\x0B2\x1B.google.protobuf.Int32ValueB\x03\xE0A\x01\x12E\x0A\x1Cenable_google_ml_integration\x18( \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x12D\x0A\x1Benable_dataplex_integration\x18) \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x12A\x0A\x18retain_backups_on_delete\x18* \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x12,\x0A\x1Adata_disk_provisioned_iops\x18+ \x01(\x03B\x03\xE0A\x01H\x00\x88\x01\x01\x122\x0A data_disk_provisioned_throughput\x18, \x01(\x03B\x03\xE0A\x01H\x01\x88\x01\x01\x12S\x0A\x16connection_pool_config\x18- \x01(\x0B2).google.cloud.sql.v1.ConnectionPoolConfigB\x03\xE0A\x01H\x02\x88\x01\x01\x12M\x0A\x13final_backup_config\x18/ \x01(\x0B2&.google.cloud.sql.v1.FinalBackupConfigB\x03\xE0A\x01H\x03\x88\x01\x01\x12[\x0A\x1Bread_pool_auto_scale_config\x180 \x01(\x0B2,.google.cloud.sql.v1.ReadPoolAutoScaleConfigB\x03\xE0A\x01H\x04\x88\x01\x01\x12A\x0A\x18accelerated_replica_mode\x181 \x01(\x0B2\x1A.google.protobuf.BoolValueB\x03\xE0A\x01\x12&\x0A\x14auto_upgrade_enabled\x182 \x01(\x08B\x03\xE0A\x01H\x05\x88\x01\x01\x12H\x0A\x0Eentraid_config\x184 \x01(\x0B2+.google.cloud.sql.v1.SqlServerEntraIdConfigB\x03\xE0A\x01\x12I\x0A\x0Fdata_api_access\x185 \x01(\x0E2+.google.cloud.sql.v1.Settings.DataApiAccessH\x06\x88\x01\x01\x12V\x0A\x1Aperformance_capture_config\x186 \x01(\x0B2-.google.cloud.sql.v1.PerformanceCaptureConfigB\x03\xE0A\x01\x1A1\x0A\x0FUserLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"f\x0A\x13SqlActivationPolicy\x12%\x0A!SQL_ACTIVATION_POLICY_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06ALWAYS\x10\x01\x12\x09\x0A\x05NEVER\x10\x02\x12\x11\x0A\x09ON_DEMAND\x10\x03\x1A\x02\x08\x01\"G\x0A\x07Edition\x12\x17\x0A\x13EDITION_UNSPECIFIED\x10\x00\x12\x0E\x0A\x0AENTERPRISE\x10\x02\x12\x13\x0A\x0FENTERPRISE_PLUS\x10\x03\"]\x0A\x14ConnectorEnforcement\x12%\x0A!CONNECTOR_ENFORCEMENT_UNSPECIFIED\x10\x00\x12\x10\x0A\x0CNOT_REQUIRED\x10\x01\x12\x0C\x0A\x08REQUIRED\x10\x02\"[\x0A\x0DDataApiAccess\x12\x1F\x0A\x1BDATA_API_ACCESS_UNSPECIFIED\x10\x00\x12\x15\x0A\x11DISALLOW_DATA_API\x10\x01\x12\x12\x0A\x0EALLOW_DATA_API\x10\x02B\x1D\x0A\x1B_data_disk_provisioned_iopsB#\x0A!_data_disk_provisioned_throughputB\x19\x0A\x17_connection_pool_configB\x16\x0A\x14_final_backup_configB\x1E\x0A\x1C_read_pool_auto_scale_configB\x17\x0A\x15_auto_upgrade_enabledB\x12\x0A\x10_data_api_access\"\xB8\x03\x0A\x18PerformanceCaptureConfig\x12\x19\x0A\x07enabled\x18\x01 \x01(\x08B\x03\xE0A\x01H\x00\x88\x01\x01\x12*\x0A\x18probing_interval_seconds\x18\x02 \x01(\x05B\x03\xE0A\x01H\x01\x88\x01\x01\x12!\x0A\x0Fprobe_threshold\x18\x03 \x01(\x05B\x03\xE0A\x01H\x02\x88\x01\x01\x12+\x0A\x19running_threads_threshold\x18\x04 \x01(\x05B\x03\xE0A\x01H\x03\x88\x01\x01\x121\x0A\x1Fseconds_behind_source_threshold\x18\x05 \x01(\x05B\x03\xE0A\x01H\x04\x88\x01\x01\x120\x0A\x1Etransaction_duration_threshold\x18\x08 \x01(\x05B\x03\xE0A\x01H\x05\x88\x01\x01B\x0A\x0A\x08_enabledB\x1B\x0A\x19_probing_interval_secondsB\x12\x0A\x10_probe_thresholdB\x1C\x0A\x1A_running_threads_thresholdB\"\x0A _seconds_behind_source_thresholdB!\x0A\x1F_transaction_duration_threshold\"<\x0A\x13ConnectionPoolFlags\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x12\x0A\x05value\x18\x02 \x01(\x09B\x03\xE0A\x02\"\xCD\x01\x0A\x14ConnectionPoolConfig\x12'\x0A\x1Aconnection_pooling_enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12<\x0A\x05flags\x18\x08 \x03(\x0B2(.google.cloud.sql.v1.ConnectionPoolFlagsB\x03\xE0A\x01\x12\x1E\x0A\x0Cpooler_count\x18\x09 \x01(\x05B\x03\xE0A\x03H\x01\x88\x01\x01B\x1D\x0A\x1B_connection_pooling_enabledB\x0F\x0A\x0D_pooler_count\"\x91\x04\x0A\x17ReadPoolAutoScaleConfig\x12\x14\x0A\x07enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1B\x0A\x0Emin_node_count\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x1B\x0A\x0Emax_node_count\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12V\x0A\x0Etarget_metrics\x18\x04 \x03(\x0B29.google.cloud.sql.v1.ReadPoolAutoScaleConfig.TargetMetricB\x03\xE0A\x01\x12\x1D\x0A\x10disable_scale_in\x18\x05 \x01(\x08H\x03\x88\x01\x01\x12&\x0A\x19scale_in_cooldown_seconds\x18\x06 \x01(\x05H\x04\x88\x01\x01\x12'\x0A\x1Ascale_out_cooldown_seconds\x18\x07 \x01(\x05H\x05\x88\x01\x01\x1AZ\x0A\x0CTargetMetric\x12\x13\x0A\x06metric\x18\x01 \x01(\x09H\x00\x88\x01\x01\x12\x19\x0A\x0Ctarget_value\x18\x02 \x01(\x02H\x01\x88\x01\x01B\x09\x0A\x07_metricB\x0F\x0A\x0D_target_valueB\x0A\x0A\x08_enabledB\x11\x0A\x0F_min_node_countB\x11\x0A\x0F_max_node_countB\x13\x0A\x11_disable_scale_inB\x1C\x0A\x1A_scale_in_cooldown_secondsB\x1D\x0A\x1B_scale_out_cooldown_seconds\"3\x0A\x17AdvancedMachineFeatures\x12\x18\x0A\x10threads_per_core\x18\x01 \x01(\x05\"\xFB\x01\x0A\x07SslCert\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x1A\x0A\x12cert_serial_number\x18\x02 \x01(\x09\x12\x0C\x0A\x04cert\x18\x03 \x01(\x09\x12/\x0A\x0Bcreate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12\x13\x0A\x0Bcommon_name\x18\x05 \x01(\x09\x123\x0A\x0Fexpiration_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12\x18\x0A\x10sha1_fingerprint\x18\x07 \x01(\x09\x12\x10\x0A\x08instance\x18\x08 \x01(\x09\x12\x11\x0A\x09self_link\x18\x09 \x01(\x09\"Z\x0A\x0DSslCertDetail\x12/\x0A\x09cert_info\x18\x01 \x01(\x0B2\x1C.google.cloud.sql.v1.SslCert\x12\x18\x0A\x10cert_private_key\x18\x02 \x01(\x09\"\xA8\x03\x0A\x18SqlActiveDirectoryConfig\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x0E\x0A\x06domain\x18\x02 \x01(\x09\x12T\x0A\x04mode\x18\x03 \x01(\x0E2A.google.cloud.sql.v1.SqlActiveDirectoryConfig.ActiveDirectoryModeB\x03\xE0A\x01\x12 \x0A\x0Bdns_servers\x18\x04 \x03(\x09B\x0B\xE0A\x01\xE2\x8C\xCF\xD7\x08\x02\x08\x02\x12)\x0A\x1Cadmin_credential_secret_name\x18\x05 \x01(\x09B\x03\xE0A\x01\x12 \x0A\x13organizational_unit\x18\x06 \x01(\x09B\x03\xE0A\x01\"\xA8\x01\x0A\x13ActiveDirectoryMode\x12%\x0A!ACTIVE_DIRECTORY_MODE_UNSPECIFIED\x10\x00\x12\x1C\x0A\x18MANAGED_ACTIVE_DIRECTORY\x10\x01\x12%\x0A\x1DSELF_MANAGED_ACTIVE_DIRECTORY\x10\x02\x1A\x02\x08\x01\x12%\x0A!CUSTOMER_MANAGED_ACTIVE_DIRECTORY\x10\x03\"\x9F\x01\x0A\x14SqlServerAuditConfig\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x0E\x0A\x06bucket\x18\x02 \x01(\x09\x125\x0A\x12retention_interval\x18\x03 \x01(\x0B2\x19.google.protobuf.Duration\x122\x0A\x0Fupload_interval\x18\x04 \x01(\x0B2\x19.google.protobuf.Duration\"`\x0A\x16SqlServerEntraIdConfig\x12\x11\x0A\x04kind\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x16\x0A\x09tenant_id\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x1B\x0A\x0Eapplication_id\x18\x03 \x01(\x09B\x03\xE0A\x01\"\xE2\x01\x0A\x17AcquireSsrsLeaseContext\x12\x18\x0A\x0Bsetup_login\x18\x01 \x01(\x09H\x00\x88\x01\x01\x12\x1A\x0A\x0Dservice_login\x18\x02 \x01(\x09H\x01\x88\x01\x01\x12\x1C\x0A\x0Freport_database\x18\x03 \x01(\x09H\x02\x88\x01\x01\x120\x0A\x08duration\x18\x04 \x01(\x0B2\x19.google.protobuf.DurationH\x03\x88\x01\x01B\x0E\x0A\x0C_setup_loginB\x10\x0A\x0E_service_loginB\x12\x0A\x10_report_databaseB\x0B\x0A\x09_duration\"\x9F\x04\x0A\x0EDnsNameMapping\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x03\x12P\x0A\x0Fconnection_type\x18\x02 \x01(\x0E22.google.cloud.sql.v1.DnsNameMapping.ConnectionTypeB\x03\xE0A\x03\x12D\x0A\x09dns_scope\x18\x03 \x01(\x0E2,.google.cloud.sql.v1.DnsNameMapping.DnsScopeB\x03\xE0A\x03\x12N\x0A\x0Erecord_manager\x18\x04 \x01(\x0E21.google.cloud.sql.v1.DnsNameMapping.RecordManagerB\x03\xE0A\x03\"w\x0A\x0EConnectionType\x12\x1F\x0A\x1BCONNECTION_TYPE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06PUBLIC\x10\x01\x12\x1B\x0A\x17PRIVATE_SERVICES_ACCESS\x10\x02\x12\x1B\x0A\x17PRIVATE_SERVICE_CONNECT\x10\x03\"@\x0A\x08DnsScope\x12\x19\x0A\x15DNS_SCOPE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08INSTANCE\x10\x01\x12\x0B\x0A\x07CLUSTER\x10\x02\"W\x0A\x0DRecordManager\x12\x1E\x0A\x1ARECORD_MANAGER_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08CUSTOMER\x10\x01\x12\x18\x0A\x14CLOUD_SQL_AUTOMATION\x10\x02*P\x0A\x0BSqlFileType\x12\x1D\x0A\x19SQL_FILE_TYPE_UNSPECIFIED\x10\x00\x12\x07\x0A\x03SQL\x10\x01\x12\x07\x0A\x03CSV\x10\x02\x12\x07\x0A\x03BAK\x10\x04\x12\x07\x0A\x03TDE\x10\x08*A\x0A\x07BakType\x12\x18\x0A\x14BAK_TYPE_UNSPECIFIED\x10\x00\x12\x08\x0A\x04FULL\x10\x01\x12\x08\x0A\x04DIFF\x10\x02\x12\x08\x0A\x04TLOG\x10\x03*\xCC\x01\x0A\x12SqlMaintenanceType\x12\$\x0A SQL_MAINTENANCE_TYPE_UNSPECIFIED\x10\x00\x12\x18\x0A\x14INSTANCE_MAINTENANCE\x10\x01\x12 \x0A\x1CREPLICA_INCLUDED_MAINTENANCE\x10\x02\x12%\x0A!INSTANCE_SELF_SERVICE_MAINTENANCE\x10\x03\x12-\x0A)REPLICA_INCLUDED_SELF_SERVICE_MAINTENANCE\x10\x04*c\x0A\x0ESqlBackendType\x12 \x0A\x1CSQL_BACKEND_TYPE_UNSPECIFIED\x10\x00\x12\x11\x0A\x09FIRST_GEN\x10\x01\x1A\x02\x08\x01\x12\x0E\x0A\x0ASECOND_GEN\x10\x02\x12\x0C\x0A\x08EXTERNAL\x10\x03*u\x0A\x10SqlIpAddressType\x12#\x0A\x1FSQL_IP_ADDRESS_TYPE_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07PRIMARY\x10\x01\x12\x0C\x0A\x08OUTGOING\x10\x02\x12\x0B\x0A\x07PRIVATE\x10\x03\x12\x14\x0A\x10MIGRATED_1ST_GEN\x10\x04*\xAD\x09\x0A\x12SqlDatabaseVersion\x12\$\x0A SQL_DATABASE_VERSION_UNSPECIFIED\x10\x00\x12\x11\x0A\x09MYSQL_5_1\x10\x02\x1A\x02\x08\x01\x12\x11\x0A\x09MYSQL_5_5\x10\x03\x1A\x02\x08\x01\x12\x0D\x0A\x09MYSQL_5_6\x10\x05\x12\x0D\x0A\x09MYSQL_5_7\x10\x06\x12\x0D\x0A\x09MYSQL_8_0\x10\x14\x12\x10\x0A\x0CMYSQL_8_0_18\x10)\x12\x10\x0A\x0CMYSQL_8_0_26\x10U\x12\x10\x0A\x0CMYSQL_8_0_27\x10o\x12\x11\x0A\x0CMYSQL_8_0_28\x10\x84\x01\x12\x15\x0A\x0CMYSQL_8_0_29\x10\x94\x01\x1A\x02\x08\x01\x12\x11\x0A\x0CMYSQL_8_0_30\x10\xAE\x01\x12\x11\x0A\x0CMYSQL_8_0_31\x10\xC5\x01\x12\x11\x0A\x0CMYSQL_8_0_32\x10\xD5\x01\x12\x11\x0A\x0CMYSQL_8_0_33\x10\xEE\x01\x12\x11\x0A\x0CMYSQL_8_0_34\x10\xEF\x01\x12\x11\x0A\x0CMYSQL_8_0_35\x10\xF0\x01\x12\x11\x0A\x0CMYSQL_8_0_36\x10\xF1\x01\x12\x11\x0A\x0CMYSQL_8_0_37\x10\xE3\x02\x12\x11\x0A\x0CMYSQL_8_0_39\x10\xE5\x02\x12\x11\x0A\x0CMYSQL_8_0_40\x10\xE6\x02\x12\x11\x0A\x0CMYSQL_8_0_41\x10\xE8\x03\x12\x11\x0A\x0CMYSQL_8_0_42\x10\xE9\x03\x12\x11\x0A\x0CMYSQL_8_0_43\x10\xA9\x04\x12\x11\x0A\x0CMYSQL_8_0_44\x10\xAA\x04\x12\x11\x0A\x0CMYSQL_8_0_45\x10\xAB\x04\x12\x11\x0A\x0CMYSQL_8_0_46\x10\xAC\x04\x12\x0E\x0A\x09MYSQL_8_4\x10\x8E\x03\x12\x0E\x0A\x09MYSQL_9_7\x10\x8E\x05\x12\x1B\x0A\x17SQLSERVER_2017_STANDARD\x10\x0B\x12\x1D\x0A\x19SQLSERVER_2017_ENTERPRISE\x10\x0E\x12\x1A\x0A\x16SQLSERVER_2017_EXPRESS\x10\x0F\x12\x16\x0A\x12SQLSERVER_2017_WEB\x10\x10\x12\x10\x0A\x0CPOSTGRES_9_6\x10\x09\x12\x0F\x0A\x0BPOSTGRES_10\x10\x12\x12\x0F\x0A\x0BPOSTGRES_11\x10\x0A\x12\x0F\x0A\x0BPOSTGRES_12\x10\x13\x12\x0F\x0A\x0BPOSTGRES_13\x10\x17\x12\x0F\x0A\x0BPOSTGRES_14\x10n\x12\x10\x0A\x0BPOSTGRES_15\x10\xAC\x01\x12\x10\x0A\x0BPOSTGRES_16\x10\x90\x02\x12\x10\x0A\x0BPOSTGRES_17\x10\x98\x03\x12\x10\x0A\x0BPOSTGRES_18\x10\xAD\x04\x12\x10\x0A\x0BPOSTGRES_19\x10\xAC\x05\x12\x1B\x0A\x17SQLSERVER_2019_STANDARD\x10\x1A\x12\x1D\x0A\x19SQLSERVER_2019_ENTERPRISE\x10\x1B\x12\x1A\x0A\x16SQLSERVER_2019_EXPRESS\x10\x1C\x12\x16\x0A\x12SQLSERVER_2019_WEB\x10\x1D\x12\x1C\x0A\x17SQLSERVER_2022_STANDARD\x10\xC7\x01\x12\x1E\x0A\x19SQLSERVER_2022_ENTERPRISE\x10\xC8\x01\x12\x1B\x0A\x16SQLSERVER_2022_EXPRESS\x10\xC9\x01\x12\x17\x0A\x12SQLSERVER_2022_WEB\x10\xCA\x01\x12\x1C\x0A\x17SQLSERVER_2025_STANDARD\x10\xA5\x04\x12\x1E\x0A\x19SQLSERVER_2025_ENTERPRISE\x10\xA6\x04\x12\x1B\x0A\x16SQLSERVER_2025_EXPRESS\x10\xA7\x04*L\x0A\x0ESqlPricingPlan\x12 \x0A\x1CSQL_PRICING_PLAN_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07PACKAGE\x10\x01\x12\x0B\x0A\x07PER_USE\x10\x02*]\x0A\x12SqlReplicationType\x12\$\x0A SQL_REPLICATION_TYPE_UNSPECIFIED\x10\x00\x12\x0F\x0A\x0BSYNCHRONOUS\x10\x01\x12\x10\x0A\x0CASYNCHRONOUS\x10\x02*\x81\x01\x0A\x0FSqlDataDiskType\x12\"\x0A\x1ESQL_DATA_DISK_TYPE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06PD_SSD\x10\x01\x12\x0A\x0A\x06PD_HDD\x10\x02\x12\x1A\x0A\x12OBSOLETE_LOCAL_SSD\x10\x03\x1A\x02\x08\x01\x12\x16\x0A\x12HYPERDISK_BALANCED\x10\x04*U\x0A\x13SqlAvailabilityType\x12%\x0A!SQL_AVAILABILITY_TYPE_UNSPECIFIED\x10\x00\x12\x09\x0A\x05ZONAL\x10\x01\x12\x0C\x0A\x08REGIONAL\x10\x02*U\x0A\x0ESqlUpdateTrack\x12 \x0A\x1CSQL_UPDATE_TRACK_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06canary\x10\x01\x12\x0A\x0A\x06stable\x10\x02\x12\x09\x0A\x05week5\x10\x03B^\x0A\x17com.google.cloud.sql.v1B\x16CloudSqlResourcesProtoP\x01Z)cloud.google.com/go/sql/apiv1/sqlpb;sqlpbb\x06proto3" , true); static::$is_initialized = true; diff --git a/SqlAdmin/metadata/V1/CloudSqlUsers.php b/SqlAdmin/metadata/V1/CloudSqlUsers.php index 522b9b967e72..9ad7e11265e6 100644 --- a/SqlAdmin/metadata/V1/CloudSqlUsers.php +++ b/SqlAdmin/metadata/V1/CloudSqlUsers.php @@ -17,11 +17,12 @@ public static function initOnce() { \GPBMetadata\Google\Api\Annotations::initOnce(); \GPBMetadata\Google\Api\Client::initOnce(); \GPBMetadata\Google\Api\FieldBehavior::initOnce(); + \GPBMetadata\Google\Api\Resource::initOnce(); \GPBMetadata\Google\Cloud\Sql\V1\CloudSqlResources::initOnce(); \GPBMetadata\Google\Protobuf\Duration::initOnce(); \GPBMetadata\Google\Protobuf\Timestamp::initOnce(); $pool->internalAddGeneratedFile( - "\x0A\xC3\x19\x0A)google/cloud/sql/v1/cloud_sql_users.proto\x12\x13google.cloud.sql.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A-google/cloud/sql/v1/cloud_sql_resources.proto\x1A\x1Egoogle/protobuf/duration.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"V\x0A\x15SqlUsersDeleteRequest\x12\x0C\x0A\x04host\x18\x01 \x01(\x09\x12\x10\x0A\x08instance\x18\x02 \x01(\x09\x12\x0C\x0A\x04name\x18\x03 \x01(\x09\x12\x0F\x0A\x07project\x18\x04 \x01(\x09\"S\x0A\x12SqlUsersGetRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0C\x0A\x04name\x18\x02 \x01(\x09\x12\x0F\x0A\x07project\x18\x03 \x01(\x09\x12\x0C\x0A\x04host\x18\x04 \x01(\x09\"c\x0A\x15SqlUsersInsertRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12'\x0A\x04body\x18d \x01(\x0B2\x19.google.cloud.sql.v1.User\"8\x0A\x13SqlUsersListRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\"\xE4\x01\x0A\x15SqlUsersUpdateRequest\x12\x11\x0A\x04host\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x10\x0A\x08instance\x18\x02 \x01(\x09\x12\x0C\x0A\x04name\x18\x03 \x01(\x09\x12\x0F\x0A\x07project\x18\x04 \x01(\x09\x12\x1B\x0A\x0Edatabase_roles\x18\x05 \x03(\x09B\x03\xE0A\x01\x12'\x0A\x15revoke_existing_roles\x18\x06 \x01(\x08B\x03\xE0A\x01H\x00\x88\x01\x01\x12'\x0A\x04body\x18d \x01(\x0B2\x19.google.cloud.sql.v1.UserB\x18\x0A\x16_revoke_existing_roles\"\x86\x02\x0A\x1CUserPasswordValidationPolicy\x12\x1F\x0A\x17allowed_failed_attempts\x18\x01 \x01(\x05\x12?\x0A\x1Cpassword_expiration_duration\x18\x02 \x01(\x0B2\x19.google.protobuf.Duration\x12\$\x0A\x1Cenable_failed_attempts_check\x18\x03 \x01(\x08\x128\x0A\x06status\x18\x04 \x01(\x0B2#.google.cloud.sql.v1.PasswordStatusB\x03\xE0A\x03\x12\$\x0A\x1Cenable_password_verification\x18\x05 \x01(\x08\"^\x0A\x0EPasswordStatus\x12\x0E\x0A\x06locked\x18\x01 \x01(\x08\x12<\x0A\x18password_expiration_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.Timestamp\"\xB4\x07\x0A\x04User\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x10\x0A\x08password\x18\x02 \x01(\x09\x12\x0C\x0A\x04etag\x18\x03 \x01(\x09\x12\x0C\x0A\x04name\x18\x04 \x01(\x09\x12\x11\x0A\x04host\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x10\x0A\x08instance\x18\x06 \x01(\x09\x12\x0F\x0A\x07project\x18\x07 \x01(\x09\x123\x0A\x04type\x18\x08 \x01(\x0E2%.google.cloud.sql.v1.User.SqlUserType\x12K\x0A\x16sqlserver_user_details\x18\x09 \x01(\x0B2).google.cloud.sql.v1.SqlServerUserDetailsH\x00\x12\x16\x0A\x09iam_email\x18\x0B \x01(\x09B\x03\xE0A\x01\x12J\x0A\x0Fpassword_policy\x18\x0C \x01(\x0B21.google.cloud.sql.v1.UserPasswordValidationPolicy\x12K\x0A\x12dual_password_type\x18\x0D \x01(\x0E2*.google.cloud.sql.v1.User.DualPasswordTypeH\x01\x88\x01\x01\x12<\x0A\x0Aiam_status\x18\x0E \x01(\x0E2#.google.cloud.sql.v1.User.IamStatusH\x02\x88\x01\x01\x12\x1B\x0A\x0Edatabase_roles\x18\x0F \x03(\x09B\x03\xE0A\x01\"\xB4\x01\x0A\x0BSqlUserType\x12\x0C\x0A\x08BUILT_IN\x10\x00\x12\x12\x0A\x0ECLOUD_IAM_USER\x10\x01\x12\x1D\x0A\x19CLOUD_IAM_SERVICE_ACCOUNT\x10\x02\x12\x13\x0A\x0FCLOUD_IAM_GROUP\x10\x03\x12\x18\x0A\x14CLOUD_IAM_GROUP_USER\x10\x04\x12#\x0A\x1FCLOUD_IAM_GROUP_SERVICE_ACCOUNT\x10\x05\x12\x10\x0A\x0CENTRAID_USER\x10\x07\"|\x0A\x10DualPasswordType\x12\"\x0A\x1EDUAL_PASSWORD_TYPE_UNSPECIFIED\x10\x00\x12\x1B\x0A\x17NO_MODIFY_DUAL_PASSWORD\x10\x01\x12\x14\x0A\x10NO_DUAL_PASSWORD\x10\x02\x12\x11\x0A\x0DDUAL_PASSWORD\x10\x03\"A\x0A\x09IamStatus\x12\x1A\x0A\x16IAM_STATUS_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08INACTIVE\x10\x01\x12\x0A\x0A\x06ACTIVE\x10\x02B\x0E\x0A\x0Cuser_detailsB\x15\x0A\x13_dual_password_typeB\x0D\x0A\x0B_iam_status\">\x0A\x14SqlServerUserDetails\x12\x10\x0A\x08disabled\x18\x01 \x01(\x08\x12\x14\x0A\x0Cserver_roles\x18\x02 \x03(\x09\"h\x0A\x11UsersListResponse\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12(\x0A\x05items\x18\x02 \x03(\x0B2\x19.google.cloud.sql.v1.User\x12\x1B\x0A\x0Fnext_page_token\x18\x03 \x01(\x09B\x02\x18\x012\xF5\x06\x0A\x0FSqlUsersService\x12\x8F\x01\x0A\x06Delete\x12*.google.cloud.sql.v1.SqlUsersDeleteRequest\x1A\x1E.google.cloud.sql.v1.Operation\"9\x82\xD3\xE4\x93\x023*1/v1/projects/{project}/instances/{instance}/users\x12\x8B\x01\x0A\x03Get\x12'.google.cloud.sql.v1.SqlUsersGetRequest\x1A\x19.google.cloud.sql.v1.User\"@\x82\xD3\xE4\x93\x02:\x128/v1/projects/{project}/instances/{instance}/users/{name}\x12\x95\x01\x0A\x06Insert\x12*.google.cloud.sql.v1.SqlUsersInsertRequest\x1A\x1E.google.cloud.sql.v1.Operation\"?\x82\xD3\xE4\x93\x029\"1/v1/projects/{project}/instances/{instance}/users:\x04body\x12\x93\x01\x0A\x04List\x12(.google.cloud.sql.v1.SqlUsersListRequest\x1A&.google.cloud.sql.v1.UsersListResponse\"9\x82\xD3\xE4\x93\x023\x121/v1/projects/{project}/instances/{instance}/users\x12\x95\x01\x0A\x06Update\x12*.google.cloud.sql.v1.SqlUsersUpdateRequest\x1A\x1E.google.cloud.sql.v1.Operation\"?\x82\xD3\xE4\x93\x029\x1A1/v1/projects/{project}/instances/{instance}/users:\x04body\x1A|\xCAA\x17sqladmin.googleapis.com\xD2A_https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/sqlservice.adminBZ\x0A\x17com.google.cloud.sql.v1B\x12CloudSqlUsersProtoP\x01Z)cloud.google.com/go/sql/apiv1/sqlpb;sqlpbb\x06proto3" + "\x0A\xDE\x19\x0A)google/cloud/sql/v1/cloud_sql_users.proto\x12\x13google.cloud.sql.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x19google/api/resource.proto\x1A-google/cloud/sql/v1/cloud_sql_resources.proto\x1A\x1Egoogle/protobuf/duration.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"V\x0A\x15SqlUsersDeleteRequest\x12\x0C\x0A\x04host\x18\x01 \x01(\x09\x12\x10\x0A\x08instance\x18\x02 \x01(\x09\x12\x0C\x0A\x04name\x18\x03 \x01(\x09\x12\x0F\x0A\x07project\x18\x04 \x01(\x09\"S\x0A\x12SqlUsersGetRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0C\x0A\x04name\x18\x02 \x01(\x09\x12\x0F\x0A\x07project\x18\x03 \x01(\x09\x12\x0C\x0A\x04host\x18\x04 \x01(\x09\"c\x0A\x15SqlUsersInsertRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\x12'\x0A\x04body\x18d \x01(\x0B2\x19.google.cloud.sql.v1.User\"8\x0A\x13SqlUsersListRequest\x12\x10\x0A\x08instance\x18\x01 \x01(\x09\x12\x0F\x0A\x07project\x18\x02 \x01(\x09\"\xE4\x01\x0A\x15SqlUsersUpdateRequest\x12\x11\x0A\x04host\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x10\x0A\x08instance\x18\x02 \x01(\x09\x12\x0C\x0A\x04name\x18\x03 \x01(\x09\x12\x0F\x0A\x07project\x18\x04 \x01(\x09\x12\x1B\x0A\x0Edatabase_roles\x18\x05 \x03(\x09B\x03\xE0A\x01\x12'\x0A\x15revoke_existing_roles\x18\x06 \x01(\x08B\x03\xE0A\x01H\x00\x88\x01\x01\x12'\x0A\x04body\x18d \x01(\x0B2\x19.google.cloud.sql.v1.UserB\x18\x0A\x16_revoke_existing_roles\"\x86\x02\x0A\x1CUserPasswordValidationPolicy\x12\x1F\x0A\x17allowed_failed_attempts\x18\x01 \x01(\x05\x12?\x0A\x1Cpassword_expiration_duration\x18\x02 \x01(\x0B2\x19.google.protobuf.Duration\x12\$\x0A\x1Cenable_failed_attempts_check\x18\x03 \x01(\x08\x128\x0A\x06status\x18\x04 \x01(\x0B2#.google.cloud.sql.v1.PasswordStatusB\x03\xE0A\x03\x12\$\x0A\x1Cenable_password_verification\x18\x05 \x01(\x08\"^\x0A\x0EPasswordStatus\x12\x0E\x0A\x06locked\x18\x01 \x01(\x08\x12<\x0A\x18password_expiration_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.Timestamp\"\xB4\x07\x0A\x04User\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12\x10\x0A\x08password\x18\x02 \x01(\x09\x12\x0C\x0A\x04etag\x18\x03 \x01(\x09\x12\x0C\x0A\x04name\x18\x04 \x01(\x09\x12\x11\x0A\x04host\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x10\x0A\x08instance\x18\x06 \x01(\x09\x12\x0F\x0A\x07project\x18\x07 \x01(\x09\x123\x0A\x04type\x18\x08 \x01(\x0E2%.google.cloud.sql.v1.User.SqlUserType\x12K\x0A\x16sqlserver_user_details\x18\x09 \x01(\x0B2).google.cloud.sql.v1.SqlServerUserDetailsH\x00\x12\x16\x0A\x09iam_email\x18\x0B \x01(\x09B\x03\xE0A\x01\x12J\x0A\x0Fpassword_policy\x18\x0C \x01(\x0B21.google.cloud.sql.v1.UserPasswordValidationPolicy\x12K\x0A\x12dual_password_type\x18\x0D \x01(\x0E2*.google.cloud.sql.v1.User.DualPasswordTypeH\x01\x88\x01\x01\x12<\x0A\x0Aiam_status\x18\x0E \x01(\x0E2#.google.cloud.sql.v1.User.IamStatusH\x02\x88\x01\x01\x12\x1B\x0A\x0Edatabase_roles\x18\x0F \x03(\x09B\x03\xE0A\x01\"\xB4\x01\x0A\x0BSqlUserType\x12\x0C\x0A\x08BUILT_IN\x10\x00\x12\x12\x0A\x0ECLOUD_IAM_USER\x10\x01\x12\x1D\x0A\x19CLOUD_IAM_SERVICE_ACCOUNT\x10\x02\x12\x13\x0A\x0FCLOUD_IAM_GROUP\x10\x03\x12\x18\x0A\x14CLOUD_IAM_GROUP_USER\x10\x04\x12#\x0A\x1FCLOUD_IAM_GROUP_SERVICE_ACCOUNT\x10\x05\x12\x10\x0A\x0CENTRAID_USER\x10\x07\"|\x0A\x10DualPasswordType\x12\"\x0A\x1EDUAL_PASSWORD_TYPE_UNSPECIFIED\x10\x00\x12\x1B\x0A\x17NO_MODIFY_DUAL_PASSWORD\x10\x01\x12\x14\x0A\x10NO_DUAL_PASSWORD\x10\x02\x12\x11\x0A\x0DDUAL_PASSWORD\x10\x03\"A\x0A\x09IamStatus\x12\x1A\x0A\x16IAM_STATUS_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08INACTIVE\x10\x01\x12\x0A\x0A\x06ACTIVE\x10\x02B\x0E\x0A\x0Cuser_detailsB\x15\x0A\x13_dual_password_typeB\x0D\x0A\x0B_iam_status\">\x0A\x14SqlServerUserDetails\x12\x10\x0A\x08disabled\x18\x01 \x01(\x08\x12\x14\x0A\x0Cserver_roles\x18\x02 \x03(\x09\"h\x0A\x11UsersListResponse\x12\x0C\x0A\x04kind\x18\x01 \x01(\x09\x12(\x0A\x05items\x18\x02 \x03(\x0B2\x19.google.cloud.sql.v1.User\x12\x1B\x0A\x0Fnext_page_token\x18\x03 \x01(\x09B\x02\x18\x012\xF5\x06\x0A\x0FSqlUsersService\x12\x8F\x01\x0A\x06Delete\x12*.google.cloud.sql.v1.SqlUsersDeleteRequest\x1A\x1E.google.cloud.sql.v1.Operation\"9\x82\xD3\xE4\x93\x023*1/v1/projects/{project}/instances/{instance}/users\x12\x8B\x01\x0A\x03Get\x12'.google.cloud.sql.v1.SqlUsersGetRequest\x1A\x19.google.cloud.sql.v1.User\"@\x82\xD3\xE4\x93\x02:\x128/v1/projects/{project}/instances/{instance}/users/{name}\x12\x95\x01\x0A\x06Insert\x12*.google.cloud.sql.v1.SqlUsersInsertRequest\x1A\x1E.google.cloud.sql.v1.Operation\"?\x82\xD3\xE4\x93\x029\"1/v1/projects/{project}/instances/{instance}/users:\x04body\x12\x93\x01\x0A\x04List\x12(.google.cloud.sql.v1.SqlUsersListRequest\x1A&.google.cloud.sql.v1.UsersListResponse\"9\x82\xD3\xE4\x93\x023\x121/v1/projects/{project}/instances/{instance}/users\x12\x95\x01\x0A\x06Update\x12*.google.cloud.sql.v1.SqlUsersUpdateRequest\x1A\x1E.google.cloud.sql.v1.Operation\"?\x82\xD3\xE4\x93\x029\x1A1/v1/projects/{project}/instances/{instance}/users:\x04body\x1A|\xCAA\x17sqladmin.googleapis.com\xD2A_https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/sqlservice.adminBZ\x0A\x17com.google.cloud.sql.v1B\x12CloudSqlUsersProtoP\x01Z)cloud.google.com/go/sql/apiv1/sqlpb;sqlpbb\x06proto3" , true); static::$is_initialized = true; diff --git a/SqlAdmin/samples/V1/SqlInstancesServiceClient/clone.php b/SqlAdmin/samples/V1/SqlInstancesServiceClient/clone.php index c21aff164b7a..c50666c9cffa 100644 --- a/SqlAdmin/samples/V1/SqlInstancesServiceClient/clone.php +++ b/SqlAdmin/samples/V1/SqlInstancesServiceClient/clone.php @@ -36,7 +36,7 @@ * * @param string $instance The ID of the Cloud SQL instance to be cloned (source). This does * not include the project ID. - * @param string $project Project ID of the source as well as the clone Cloud SQL instance. + * @param string $project Project ID of the source Cloud SQL instance. * @param string $bodyCloneContextDestinationInstanceName Name of the Cloud SQL instance to be created as a clone. */ function clone_sample( diff --git a/SqlAdmin/src/V1/ExecuteSqlPayload.php b/SqlAdmin/src/V1/ExecuteSqlPayload.php index 2b63fb4e98db..081f882a1679 100644 --- a/SqlAdmin/src/V1/ExecuteSqlPayload.php +++ b/SqlAdmin/src/V1/ExecuteSqlPayload.php @@ -76,7 +76,7 @@ class ExecuteSqlPayload extends \Google\Protobuf\Internal\Message * @type string $database * Optional. Name of the database on which the statement will be executed. * @type bool $auto_iam_authn - * Optional. When set to true, the API caller identity associated with the + * Optional. When set to `true`, the API caller identity associated with the * request is used for database authentication. The API caller must be an * IAM user in the database. * @type int|string $row_limit @@ -181,7 +181,7 @@ public function setDatabase($var) } /** - * Optional. When set to true, the API caller identity associated with the + * Optional. When set to `true`, the API caller identity associated with the * request is used for database authentication. The API caller must be an * IAM user in the database. * @@ -199,7 +199,7 @@ public function hasAutoIamAuthn() } /** - * Optional. When set to true, the API caller identity associated with the + * Optional. When set to `true`, the API caller identity associated with the * request is used for database authentication. The API caller must be an * IAM user in the database. * diff --git a/SqlAdmin/src/V1/Operation/SqlOperationType.php b/SqlAdmin/src/V1/Operation/SqlOperationType.php index 416f4c07a7ed..37d70a4ca98b 100644 --- a/SqlAdmin/src/V1/Operation/SqlOperationType.php +++ b/SqlAdmin/src/V1/Operation/SqlOperationType.php @@ -336,6 +336,12 @@ class SqlOperationType * Generated from protobuf enum CREATE_READ_POOL = 53; */ const CREATE_READ_POOL = 53; + /** + * Pre-checks the major version upgrade operation. + * + * Generated from protobuf enum PRE_CHECK_MAJOR_VERSION_UPGRADE = 54; + */ + const PRE_CHECK_MAJOR_VERSION_UPGRADE = 54; private static $valueToName = [ self::SQL_OPERATION_TYPE_UNSPECIFIED => 'SQL_OPERATION_TYPE_UNSPECIFIED', @@ -390,6 +396,7 @@ class SqlOperationType self::ENHANCED_BACKUP => 'ENHANCED_BACKUP', self::REPAIR_READ_POOL => 'REPAIR_READ_POOL', self::CREATE_READ_POOL => 'CREATE_READ_POOL', + self::PRE_CHECK_MAJOR_VERSION_UPGRADE => 'PRE_CHECK_MAJOR_VERSION_UPGRADE', ]; public static function name($value) diff --git a/SqlAdmin/src/V1/PerformanceCaptureConfig.php b/SqlAdmin/src/V1/PerformanceCaptureConfig.php index 0795063d5c38..f6a83454caad 100644 --- a/SqlAdmin/src/V1/PerformanceCaptureConfig.php +++ b/SqlAdmin/src/V1/PerformanceCaptureConfig.php @@ -9,48 +9,49 @@ use Google\Protobuf\RepeatedField; /** - * Performance Capture configuration. + * Performance capture configuration. * * Generated from protobuf message google.cloud.sql.v1.PerformanceCaptureConfig */ class PerformanceCaptureConfig extends \Google\Protobuf\Internal\Message { /** - * Optional. Enable or disable the Performance Capture feature. + * Optional. Enables or disables the performance capture feature. * * Generated from protobuf field optional bool enabled = 1 [(.google.api.field_behavior) = OPTIONAL]; */ protected $enabled = null; /** - * Optional. The time interval in seconds between any two probes. + * Optional. Specifies the interval in seconds between consecutive probes that + * check if any trigger condition thresholds have been reached. * * Generated from protobuf field optional int32 probing_interval_seconds = 2 [(.google.api.field_behavior) = OPTIONAL]; */ protected $probing_interval_seconds = null; /** - * Optional. The minimum number of consecutive readings above threshold that - * triggers instance state capture. + * Optional. Specifies the minimum number of consecutive probe threshold that + * triggers performance capture. * * Generated from protobuf field optional int32 probe_threshold = 3 [(.google.api.field_behavior) = OPTIONAL]; */ protected $probe_threshold = null; /** - * Optional. The minimum number of server threads running to trigger the - * capture on primary. + * Optional. Specifies the minimum number of MySQL `Threads_running` to + * trigger the performance capture on the primary instance. * * Generated from protobuf field optional int32 running_threads_threshold = 4 [(.google.api.field_behavior) = OPTIONAL]; */ protected $running_threads_threshold = null; /** - * Optional. The minimum number of seconds replica must be lagging behind - * primary to trigger capture on replica. + * Optional. Specifies the minimum number of seconds replica must be lagging + * behind primary instance to trigger the performance capture on replica. * * Generated from protobuf field optional int32 seconds_behind_source_threshold = 5 [(.google.api.field_behavior) = OPTIONAL]; */ protected $seconds_behind_source_threshold = null; /** - * Optional. The amount of time in seconds that a transaction needs to have - * been open before the watcher starts recording it. + * Optional. Specifies the amount of time in seconds that a transaction needs + * to have been open before the watcher starts recording it. * * Generated from protobuf field optional int32 transaction_duration_threshold = 8 [(.google.api.field_behavior) = OPTIONAL]; */ @@ -63,21 +64,22 @@ class PerformanceCaptureConfig extends \Google\Protobuf\Internal\Message * Optional. Data for populating the Message object. * * @type bool $enabled - * Optional. Enable or disable the Performance Capture feature. + * Optional. Enables or disables the performance capture feature. * @type int $probing_interval_seconds - * Optional. The time interval in seconds between any two probes. + * Optional. Specifies the interval in seconds between consecutive probes that + * check if any trigger condition thresholds have been reached. * @type int $probe_threshold - * Optional. The minimum number of consecutive readings above threshold that - * triggers instance state capture. + * Optional. Specifies the minimum number of consecutive probe threshold that + * triggers performance capture. * @type int $running_threads_threshold - * Optional. The minimum number of server threads running to trigger the - * capture on primary. + * Optional. Specifies the minimum number of MySQL `Threads_running` to + * trigger the performance capture on the primary instance. * @type int $seconds_behind_source_threshold - * Optional. The minimum number of seconds replica must be lagging behind - * primary to trigger capture on replica. + * Optional. Specifies the minimum number of seconds replica must be lagging + * behind primary instance to trigger the performance capture on replica. * @type int $transaction_duration_threshold - * Optional. The amount of time in seconds that a transaction needs to have - * been open before the watcher starts recording it. + * Optional. Specifies the amount of time in seconds that a transaction needs + * to have been open before the watcher starts recording it. * } */ public function __construct($data = NULL) { @@ -86,7 +88,7 @@ public function __construct($data = NULL) { } /** - * Optional. Enable or disable the Performance Capture feature. + * Optional. Enables or disables the performance capture feature. * * Generated from protobuf field optional bool enabled = 1 [(.google.api.field_behavior) = OPTIONAL]; * @return bool @@ -107,7 +109,7 @@ public function clearEnabled() } /** - * Optional. Enable or disable the Performance Capture feature. + * Optional. Enables or disables the performance capture feature. * * Generated from protobuf field optional bool enabled = 1 [(.google.api.field_behavior) = OPTIONAL]; * @param bool $var @@ -122,7 +124,8 @@ public function setEnabled($var) } /** - * Optional. The time interval in seconds between any two probes. + * Optional. Specifies the interval in seconds between consecutive probes that + * check if any trigger condition thresholds have been reached. * * Generated from protobuf field optional int32 probing_interval_seconds = 2 [(.google.api.field_behavior) = OPTIONAL]; * @return int @@ -143,7 +146,8 @@ public function clearProbingIntervalSeconds() } /** - * Optional. The time interval in seconds between any two probes. + * Optional. Specifies the interval in seconds between consecutive probes that + * check if any trigger condition thresholds have been reached. * * Generated from protobuf field optional int32 probing_interval_seconds = 2 [(.google.api.field_behavior) = OPTIONAL]; * @param int $var @@ -158,8 +162,8 @@ public function setProbingIntervalSeconds($var) } /** - * Optional. The minimum number of consecutive readings above threshold that - * triggers instance state capture. + * Optional. Specifies the minimum number of consecutive probe threshold that + * triggers performance capture. * * Generated from protobuf field optional int32 probe_threshold = 3 [(.google.api.field_behavior) = OPTIONAL]; * @return int @@ -180,8 +184,8 @@ public function clearProbeThreshold() } /** - * Optional. The minimum number of consecutive readings above threshold that - * triggers instance state capture. + * Optional. Specifies the minimum number of consecutive probe threshold that + * triggers performance capture. * * Generated from protobuf field optional int32 probe_threshold = 3 [(.google.api.field_behavior) = OPTIONAL]; * @param int $var @@ -196,8 +200,8 @@ public function setProbeThreshold($var) } /** - * Optional. The minimum number of server threads running to trigger the - * capture on primary. + * Optional. Specifies the minimum number of MySQL `Threads_running` to + * trigger the performance capture on the primary instance. * * Generated from protobuf field optional int32 running_threads_threshold = 4 [(.google.api.field_behavior) = OPTIONAL]; * @return int @@ -218,8 +222,8 @@ public function clearRunningThreadsThreshold() } /** - * Optional. The minimum number of server threads running to trigger the - * capture on primary. + * Optional. Specifies the minimum number of MySQL `Threads_running` to + * trigger the performance capture on the primary instance. * * Generated from protobuf field optional int32 running_threads_threshold = 4 [(.google.api.field_behavior) = OPTIONAL]; * @param int $var @@ -234,8 +238,8 @@ public function setRunningThreadsThreshold($var) } /** - * Optional. The minimum number of seconds replica must be lagging behind - * primary to trigger capture on replica. + * Optional. Specifies the minimum number of seconds replica must be lagging + * behind primary instance to trigger the performance capture on replica. * * Generated from protobuf field optional int32 seconds_behind_source_threshold = 5 [(.google.api.field_behavior) = OPTIONAL]; * @return int @@ -256,8 +260,8 @@ public function clearSecondsBehindSourceThreshold() } /** - * Optional. The minimum number of seconds replica must be lagging behind - * primary to trigger capture on replica. + * Optional. Specifies the minimum number of seconds replica must be lagging + * behind primary instance to trigger the performance capture on replica. * * Generated from protobuf field optional int32 seconds_behind_source_threshold = 5 [(.google.api.field_behavior) = OPTIONAL]; * @param int $var @@ -272,8 +276,8 @@ public function setSecondsBehindSourceThreshold($var) } /** - * Optional. The amount of time in seconds that a transaction needs to have - * been open before the watcher starts recording it. + * Optional. Specifies the amount of time in seconds that a transaction needs + * to have been open before the watcher starts recording it. * * Generated from protobuf field optional int32 transaction_duration_threshold = 8 [(.google.api.field_behavior) = OPTIONAL]; * @return int @@ -294,8 +298,8 @@ public function clearTransactionDurationThreshold() } /** - * Optional. The amount of time in seconds that a transaction needs to have - * been open before the watcher starts recording it. + * Optional. Specifies the amount of time in seconds that a transaction needs + * to have been open before the watcher starts recording it. * * Generated from protobuf field optional int32 transaction_duration_threshold = 8 [(.google.api.field_behavior) = OPTIONAL]; * @param int $var diff --git a/SqlAdmin/src/V1/PointInTimeRestoreContext.php b/SqlAdmin/src/V1/PointInTimeRestoreContext.php index 10b5d24ccecc..6ff6bc1ccd29 100644 --- a/SqlAdmin/src/V1/PointInTimeRestoreContext.php +++ b/SqlAdmin/src/V1/PointInTimeRestoreContext.php @@ -72,6 +72,27 @@ class PointInTimeRestoreContext extends \Google\Protobuf\Internal\Message * Generated from protobuf field optional string preferred_secondary_zone = 9 [(.google.api.field_behavior) = OPTIONAL]; */ protected $preferred_secondary_zone = null; + /** + * Optional. Specifies the instance settings that will be overridden from the + * source instance. This field is only applicable for cross project PITRs. + * + * Generated from protobuf field .google.cloud.sql.v1.DatabaseInstance target_instance_settings = 11 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $target_instance_settings = null; + /** + * Optional. Specifies the instance settings that will be cleared from the + * source instance. This field is only applicable for cross project PITRs. + * + * Generated from protobuf field repeated string target_instance_clear_settings_field_names = 12 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $target_instance_clear_settings_field_names; + /** + * Optional. The region of the target instance where the datasource will be + * restored. For example: "us-central1". + * + * Generated from protobuf field optional string region = 13 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $region = null; /** * Constructor. @@ -107,6 +128,15 @@ class PointInTimeRestoreContext extends \Google\Protobuf\Internal\Message * Optional. Point-in-time recovery of a regional instance in the specified * zones. If not specified, clone to the same secondary zone as the source * instance. This value cannot be the same as the preferred_zone field. + * @type \Google\Cloud\Sql\V1\DatabaseInstance $target_instance_settings + * Optional. Specifies the instance settings that will be overridden from the + * source instance. This field is only applicable for cross project PITRs. + * @type string[] $target_instance_clear_settings_field_names + * Optional. Specifies the instance settings that will be cleared from the + * source instance. This field is only applicable for cross project PITRs. + * @type string $region + * Optional. The region of the target instance where the datasource will be + * restored. For example: "us-central1". * } */ public function __construct($data = NULL) { @@ -394,5 +424,109 @@ public function setPreferredSecondaryZone($var) return $this; } + /** + * Optional. Specifies the instance settings that will be overridden from the + * source instance. This field is only applicable for cross project PITRs. + * + * Generated from protobuf field .google.cloud.sql.v1.DatabaseInstance target_instance_settings = 11 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Sql\V1\DatabaseInstance|null + */ + public function getTargetInstanceSettings() + { + return $this->target_instance_settings; + } + + public function hasTargetInstanceSettings() + { + return isset($this->target_instance_settings); + } + + public function clearTargetInstanceSettings() + { + unset($this->target_instance_settings); + } + + /** + * Optional. Specifies the instance settings that will be overridden from the + * source instance. This field is only applicable for cross project PITRs. + * + * Generated from protobuf field .google.cloud.sql.v1.DatabaseInstance target_instance_settings = 11 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Sql\V1\DatabaseInstance $var + * @return $this + */ + public function setTargetInstanceSettings($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Sql\V1\DatabaseInstance::class); + $this->target_instance_settings = $var; + + return $this; + } + + /** + * Optional. Specifies the instance settings that will be cleared from the + * source instance. This field is only applicable for cross project PITRs. + * + * Generated from protobuf field repeated string target_instance_clear_settings_field_names = 12 [(.google.api.field_behavior) = OPTIONAL]; + * @return RepeatedField + */ + public function getTargetInstanceClearSettingsFieldNames() + { + return $this->target_instance_clear_settings_field_names; + } + + /** + * Optional. Specifies the instance settings that will be cleared from the + * source instance. This field is only applicable for cross project PITRs. + * + * Generated from protobuf field repeated string target_instance_clear_settings_field_names = 12 [(.google.api.field_behavior) = OPTIONAL]; + * @param string[] $var + * @return $this + */ + public function setTargetInstanceClearSettingsFieldNames($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->target_instance_clear_settings_field_names = $arr; + + return $this; + } + + /** + * Optional. The region of the target instance where the datasource will be + * restored. For example: "us-central1". + * + * Generated from protobuf field optional string region = 13 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getRegion() + { + return isset($this->region) ? $this->region : ''; + } + + public function hasRegion() + { + return isset($this->region); + } + + public function clearRegion() + { + unset($this->region); + } + + /** + * Optional. The region of the target instance where the datasource will be + * restored. For example: "us-central1". + * + * Generated from protobuf field optional string region = 13 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setRegion($var) + { + GPBUtil::checkString($var, True); + $this->region = $var; + + return $this; + } + } diff --git a/SqlAdmin/src/V1/PscAutoConnectionConfig.php b/SqlAdmin/src/V1/PscAutoConnectionConfig.php index bab3a5ff4290..48358e7416f7 100644 --- a/SqlAdmin/src/V1/PscAutoConnectionConfig.php +++ b/SqlAdmin/src/V1/PscAutoConnectionConfig.php @@ -19,7 +19,7 @@ class PscAutoConnectionConfig extends \Google\Protobuf\Internal\Message /** * Optional. This is the project ID of consumer service project of this * consumer endpoint. - * Optional. This is only applicable if consumer_network is a shared vpc + * This is only applicable if `consumer_network` is a shared VPC * network. * * Generated from protobuf field string consumer_project = 1 [(.google.api.field_behavior) = OPTIONAL]; @@ -63,7 +63,7 @@ class PscAutoConnectionConfig extends \Google\Protobuf\Internal\Message * @type string $consumer_project * Optional. This is the project ID of consumer service project of this * consumer endpoint. - * Optional. This is only applicable if consumer_network is a shared vpc + * This is only applicable if `consumer_network` is a shared VPC * network. * @type string $consumer_network * Optional. The consumer network of this consumer endpoint. This must be a @@ -87,7 +87,7 @@ public function __construct($data = NULL) { /** * Optional. This is the project ID of consumer service project of this * consumer endpoint. - * Optional. This is only applicable if consumer_network is a shared vpc + * This is only applicable if `consumer_network` is a shared VPC * network. * * Generated from protobuf field string consumer_project = 1 [(.google.api.field_behavior) = OPTIONAL]; @@ -101,7 +101,7 @@ public function getConsumerProject() /** * Optional. This is the project ID of consumer service project of this * consumer endpoint. - * Optional. This is only applicable if consumer_network is a shared vpc + * This is only applicable if `consumer_network` is a shared VPC * network. * * Generated from protobuf field string consumer_project = 1 [(.google.api.field_behavior) = OPTIONAL]; diff --git a/SqlAdmin/src/V1/PscConfig.php b/SqlAdmin/src/V1/PscConfig.php index b0f7395e4a56..bd9ff6248c35 100644 --- a/SqlAdmin/src/V1/PscConfig.php +++ b/SqlAdmin/src/V1/PscConfig.php @@ -47,6 +47,28 @@ class PscConfig extends \Google\Protobuf\Internal\Message * Generated from protobuf field string network_attachment_uri = 4 [(.google.api.field_behavior) = OPTIONAL]; */ protected $network_attachment_uri = ''; + /** + * Optional. Indicates whether PSC DNS automation is enabled for this + * instance. When enabled, Cloud SQL provisions a universal DNS record across + * all networks configured with Private Service Connect (PSC) + * auto-connections. This will default to true for new instances when Private + * Service Connect is enabled. + * + * Generated from protobuf field optional bool psc_auto_dns_enabled = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $psc_auto_dns_enabled = null; + /** + * Optional. Indicates whether PSC write endpoint DNS automation is enabled + * for this instance. When enabled, Cloud SQL provisions a universal global + * DNS record across all networks configured with Private Service Connect + * (PSC) auto-connections that always points to the cluster primary instance. + * This feature is only supported for Enterprise Plus edition. + * This will default to true for new Enterprise Plus instances when + * `psc_auto_dns_enabled` is enabled. + * + * Generated from protobuf field optional bool psc_write_endpoint_dns_enabled = 6 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $psc_write_endpoint_dns_enabled = null; /** * Constructor. @@ -70,6 +92,20 @@ class PscConfig extends \Google\Protobuf\Internal\Message * Private Service Connect enabled Cloud SQL instance is * authorized to connect via PSC interface. * format: projects/PROJECT/regions/REGION/networkAttachments/ID + * @type bool $psc_auto_dns_enabled + * Optional. Indicates whether PSC DNS automation is enabled for this + * instance. When enabled, Cloud SQL provisions a universal DNS record across + * all networks configured with Private Service Connect (PSC) + * auto-connections. This will default to true for new instances when Private + * Service Connect is enabled. + * @type bool $psc_write_endpoint_dns_enabled + * Optional. Indicates whether PSC write endpoint DNS automation is enabled + * for this instance. When enabled, Cloud SQL provisions a universal global + * DNS record across all networks configured with Private Service Connect + * (PSC) auto-connections that always points to the cluster primary instance. + * This feature is only supported for Enterprise Plus edition. + * This will default to true for new Enterprise Plus instances when + * `psc_auto_dns_enabled` is enabled. * } */ public function __construct($data = NULL) { @@ -207,5 +243,97 @@ public function setNetworkAttachmentUri($var) return $this; } + /** + * Optional. Indicates whether PSC DNS automation is enabled for this + * instance. When enabled, Cloud SQL provisions a universal DNS record across + * all networks configured with Private Service Connect (PSC) + * auto-connections. This will default to true for new instances when Private + * Service Connect is enabled. + * + * Generated from protobuf field optional bool psc_auto_dns_enabled = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getPscAutoDnsEnabled() + { + return isset($this->psc_auto_dns_enabled) ? $this->psc_auto_dns_enabled : false; + } + + public function hasPscAutoDnsEnabled() + { + return isset($this->psc_auto_dns_enabled); + } + + public function clearPscAutoDnsEnabled() + { + unset($this->psc_auto_dns_enabled); + } + + /** + * Optional. Indicates whether PSC DNS automation is enabled for this + * instance. When enabled, Cloud SQL provisions a universal DNS record across + * all networks configured with Private Service Connect (PSC) + * auto-connections. This will default to true for new instances when Private + * Service Connect is enabled. + * + * Generated from protobuf field optional bool psc_auto_dns_enabled = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setPscAutoDnsEnabled($var) + { + GPBUtil::checkBool($var); + $this->psc_auto_dns_enabled = $var; + + return $this; + } + + /** + * Optional. Indicates whether PSC write endpoint DNS automation is enabled + * for this instance. When enabled, Cloud SQL provisions a universal global + * DNS record across all networks configured with Private Service Connect + * (PSC) auto-connections that always points to the cluster primary instance. + * This feature is only supported for Enterprise Plus edition. + * This will default to true for new Enterprise Plus instances when + * `psc_auto_dns_enabled` is enabled. + * + * Generated from protobuf field optional bool psc_write_endpoint_dns_enabled = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getPscWriteEndpointDnsEnabled() + { + return isset($this->psc_write_endpoint_dns_enabled) ? $this->psc_write_endpoint_dns_enabled : false; + } + + public function hasPscWriteEndpointDnsEnabled() + { + return isset($this->psc_write_endpoint_dns_enabled); + } + + public function clearPscWriteEndpointDnsEnabled() + { + unset($this->psc_write_endpoint_dns_enabled); + } + + /** + * Optional. Indicates whether PSC write endpoint DNS automation is enabled + * for this instance. When enabled, Cloud SQL provisions a universal global + * DNS record across all networks configured with Private Service Connect + * (PSC) auto-connections that always points to the cluster primary instance. + * This feature is only supported for Enterprise Plus edition. + * This will default to true for new Enterprise Plus instances when + * `psc_auto_dns_enabled` is enabled. + * + * Generated from protobuf field optional bool psc_write_endpoint_dns_enabled = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setPscWriteEndpointDnsEnabled($var) + { + GPBUtil::checkBool($var); + $this->psc_write_endpoint_dns_enabled = $var; + + return $this; + } + } diff --git a/SqlAdmin/src/V1/Settings.php b/SqlAdmin/src/V1/Settings.php index 66269d782782..9ed0ed4a616d 100644 --- a/SqlAdmin/src/V1/Settings.php +++ b/SqlAdmin/src/V1/Settings.php @@ -317,6 +317,13 @@ class Settings extends \Google\Protobuf\Internal\Message * Generated from protobuf field optional .google.cloud.sql.v1.ReadPoolAutoScaleConfig read_pool_auto_scale_config = 48 [(.google.api.field_behavior) = OPTIONAL]; */ protected $read_pool_auto_scale_config = null; + /** + * Optional. Whether the replica is in accelerated mode. This feature is in + * private preview and requires allowlisting to take effect. + * + * Generated from protobuf field .google.protobuf.BoolValue accelerated_replica_mode = 49 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $accelerated_replica_mode = null; /** * Optional. Cloud SQL for MySQL auto-upgrade configuration. When this * parameter is set to true, auto-upgrade is enabled for MySQL 8.0 minor @@ -487,6 +494,9 @@ class Settings extends \Google\Protobuf\Internal\Message * Optional. The final backup configuration for the instance. * @type \Google\Cloud\Sql\V1\ReadPoolAutoScaleConfig $read_pool_auto_scale_config * Optional. The read pool auto-scale configuration for the instance. + * @type \Google\Protobuf\BoolValue $accelerated_replica_mode + * Optional. Whether the replica is in accelerated mode. This feature is in + * private preview and requires allowlisting to take effect. * @type bool $auto_upgrade_enabled * Optional. Cloud SQL for MySQL auto-upgrade configuration. When this * parameter is set to true, auto-upgrade is enabled for MySQL 8.0 minor @@ -2298,6 +2308,73 @@ public function setReadPoolAutoScaleConfig($var) return $this; } + /** + * Optional. Whether the replica is in accelerated mode. This feature is in + * private preview and requires allowlisting to take effect. + * + * Generated from protobuf field .google.protobuf.BoolValue accelerated_replica_mode = 49 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\BoolValue|null + */ + public function getAcceleratedReplicaMode() + { + return $this->accelerated_replica_mode; + } + + public function hasAcceleratedReplicaMode() + { + return isset($this->accelerated_replica_mode); + } + + public function clearAcceleratedReplicaMode() + { + unset($this->accelerated_replica_mode); + } + + /** + * Returns the unboxed value from getAcceleratedReplicaMode() + + * Optional. Whether the replica is in accelerated mode. This feature is in + * private preview and requires allowlisting to take effect. + * + * Generated from protobuf field .google.protobuf.BoolValue accelerated_replica_mode = 49 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool|null + */ + public function getAcceleratedReplicaModeUnwrapped() + { + return $this->readWrapperValue("accelerated_replica_mode"); + } + + /** + * Optional. Whether the replica is in accelerated mode. This feature is in + * private preview and requires allowlisting to take effect. + * + * Generated from protobuf field .google.protobuf.BoolValue accelerated_replica_mode = 49 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Protobuf\BoolValue $var + * @return $this + */ + public function setAcceleratedReplicaMode($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\BoolValue::class); + $this->accelerated_replica_mode = $var; + + return $this; + } + + /** + * Sets the field by wrapping a primitive type in a Google\Protobuf\BoolValue object. + + * Optional. Whether the replica is in accelerated mode. This feature is in + * private preview and requires allowlisting to take effect. + * + * Generated from protobuf field .google.protobuf.BoolValue accelerated_replica_mode = 49 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool|null $var + * @return $this + */ + public function setAcceleratedReplicaModeUnwrapped($var) + { + $this->writeWrapperValue("accelerated_replica_mode", $var); + return $this;} + /** * Optional. Cloud SQL for MySQL auto-upgrade configuration. When this * parameter is set to true, auto-upgrade is enabled for MySQL 8.0 minor diff --git a/SqlAdmin/src/V1/SqlDatabaseVersion.php b/SqlAdmin/src/V1/SqlDatabaseVersion.php index b84965cb26a7..5e3d8cb46824 100644 --- a/SqlAdmin/src/V1/SqlDatabaseVersion.php +++ b/SqlAdmin/src/V1/SqlDatabaseVersion.php @@ -271,6 +271,12 @@ class SqlDatabaseVersion * Generated from protobuf enum POSTGRES_18 = 557; */ const POSTGRES_18 = 557; + /** + * The database version is PostgreSQL 19. + * + * Generated from protobuf enum POSTGRES_19 = 684; + */ + const POSTGRES_19 = 684; /** * The database version is SQL Server 2019 Standard. * @@ -319,6 +325,24 @@ class SqlDatabaseVersion * Generated from protobuf enum SQLSERVER_2022_WEB = 202; */ const SQLSERVER_2022_WEB = 202; + /** + * The database version is SQL Server 2025 Standard. + * + * Generated from protobuf enum SQLSERVER_2025_STANDARD = 549; + */ + const SQLSERVER_2025_STANDARD = 549; + /** + * The database version is SQL Server 2025 Enterprise. + * + * Generated from protobuf enum SQLSERVER_2025_ENTERPRISE = 550; + */ + const SQLSERVER_2025_ENTERPRISE = 550; + /** + * The database version is SQL Server 2025 Express. + * + * Generated from protobuf enum SQLSERVER_2025_EXPRESS = 551; + */ + const SQLSERVER_2025_EXPRESS = 551; private static $valueToName = [ self::SQL_DATABASE_VERSION_UNSPECIFIED => 'SQL_DATABASE_VERSION_UNSPECIFIED', @@ -364,6 +388,7 @@ class SqlDatabaseVersion self::POSTGRES_16 => 'POSTGRES_16', self::POSTGRES_17 => 'POSTGRES_17', self::POSTGRES_18 => 'POSTGRES_18', + self::POSTGRES_19 => 'POSTGRES_19', self::SQLSERVER_2019_STANDARD => 'SQLSERVER_2019_STANDARD', self::SQLSERVER_2019_ENTERPRISE => 'SQLSERVER_2019_ENTERPRISE', self::SQLSERVER_2019_EXPRESS => 'SQLSERVER_2019_EXPRESS', @@ -372,6 +397,9 @@ class SqlDatabaseVersion self::SQLSERVER_2022_ENTERPRISE => 'SQLSERVER_2022_ENTERPRISE', self::SQLSERVER_2022_EXPRESS => 'SQLSERVER_2022_EXPRESS', self::SQLSERVER_2022_WEB => 'SQLSERVER_2022_WEB', + self::SQLSERVER_2025_STANDARD => 'SQLSERVER_2025_STANDARD', + self::SQLSERVER_2025_ENTERPRISE => 'SQLSERVER_2025_ENTERPRISE', + self::SQLSERVER_2025_EXPRESS => 'SQLSERVER_2025_EXPRESS', ]; public static function name($value) diff --git a/SqlAdmin/src/V1/SqlInstancesCloneRequest.php b/SqlAdmin/src/V1/SqlInstancesCloneRequest.php index 26f0a367cc62..15cde29ac1c4 100644 --- a/SqlAdmin/src/V1/SqlInstancesCloneRequest.php +++ b/SqlAdmin/src/V1/SqlInstancesCloneRequest.php @@ -23,7 +23,7 @@ class SqlInstancesCloneRequest extends \Google\Protobuf\Internal\Message */ protected $instance = ''; /** - * Required. Project ID of the source as well as the clone Cloud SQL instance. + * Required. Project ID of the source Cloud SQL instance. * * Generated from protobuf field string project = 2 [(.google.api.field_behavior) = REQUIRED]; */ @@ -43,7 +43,7 @@ class SqlInstancesCloneRequest extends \Google\Protobuf\Internal\Message * Required. The ID of the Cloud SQL instance to be cloned (source). This does * not include the project ID. * @type string $project - * Required. Project ID of the source as well as the clone Cloud SQL instance. + * Required. Project ID of the source Cloud SQL instance. * @type \Google\Cloud\Sql\V1\InstancesCloneRequest $body * } */ @@ -81,7 +81,7 @@ public function setInstance($var) } /** - * Required. Project ID of the source as well as the clone Cloud SQL instance. + * Required. Project ID of the source Cloud SQL instance. * * Generated from protobuf field string project = 2 [(.google.api.field_behavior) = REQUIRED]; * @return string @@ -92,7 +92,7 @@ public function getProject() } /** - * Required. Project ID of the source as well as the clone Cloud SQL instance. + * Required. Project ID of the source Cloud SQL instance. * * Generated from protobuf field string project = 2 [(.google.api.field_behavior) = REQUIRED]; * @param string $var diff --git a/SqlAdmin/src/V1/SqlSuspensionReason.php b/SqlAdmin/src/V1/SqlSuspensionReason.php index b7fa989e32e0..7249c4aaec8a 100644 --- a/SqlAdmin/src/V1/SqlSuspensionReason.php +++ b/SqlAdmin/src/V1/SqlSuspensionReason.php @@ -46,6 +46,12 @@ class SqlSuspensionReason * Generated from protobuf enum KMS_KEY_ISSUE = 5; */ const KMS_KEY_ISSUE = 5; + /** + * The project is suspended due to abuse detected by Ares. + * + * Generated from protobuf enum PROJECT_ABUSE = 8; + */ + const PROJECT_ABUSE = 8; private static $valueToName = [ self::SQL_SUSPENSION_REASON_UNSPECIFIED => 'SQL_SUSPENSION_REASON_UNSPECIFIED', @@ -53,6 +59,7 @@ class SqlSuspensionReason self::LEGAL_ISSUE => 'LEGAL_ISSUE', self::OPERATIONAL_ISSUE => 'OPERATIONAL_ISSUE', self::KMS_KEY_ISSUE => 'KMS_KEY_ISSUE', + self::PROJECT_ABUSE => 'PROJECT_ABUSE', ]; public static function name($value) From fb908b860a8a0fb89232dda7d9fed18201071d59 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 27 May 2026 17:25:57 -0400 Subject: [PATCH 4/7] feat: [SecurityPrivateCa] add allow_requester_specified_not_before_time and requested_not_before_time fields to PrivateCA v1 API (#9215) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add allow_requester_specified_not_before_time and requested_not_before_time fields to PrivateCA v1 API docs: update comments for backdate_duration field in CaPool docs: update comments for parent field in ListCertificatesRequest PiperOrigin-RevId: 921762720 Source-Link: https://github.com/googleapis/googleapis/commit/ec2e5108648ebb5ba2f9da69bdb2494e38f734df Source-Link: https://github.com/googleapis/googleapis-gen/commit/b8da48e8a8aaabd7f6fc39ed2f5cfd1804c7e255 Copy-Tag: eyJwIjoiU2VjdXJpdHlQcml2YXRlQ2EvLk93bEJvdC55YW1sIiwiaCI6ImI4ZGE0OGU4YThhYWFiZDdmNmZjMzllZDJmNWNmZDE4MDRjN2UyNTUifQ== * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- SecurityPrivateCa/metadata/V1/Resources.php | 2 +- .../list_certificates.php | 15 +- .../list_locations.php | 15 ++ SecurityPrivateCa/src/V1/CaPool.php | 60 ++++++++ .../src/V1/CaPool/IssuancePolicy.php | 142 ++++++++++++++---- SecurityPrivateCa/src/V1/Certificate.php | 92 ++++++++++++ .../CertificateAuthorityServiceClient.php | 15 ++ SecurityPrivateCa/src/V1/EncryptionSpec.php | 71 +++++++++ .../src/V1/ListCertificatesRequest.php | 59 ++++++-- 9 files changed, 428 insertions(+), 43 deletions(-) create mode 100644 SecurityPrivateCa/src/V1/EncryptionSpec.php diff --git a/SecurityPrivateCa/metadata/V1/Resources.php b/SecurityPrivateCa/metadata/V1/Resources.php index 3c7d12c5602d..35d57a49c7fe 100644 --- a/SecurityPrivateCa/metadata/V1/Resources.php +++ b/SecurityPrivateCa/metadata/V1/Resources.php @@ -20,7 +20,7 @@ public static function initOnce() { \GPBMetadata\Google\Protobuf\Timestamp::initOnce(); \GPBMetadata\Google\Type\Expr::initOnce(); $pool->internalAddGeneratedFile( - "\x0A\xC0l\x0A2google/cloud/security/privateca/v1/resources.proto\x12\"google.cloud.security.privateca.v1\x1A\x19google/api/resource.proto\x1A\x1Egoogle/protobuf/duration.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\x1A\x16google/type/expr.proto\"\x86\x12\x0A\x14CertificateAuthority\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12S\x0A\x04type\x18\x02 \x01(\x0E2=.google.cloud.security.privateca.v1.CertificateAuthority.TypeB\x06\xE0A\x02\xE0A\x05\x12M\x0A\x06config\x18\x03 \x01(\x0B25.google.cloud.security.privateca.v1.CertificateConfigB\x06\xE0A\x02\xE0A\x05\x123\x0A\x08lifetime\x18\x04 \x01(\x0B2\x19.google.protobuf.DurationB\x06\xE0A\x02\xE0A\x05\x12a\x0A\x08key_spec\x18\x05 \x01(\x0B2G.google.cloud.security.privateca.v1.CertificateAuthority.KeyVersionSpecB\x06\xE0A\x02\xE0A\x05\x12V\x0A\x12subordinate_config\x18\x06 \x01(\x0B25.google.cloud.security.privateca.v1.SubordinateConfigB\x03\xE0A\x01\x12B\x0A\x04tier\x18\x07 \x01(\x0E2/.google.cloud.security.privateca.v1.CaPool.TierB\x03\xE0A\x03\x12R\x0A\x05state\x18\x08 \x01(\x0E2>.google.cloud.security.privateca.v1.CertificateAuthority.StateB\x03\xE0A\x03\x12 \x0A\x13pem_ca_certificates\x18\x09 \x03(\x09B\x03\xE0A\x03\x12d\x0A\x1Bca_certificate_descriptions\x18\x0A \x03(\x0B2:.google.cloud.security.privateca.v1.CertificateDescriptionB\x03\xE0A\x03\x12\x17\x0A\x0Agcs_bucket\x18\x0B \x01(\x09B\x03\xE0A\x05\x12]\x0A\x0Baccess_urls\x18\x0C \x01(\x0B2C.google.cloud.security.privateca.v1.CertificateAuthority.AccessUrlsB\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x0D \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x0E \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bdelete_time\x18\x0F \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bexpire_time\x18\x10 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12Y\x0A\x06labels\x18\x11 \x03(\x0B2D.google.cloud.security.privateca.v1.CertificateAuthority.LabelsEntryB\x03\xE0A\x01\x12u\x0A\x18user_defined_access_urls\x18\x12 \x01(\x0B2N.google.cloud.security.privateca.v1.CertificateAuthority.UserDefinedAccessUrlsB\x03\xE0A\x01\x12\x1A\x0A\x0Dsatisfies_pzs\x18\x13 \x01(\x08B\x03\xE0A\x03\x12\x1A\x0A\x0Dsatisfies_pzi\x18\x14 \x01(\x08B\x03\xE0A\x03\x1AH\x0A\x0AAccessUrls\x12!\x0A\x19ca_certificate_access_url\x18\x01 \x01(\x09\x12\x17\x0A\x0Fcrl_access_urls\x18\x02 \x03(\x09\x1A\xA0\x01\x0A\x0EKeyVersionSpec\x12\x1F\x0A\x15cloud_kms_key_version\x18\x01 \x01(\x09H\x00\x12_\x0A\x09algorithm\x18\x02 \x01(\x0E2J.google.cloud.security.privateca.v1.CertificateAuthority.SignHashAlgorithmH\x00B\x0C\x0A\x0AKeyVersion\x1A`\x0A\x15UserDefinedAccessUrls\x12)\x0A\x1Caia_issuing_certificate_urls\x18\x01 \x03(\x09B\x03\xE0A\x01\x12\x1C\x0A\x0Fcrl_access_urls\x18\x02 \x03(\x09B\x03\xE0A\x01\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\">\x0A\x04Type\x12\x14\x0A\x10TYPE_UNSPECIFIED\x10\x00\x12\x0F\x0A\x0BSELF_SIGNED\x10\x01\x12\x0F\x0A\x0BSUBORDINATE\x10\x02\"p\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07ENABLED\x10\x01\x12\x0C\x0A\x08DISABLED\x10\x02\x12\x0A\x0A\x06STAGED\x10\x03\x12\x1C\x0A\x18AWAITING_USER_ACTIVATION\x10\x04\x12\x0B\x0A\x07DELETED\x10\x05\"\xFC\x01\x0A\x11SignHashAlgorithm\x12#\x0A\x1FSIGN_HASH_ALGORITHM_UNSPECIFIED\x10\x00\x12\x17\x0A\x13RSA_PSS_2048_SHA256\x10\x01\x12\x17\x0A\x13RSA_PSS_3072_SHA256\x10\x02\x12\x17\x0A\x13RSA_PSS_4096_SHA256\x10\x03\x12\x19\x0A\x15RSA_PKCS1_2048_SHA256\x10\x06\x12\x19\x0A\x15RSA_PKCS1_3072_SHA256\x10\x07\x12\x19\x0A\x15RSA_PKCS1_4096_SHA256\x10\x08\x12\x12\x0A\x0EEC_P256_SHA256\x10\x04\x12\x12\x0A\x0EEC_P384_SHA384\x10\x05:\x9D\x01\xEAA\x99\x01\x0A-privateca.googleapis.com/CertificateAuthority\x12hprojects/{project}/locations/{location}/caPools/{ca_pool}/certificateAuthorities/{certificate_authority}\"\xDC\x10\x0A\x06CaPool\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12E\x0A\x04tier\x18\x02 \x01(\x0E2/.google.cloud.security.privateca.v1.CaPool.TierB\x06\xE0A\x02\xE0A\x05\x12W\x0A\x0Fissuance_policy\x18\x03 \x01(\x0B29.google.cloud.security.privateca.v1.CaPool.IssuancePolicyB\x03\xE0A\x01\x12]\x0A\x12publishing_options\x18\x04 \x01(\x0B2<.google.cloud.security.privateca.v1.CaPool.PublishingOptionsB\x03\xE0A\x01\x12K\x0A\x06labels\x18\x05 \x03(\x0B26.google.cloud.security.privateca.v1.CaPool.LabelsEntryB\x03\xE0A\x01\x1A\xFB\x01\x0A\x11PublishingOptions\x12\x1C\x0A\x0Fpublish_ca_cert\x18\x01 \x01(\x08B\x03\xE0A\x01\x12\x18\x0A\x0Bpublish_crl\x18\x02 \x01(\x08B\x03\xE0A\x01\x12i\x0A\x0Fencoding_format\x18\x03 \x01(\x0E2K.google.cloud.security.privateca.v1.CaPool.PublishingOptions.EncodingFormatB\x03\xE0A\x01\"C\x0A\x0EEncodingFormat\x12\x1F\x0A\x1BENCODING_FORMAT_UNSPECIFIED\x10\x00\x12\x07\x0A\x03PEM\x10\x01\x12\x07\x0A\x03DER\x10\x02\x1A\xAA\x0A\x0A\x0EIssuancePolicy\x12h\x0A\x11allowed_key_types\x18\x01 \x03(\x0B2H.google.cloud.security.privateca.v1.CaPool.IssuancePolicy.AllowedKeyTypeB\x03\xE0A\x01\x129\x0A\x11backdate_duration\x18\x07 \x01(\x0B2\x19.google.protobuf.DurationB\x03\xE0A\x01\x128\x0A\x10maximum_lifetime\x18\x02 \x01(\x0B2\x19.google.protobuf.DurationB\x03\xE0A\x01\x12l\x0A\x16allowed_issuance_modes\x18\x03 \x01(\x0B2G.google.cloud.security.privateca.v1.CaPool.IssuancePolicy.IssuanceModesB\x03\xE0A\x01\x12P\x0A\x0Fbaseline_values\x18\x04 \x01(\x0B22.google.cloud.security.privateca.v1.X509ParametersB\x03\xE0A\x01\x12e\x0A\x14identity_constraints\x18\x05 \x01(\x0B2B.google.cloud.security.privateca.v1.CertificateIdentityConstraintsB\x03\xE0A\x01\x12h\x0A\x16passthrough_extensions\x18\x06 \x01(\x0B2C.google.cloud.security.privateca.v1.CertificateExtensionConstraintsB\x03\xE0A\x01\x1A\xC5\x04\x0A\x0EAllowedKeyType\x12b\x0A\x03rsa\x18\x01 \x01(\x0B2S.google.cloud.security.privateca.v1.CaPool.IssuancePolicy.AllowedKeyType.RsaKeyTypeH\x00\x12l\x0A\x0Eelliptic_curve\x18\x02 \x01(\x0B2R.google.cloud.security.privateca.v1.CaPool.IssuancePolicy.AllowedKeyType.EcKeyTypeH\x00\x1AJ\x0A\x0ARsaKeyType\x12\x1D\x0A\x10min_modulus_size\x18\x01 \x01(\x03B\x03\xE0A\x01\x12\x1D\x0A\x10max_modulus_size\x18\x02 \x01(\x03B\x03\xE0A\x01\x1A\x88\x02\x0A\x09EcKeyType\x12\x89\x01\x0A\x13signature_algorithm\x18\x01 \x01(\x0E2g.google.cloud.security.privateca.v1.CaPool.IssuancePolicy.AllowedKeyType.EcKeyType.EcSignatureAlgorithmB\x03\xE0A\x01\"o\x0A\x14EcSignatureAlgorithm\x12&\x0A\"EC_SIGNATURE_ALGORITHM_UNSPECIFIED\x10\x00\x12\x0E\x0A\x0AECDSA_P256\x10\x01\x12\x0E\x0A\x0AECDSA_P384\x10\x02\x12\x0F\x0A\x0BEDDSA_25519\x10\x03B\x0A\x0A\x08key_type\x1A`\x0A\x0DIssuanceModes\x12%\x0A\x18allow_csr_based_issuance\x18\x01 \x01(\x08B\x03\xE0A\x01\x12(\x0A\x1Ballow_config_based_issuance\x18\x02 \x01(\x08B\x03\xE0A\x01\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"8\x0A\x04Tier\x12\x14\x0A\x10TIER_UNSPECIFIED\x10\x00\x12\x0E\x0A\x0AENTERPRISE\x10\x01\x12\x0A\x0A\x06DEVOPS\x10\x02:_\xEAA\\\x0A\x1Fprivateca.googleapis.com/CaPool\x129projects/{project}/locations/{location}/caPools/{ca_pool}\"\xBC\x08\x0A\x19CertificateRevocationList\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12\x1C\x0A\x0Fsequence_number\x18\x02 \x01(\x03B\x03\xE0A\x03\x12s\x0A\x14revoked_certificates\x18\x03 \x03(\x0B2P.google.cloud.security.privateca.v1.CertificateRevocationList.RevokedCertificateB\x03\xE0A\x03\x12\x14\x0A\x07pem_crl\x18\x04 \x01(\x09B\x03\xE0A\x03\x12\x17\x0A\x0Aaccess_url\x18\x05 \x01(\x09B\x03\xE0A\x03\x12W\x0A\x05state\x18\x06 \x01(\x0E2C.google.cloud.security.privateca.v1.CertificateRevocationList.StateB\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x07 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x08 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x18\x0A\x0Brevision_id\x18\x09 \x01(\x09B\x03\xE0A\x03\x12^\x0A\x06labels\x18\x0A \x03(\x0B2I.google.cloud.security.privateca.v1.CertificateRevocationList.LabelsEntryB\x03\xE0A\x01\x1A\xC0\x01\x0A\x12RevokedCertificate\x12>\x0A\x0Bcertificate\x18\x01 \x01(\x09B)\xFAA&\x0A\$privateca.googleapis.com/Certificate\x12\x19\x0A\x11hex_serial_number\x18\x02 \x01(\x09\x12O\x0A\x11revocation_reason\x18\x03 \x01(\x0E24.google.cloud.security.privateca.v1.RevocationReason\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\":\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06ACTIVE\x10\x01\x12\x0E\x0A\x0ASUPERSEDED\x10\x02:\xDC\x01\xEAA\xD8\x01\x0A2privateca.googleapis.com/CertificateRevocationList\x12\xA1\x01projects/{project}/locations/{location}/caPools/{ca_pool}/certificateAuthorities/{certificate_authority}/certificateRevocationLists/{certificate_revocation_list}\"\xE6\x09\x0A\x0BCertificate\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12\x16\x0A\x07pem_csr\x18\x02 \x01(\x09B\x03\xE0A\x05H\x00\x12L\x0A\x06config\x18\x03 \x01(\x0B25.google.cloud.security.privateca.v1.CertificateConfigB\x03\xE0A\x05H\x00\x12[\x0A\x1Cissuer_certificate_authority\x18\x04 \x01(\x09B5\xE0A\x03\xFAA/\x0A-privateca.googleapis.com/CertificateAuthority\x123\x0A\x08lifetime\x18\x05 \x01(\x0B2\x19.google.protobuf.DurationB\x06\xE0A\x02\xE0A\x05\x12R\x0A\x14certificate_template\x18\x06 \x01(\x09B4\xE0A\x05\xFAA.\x0A,privateca.googleapis.com/CertificateTemplate\x12Q\x0A\x0Csubject_mode\x18\x07 \x01(\x0E26.google.cloud.security.privateca.v1.SubjectRequestModeB\x03\xE0A\x05\x12b\x0A\x12revocation_details\x18\x08 \x01(\x0B2A.google.cloud.security.privateca.v1.Certificate.RevocationDetailsB\x03\xE0A\x03\x12\x1C\x0A\x0Fpem_certificate\x18\x09 \x01(\x09B\x03\xE0A\x03\x12`\x0A\x17certificate_description\x18\x0A \x01(\x0B2:.google.cloud.security.privateca.v1.CertificateDescriptionB\x03\xE0A\x03\x12\"\x0A\x15pem_certificate_chain\x18\x0B \x03(\x09B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x0C \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x0D \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12P\x0A\x06labels\x18\x0E \x03(\x0B2;.google.cloud.security.privateca.v1.Certificate.LabelsEntryB\x03\xE0A\x01\x1A\x98\x01\x0A\x11RevocationDetails\x12N\x0A\x10revocation_state\x18\x01 \x01(\x0E24.google.cloud.security.privateca.v1.RevocationReason\x123\x0A\x0Frevocation_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.Timestamp\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:\x7F\xEAA|\x0A\$privateca.googleapis.com/Certificate\x12Tprojects/{project}/locations/{location}/caPools/{ca_pool}/certificates/{certificate}B\x14\x0A\x12certificate_config\"\xA0\x06\x0A\x13CertificateTemplate\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x128\x0A\x10maximum_lifetime\x18\x09 \x01(\x0B2\x19.google.protobuf.DurationB\x03\xE0A\x01\x12R\x0A\x11predefined_values\x18\x02 \x01(\x0B22.google.cloud.security.privateca.v1.X509ParametersB\x03\xE0A\x01\x12e\x0A\x14identity_constraints\x18\x03 \x01(\x0B2B.google.cloud.security.privateca.v1.CertificateIdentityConstraintsB\x03\xE0A\x01\x12h\x0A\x16passthrough_extensions\x18\x04 \x01(\x0B2C.google.cloud.security.privateca.v1.CertificateExtensionConstraintsB\x03\xE0A\x01\x12\x18\x0A\x0Bdescription\x18\x05 \x01(\x09B\x03\xE0A\x01\x124\x0A\x0Bcreate_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x07 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12X\x0A\x06labels\x18\x08 \x03(\x0B2C.google.cloud.security.privateca.v1.CertificateTemplate.LabelsEntryB\x03\xE0A\x01\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:\x87\x01\xEAA\x83\x01\x0A,privateca.googleapis.com/CertificateTemplate\x12Sprojects/{project}/locations/{location}/certificateTemplates/{certificate_template}\"\xCE\x06\x0A\x0EX509Parameters\x12D\x0A\x09key_usage\x18\x01 \x01(\x0B2,.google.cloud.security.privateca.v1.KeyUsageB\x03\xE0A\x01\x12U\x0A\x0Aca_options\x18\x02 \x01(\x0B2<.google.cloud.security.privateca.v1.X509Parameters.CaOptionsB\x03\xE0A\x01\x12E\x0A\x0Apolicy_ids\x18\x03 \x03(\x0B2,.google.cloud.security.privateca.v1.ObjectIdB\x03\xE0A\x01\x12\x1D\x0A\x10aia_ocsp_servers\x18\x04 \x03(\x09B\x03\xE0A\x01\x12a\x0A\x10name_constraints\x18\x06 \x01(\x0B2B.google.cloud.security.privateca.v1.X509Parameters.NameConstraintsB\x03\xE0A\x01\x12U\x0A\x15additional_extensions\x18\x05 \x03(\x0B21.google.cloud.security.privateca.v1.X509ExtensionB\x03\xE0A\x01\x1As\x0A\x09CaOptions\x12\x17\x0A\x05is_ca\x18\x01 \x01(\x08B\x03\xE0A\x01H\x00\x88\x01\x01\x12(\x0A\x16max_issuer_path_length\x18\x02 \x01(\x05B\x03\xE0A\x01H\x01\x88\x01\x01B\x08\x0A\x06_is_caB\x19\x0A\x17_max_issuer_path_length\x1A\x89\x02\x0A\x0FNameConstraints\x12\x10\x0A\x08critical\x18\x01 \x01(\x08\x12\x1B\x0A\x13permitted_dns_names\x18\x02 \x03(\x09\x12\x1A\x0A\x12excluded_dns_names\x18\x03 \x03(\x09\x12\x1B\x0A\x13permitted_ip_ranges\x18\x04 \x03(\x09\x12\x1A\x0A\x12excluded_ip_ranges\x18\x05 \x03(\x09\x12!\x0A\x19permitted_email_addresses\x18\x06 \x03(\x09\x12 \x0A\x18excluded_email_addresses\x18\x07 \x03(\x09\x12\x16\x0A\x0Epermitted_uris\x18\x08 \x03(\x09\x12\x15\x0A\x0Dexcluded_uris\x18\x09 \x03(\x09\"\xA9\x02\x0A\x11SubordinateConfig\x12V\x0A\x15certificate_authority\x18\x01 \x01(\x09B5\xE0A\x02\xFAA/\x0A-privateca.googleapis.com/CertificateAuthorityH\x00\x12m\x0A\x10pem_issuer_chain\x18\x02 \x01(\x0B2L.google.cloud.security.privateca.v1.SubordinateConfig.SubordinateConfigChainB\x03\xE0A\x02H\x00\x1A7\x0A\x16SubordinateConfigChain\x12\x1D\x0A\x10pem_certificates\x18\x01 \x03(\x09B\x03\xE0A\x02B\x14\x0A\x12subordinate_config\"\x9D\x01\x0A\x09PublicKey\x12\x10\x0A\x03key\x18\x01 \x01(\x0CB\x03\xE0A\x02\x12L\x0A\x06format\x18\x02 \x01(\x0E27.google.cloud.security.privateca.v1.PublicKey.KeyFormatB\x03\xE0A\x02\"0\x0A\x09KeyFormat\x12\x1A\x0A\x16KEY_FORMAT_UNSPECIFIED\x10\x00\x12\x07\x0A\x03PEM\x10\x01\"\xAC\x04\x0A\x11CertificateConfig\x12`\x0A\x0Esubject_config\x18\x01 \x01(\x0B2C.google.cloud.security.privateca.v1.CertificateConfig.SubjectConfigB\x03\xE0A\x02\x12L\x0A\x0Bx509_config\x18\x02 \x01(\x0B22.google.cloud.security.privateca.v1.X509ParametersB\x03\xE0A\x02\x12F\x0A\x0Apublic_key\x18\x03 \x01(\x0B2-.google.cloud.security.privateca.v1.PublicKeyB\x03\xE0A\x01\x12X\x0A\x0Esubject_key_id\x18\x04 \x01(\x0B2;.google.cloud.security.privateca.v1.CertificateConfig.KeyIdB\x03\xE0A\x01\x1A\xA6\x01\x0A\x0DSubjectConfig\x12A\x0A\x07subject\x18\x01 \x01(\x0B2+.google.cloud.security.privateca.v1.SubjectB\x03\xE0A\x01\x12R\x0A\x10subject_alt_name\x18\x02 \x01(\x0B23.google.cloud.security.privateca.v1.SubjectAltNamesB\x03\xE0A\x01\x1A\x1C\x0A\x05KeyId\x12\x13\x0A\x06key_id\x18\x01 \x01(\x09B\x03\xE0A\x02\"\xC1\x08\x0A\x16CertificateDescription\x12j\x0A\x13subject_description\x18\x01 \x01(\x0B2M.google.cloud.security.privateca.v1.CertificateDescription.SubjectDescription\x12L\x0A\x10x509_description\x18\x02 \x01(\x0B22.google.cloud.security.privateca.v1.X509Parameters\x12A\x0A\x0Apublic_key\x18\x03 \x01(\x0B2-.google.cloud.security.privateca.v1.PublicKey\x12X\x0A\x0Esubject_key_id\x18\x04 \x01(\x0B2@.google.cloud.security.privateca.v1.CertificateDescription.KeyId\x12Z\x0A\x10authority_key_id\x18\x05 \x01(\x0B2@.google.cloud.security.privateca.v1.CertificateDescription.KeyId\x12\x1F\x0A\x17crl_distribution_points\x18\x06 \x03(\x09\x12\$\x0A\x1Caia_issuing_certificate_urls\x18\x07 \x03(\x09\x12k\x0A\x10cert_fingerprint\x18\x08 \x01(\x0B2Q.google.cloud.security.privateca.v1.CertificateDescription.CertificateFingerprint\x12\x1E\x0A\x16tbs_certificate_digest\x18\x09 \x01(\x09\x1A\xD2\x02\x0A\x12SubjectDescription\x12<\x0A\x07subject\x18\x01 \x01(\x0B2+.google.cloud.security.privateca.v1.Subject\x12M\x0A\x10subject_alt_name\x18\x02 \x01(\x0B23.google.cloud.security.privateca.v1.SubjectAltNames\x12\x19\x0A\x11hex_serial_number\x18\x03 \x01(\x09\x12+\x0A\x08lifetime\x18\x04 \x01(\x0B2\x19.google.protobuf.Duration\x123\x0A\x0Fnot_before_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.Timestamp\x122\x0A\x0Enot_after_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.Timestamp\x1A\x1C\x0A\x05KeyId\x12\x13\x0A\x06key_id\x18\x01 \x01(\x09B\x03\xE0A\x01\x1A-\x0A\x16CertificateFingerprint\x12\x13\x0A\x0Bsha256_hash\x18\x01 \x01(\x09\"'\x0A\x08ObjectId\x12\x1B\x0A\x0Eobject_id_path\x18\x01 \x03(\x05B\x03\xE0A\x02\"\x80\x01\x0A\x0DX509Extension\x12D\x0A\x09object_id\x18\x01 \x01(\x0B2,.google.cloud.security.privateca.v1.ObjectIdB\x03\xE0A\x02\x12\x15\x0A\x08critical\x18\x02 \x01(\x08B\x03\xE0A\x01\x12\x12\x0A\x05value\x18\x03 \x01(\x0CB\x03\xE0A\x02\"\xA2\x05\x0A\x08KeyUsage\x12T\x0A\x0Ebase_key_usage\x18\x01 \x01(\x0B2<.google.cloud.security.privateca.v1.KeyUsage.KeyUsageOptions\x12`\x0A\x12extended_key_usage\x18\x02 \x01(\x0B2D.google.cloud.security.privateca.v1.KeyUsage.ExtendedKeyUsageOptions\x12Q\x0A\x1Bunknown_extended_key_usages\x18\x03 \x03(\x0B2,.google.cloud.security.privateca.v1.ObjectId\x1A\xE7\x01\x0A\x0FKeyUsageOptions\x12\x19\x0A\x11digital_signature\x18\x01 \x01(\x08\x12\x1A\x0A\x12content_commitment\x18\x02 \x01(\x08\x12\x18\x0A\x10key_encipherment\x18\x03 \x01(\x08\x12\x19\x0A\x11data_encipherment\x18\x04 \x01(\x08\x12\x15\x0A\x0Dkey_agreement\x18\x05 \x01(\x08\x12\x11\x0A\x09cert_sign\x18\x06 \x01(\x08\x12\x10\x0A\x08crl_sign\x18\x07 \x01(\x08\x12\x15\x0A\x0Dencipher_only\x18\x08 \x01(\x08\x12\x15\x0A\x0Ddecipher_only\x18\x09 \x01(\x08\x1A\xA0\x01\x0A\x17ExtendedKeyUsageOptions\x12\x13\x0A\x0Bserver_auth\x18\x01 \x01(\x08\x12\x13\x0A\x0Bclient_auth\x18\x02 \x01(\x08\x12\x14\x0A\x0Ccode_signing\x18\x03 \x01(\x08\x12\x18\x0A\x10email_protection\x18\x04 \x01(\x08\x12\x15\x0A\x0Dtime_stamping\x18\x05 \x01(\x08\x12\x14\x0A\x0Cocsp_signing\x18\x06 \x01(\x08\"\xBE\x01\x0A\x15AttributeTypeAndValue\x12A\x0A\x04type\x18\x01 \x01(\x0E21.google.cloud.security.privateca.v1.AttributeTypeH\x00\x12A\x0A\x09object_id\x18\x02 \x01(\x0B2,.google.cloud.security.privateca.v1.ObjectIdH\x00\x12\x0D\x0A\x05value\x18\x03 \x01(\x09B\x10\x0A\x0Eattribute_type\"j\x0A\x19RelativeDistinguishedName\x12M\x0A\x0Aattributes\x18\x01 \x03(\x0B29.google.cloud.security.privateca.v1.AttributeTypeAndValue\"\x8D\x02\x0A\x07Subject\x12\x13\x0A\x0Bcommon_name\x18\x01 \x01(\x09\x12\x14\x0A\x0Ccountry_code\x18\x02 \x01(\x09\x12\x14\x0A\x0Corganization\x18\x03 \x01(\x09\x12\x1B\x0A\x13organizational_unit\x18\x04 \x01(\x09\x12\x10\x0A\x08locality\x18\x05 \x01(\x09\x12\x10\x0A\x08province\x18\x06 \x01(\x09\x12\x16\x0A\x0Estreet_address\x18\x07 \x01(\x09\x12\x13\x0A\x0Bpostal_code\x18\x08 \x01(\x09\x12S\x0A\x0Crdn_sequence\x18\x09 \x03(\x0B2=.google.cloud.security.privateca.v1.RelativeDistinguishedName\"\xA9\x01\x0A\x0FSubjectAltNames\x12\x11\x0A\x09dns_names\x18\x01 \x03(\x09\x12\x0C\x0A\x04uris\x18\x02 \x03(\x09\x12\x17\x0A\x0Femail_addresses\x18\x03 \x03(\x09\x12\x14\x0A\x0Cip_addresses\x18\x04 \x03(\x09\x12F\x0A\x0Bcustom_sans\x18\x05 \x03(\x0B21.google.cloud.security.privateca.v1.X509Extension\"\xFA\x01\x0A\x1ECertificateIdentityConstraints\x12.\x0A\x0Ecel_expression\x18\x01 \x01(\x0B2\x11.google.type.ExprB\x03\xE0A\x01\x12+\x0A\x19allow_subject_passthrough\x18\x02 \x01(\x08B\x03\xE0A\x02H\x00\x88\x01\x01\x125\x0A#allow_subject_alt_names_passthrough\x18\x03 \x01(\x08B\x03\xE0A\x02H\x01\x88\x01\x01B\x1C\x0A\x1A_allow_subject_passthroughB&\x0A\$_allow_subject_alt_names_passthrough\"\xB4\x03\x0A\x1FCertificateExtensionConstraints\x12|\x0A\x10known_extensions\x18\x01 \x03(\x0E2].google.cloud.security.privateca.v1.CertificateExtensionConstraints.KnownCertificateExtensionB\x03\xE0A\x01\x12P\x0A\x15additional_extensions\x18\x02 \x03(\x0B2,.google.cloud.security.privateca.v1.ObjectIdB\x03\xE0A\x01\"\xC0\x01\x0A\x19KnownCertificateExtension\x12+\x0A'KNOWN_CERTIFICATE_EXTENSION_UNSPECIFIED\x10\x00\x12\x12\x0A\x0EBASE_KEY_USAGE\x10\x01\x12\x16\x0A\x12EXTENDED_KEY_USAGE\x10\x02\x12\x0E\x0A\x0ACA_OPTIONS\x10\x03\x12\x0E\x0A\x0APOLICY_IDS\x10\x04\x12\x14\x0A\x10AIA_OCSP_SERVERS\x10\x05\x12\x14\x0A\x10NAME_CONSTRAINTS\x10\x06*\xBE\x01\x0A\x0DAttributeType\x12\x1E\x0A\x1AATTRIBUTE_TYPE_UNSPECIFIED\x10\x00\x12\x0F\x0A\x0BCOMMON_NAME\x10\x01\x12\x10\x0A\x0CCOUNTRY_CODE\x10\x02\x12\x10\x0A\x0CORGANIZATION\x10\x03\x12\x17\x0A\x13ORGANIZATIONAL_UNIT\x10\x04\x12\x0C\x0A\x08LOCALITY\x10\x05\x12\x0C\x0A\x08PROVINCE\x10\x06\x12\x12\x0A\x0ESTREET_ADDRESS\x10\x07\x12\x0F\x0A\x0BPOSTAL_CODE\x10\x08*\x87\x02\x0A\x10RevocationReason\x12!\x0A\x1DREVOCATION_REASON_UNSPECIFIED\x10\x00\x12\x12\x0A\x0EKEY_COMPROMISE\x10\x01\x12\$\x0A CERTIFICATE_AUTHORITY_COMPROMISE\x10\x02\x12\x17\x0A\x13AFFILIATION_CHANGED\x10\x03\x12\x0E\x0A\x0ASUPERSEDED\x10\x04\x12\x1A\x0A\x16CESSATION_OF_OPERATION\x10\x05\x12\x14\x0A\x10CERTIFICATE_HOLD\x10\x06\x12\x17\x0A\x13PRIVILEGE_WITHDRAWN\x10\x07\x12\"\x0A\x1EATTRIBUTE_AUTHORITY_COMPROMISE\x10\x08*o\x0A\x12SubjectRequestMode\x12\$\x0A SUBJECT_REQUEST_MODE_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07DEFAULT\x10\x01\x12\x10\x0A\x0CRDN_SEQUENCE\x10\x03\x12\x14\x0A\x10REFLECTED_SPIFFE\x10\x02B\xFC\x01\x0A&com.google.cloud.security.privateca.v1B\x17PrivateCaResourcesProtoP\x01ZDcloud.google.com/go/security/privateca/apiv1/privatecapb;privatecapb\xAA\x02\"Google.Cloud.Security.PrivateCA.V1\xCA\x02\"Google\\Cloud\\Security\\PrivateCA\\V1\xEA\x02&Google::Cloud::Security::PrivateCA::V1b\x06proto3" + "\x0A\xB7n\x0A2google/cloud/security/privateca/v1/resources.proto\x12\"google.cloud.security.privateca.v1\x1A\x19google/api/resource.proto\x1A\x1Egoogle/protobuf/duration.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\x1A\x16google/type/expr.proto\"\x86\x12\x0A\x14CertificateAuthority\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12S\x0A\x04type\x18\x02 \x01(\x0E2=.google.cloud.security.privateca.v1.CertificateAuthority.TypeB\x06\xE0A\x02\xE0A\x05\x12M\x0A\x06config\x18\x03 \x01(\x0B25.google.cloud.security.privateca.v1.CertificateConfigB\x06\xE0A\x02\xE0A\x05\x123\x0A\x08lifetime\x18\x04 \x01(\x0B2\x19.google.protobuf.DurationB\x06\xE0A\x02\xE0A\x05\x12a\x0A\x08key_spec\x18\x05 \x01(\x0B2G.google.cloud.security.privateca.v1.CertificateAuthority.KeyVersionSpecB\x06\xE0A\x02\xE0A\x05\x12V\x0A\x12subordinate_config\x18\x06 \x01(\x0B25.google.cloud.security.privateca.v1.SubordinateConfigB\x03\xE0A\x01\x12B\x0A\x04tier\x18\x07 \x01(\x0E2/.google.cloud.security.privateca.v1.CaPool.TierB\x03\xE0A\x03\x12R\x0A\x05state\x18\x08 \x01(\x0E2>.google.cloud.security.privateca.v1.CertificateAuthority.StateB\x03\xE0A\x03\x12 \x0A\x13pem_ca_certificates\x18\x09 \x03(\x09B\x03\xE0A\x03\x12d\x0A\x1Bca_certificate_descriptions\x18\x0A \x03(\x0B2:.google.cloud.security.privateca.v1.CertificateDescriptionB\x03\xE0A\x03\x12\x17\x0A\x0Agcs_bucket\x18\x0B \x01(\x09B\x03\xE0A\x05\x12]\x0A\x0Baccess_urls\x18\x0C \x01(\x0B2C.google.cloud.security.privateca.v1.CertificateAuthority.AccessUrlsB\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x0D \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x0E \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bdelete_time\x18\x0F \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bexpire_time\x18\x10 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12Y\x0A\x06labels\x18\x11 \x03(\x0B2D.google.cloud.security.privateca.v1.CertificateAuthority.LabelsEntryB\x03\xE0A\x01\x12u\x0A\x18user_defined_access_urls\x18\x12 \x01(\x0B2N.google.cloud.security.privateca.v1.CertificateAuthority.UserDefinedAccessUrlsB\x03\xE0A\x01\x12\x1A\x0A\x0Dsatisfies_pzs\x18\x13 \x01(\x08B\x03\xE0A\x03\x12\x1A\x0A\x0Dsatisfies_pzi\x18\x14 \x01(\x08B\x03\xE0A\x03\x1AH\x0A\x0AAccessUrls\x12!\x0A\x19ca_certificate_access_url\x18\x01 \x01(\x09\x12\x17\x0A\x0Fcrl_access_urls\x18\x02 \x03(\x09\x1A\xA0\x01\x0A\x0EKeyVersionSpec\x12\x1F\x0A\x15cloud_kms_key_version\x18\x01 \x01(\x09H\x00\x12_\x0A\x09algorithm\x18\x02 \x01(\x0E2J.google.cloud.security.privateca.v1.CertificateAuthority.SignHashAlgorithmH\x00B\x0C\x0A\x0AKeyVersion\x1A`\x0A\x15UserDefinedAccessUrls\x12)\x0A\x1Caia_issuing_certificate_urls\x18\x01 \x03(\x09B\x03\xE0A\x01\x12\x1C\x0A\x0Fcrl_access_urls\x18\x02 \x03(\x09B\x03\xE0A\x01\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\">\x0A\x04Type\x12\x14\x0A\x10TYPE_UNSPECIFIED\x10\x00\x12\x0F\x0A\x0BSELF_SIGNED\x10\x01\x12\x0F\x0A\x0BSUBORDINATE\x10\x02\"p\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07ENABLED\x10\x01\x12\x0C\x0A\x08DISABLED\x10\x02\x12\x0A\x0A\x06STAGED\x10\x03\x12\x1C\x0A\x18AWAITING_USER_ACTIVATION\x10\x04\x12\x0B\x0A\x07DELETED\x10\x05\"\xFC\x01\x0A\x11SignHashAlgorithm\x12#\x0A\x1FSIGN_HASH_ALGORITHM_UNSPECIFIED\x10\x00\x12\x17\x0A\x13RSA_PSS_2048_SHA256\x10\x01\x12\x17\x0A\x13RSA_PSS_3072_SHA256\x10\x02\x12\x17\x0A\x13RSA_PSS_4096_SHA256\x10\x03\x12\x19\x0A\x15RSA_PKCS1_2048_SHA256\x10\x06\x12\x19\x0A\x15RSA_PKCS1_3072_SHA256\x10\x07\x12\x19\x0A\x15RSA_PKCS1_4096_SHA256\x10\x08\x12\x12\x0A\x0EEC_P256_SHA256\x10\x04\x12\x12\x0A\x0EEC_P384_SHA384\x10\x05:\x9D\x01\xEAA\x99\x01\x0A-privateca.googleapis.com/CertificateAuthority\x12hprojects/{project}/locations/{location}/caPools/{ca_pool}/certificateAuthorities/{certificate_authority}\"\xE6\x11\x0A\x06CaPool\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12E\x0A\x04tier\x18\x02 \x01(\x0E2/.google.cloud.security.privateca.v1.CaPool.TierB\x06\xE0A\x02\xE0A\x05\x12W\x0A\x0Fissuance_policy\x18\x03 \x01(\x0B29.google.cloud.security.privateca.v1.CaPool.IssuancePolicyB\x03\xE0A\x01\x12]\x0A\x12publishing_options\x18\x04 \x01(\x0B2<.google.cloud.security.privateca.v1.CaPool.PublishingOptionsB\x03\xE0A\x01\x12P\x0A\x0Fencryption_spec\x18\x08 \x01(\x0B22.google.cloud.security.privateca.v1.EncryptionSpecB\x03\xE0A\x01\x12K\x0A\x06labels\x18\x05 \x03(\x0B26.google.cloud.security.privateca.v1.CaPool.LabelsEntryB\x03\xE0A\x01\x1A\xFB\x01\x0A\x11PublishingOptions\x12\x1C\x0A\x0Fpublish_ca_cert\x18\x01 \x01(\x08B\x03\xE0A\x01\x12\x18\x0A\x0Bpublish_crl\x18\x02 \x01(\x08B\x03\xE0A\x01\x12i\x0A\x0Fencoding_format\x18\x03 \x01(\x0E2K.google.cloud.security.privateca.v1.CaPool.PublishingOptions.EncodingFormatB\x03\xE0A\x01\"C\x0A\x0EEncodingFormat\x12\x1F\x0A\x1BENCODING_FORMAT_UNSPECIFIED\x10\x00\x12\x07\x0A\x03PEM\x10\x01\x12\x07\x0A\x03DER\x10\x02\x1A\xE2\x0A\x0A\x0EIssuancePolicy\x12h\x0A\x11allowed_key_types\x18\x01 \x03(\x0B2H.google.cloud.security.privateca.v1.CaPool.IssuancePolicy.AllowedKeyTypeB\x03\xE0A\x01\x129\x0A\x11backdate_duration\x18\x07 \x01(\x0B2\x19.google.protobuf.DurationB\x03\xE0A\x01\x126\x0A)allow_requester_specified_not_before_time\x18\x08 \x01(\x08B\x03\xE0A\x01\x128\x0A\x10maximum_lifetime\x18\x02 \x01(\x0B2\x19.google.protobuf.DurationB\x03\xE0A\x01\x12l\x0A\x16allowed_issuance_modes\x18\x03 \x01(\x0B2G.google.cloud.security.privateca.v1.CaPool.IssuancePolicy.IssuanceModesB\x03\xE0A\x01\x12P\x0A\x0Fbaseline_values\x18\x04 \x01(\x0B22.google.cloud.security.privateca.v1.X509ParametersB\x03\xE0A\x01\x12e\x0A\x14identity_constraints\x18\x05 \x01(\x0B2B.google.cloud.security.privateca.v1.CertificateIdentityConstraintsB\x03\xE0A\x01\x12h\x0A\x16passthrough_extensions\x18\x06 \x01(\x0B2C.google.cloud.security.privateca.v1.CertificateExtensionConstraintsB\x03\xE0A\x01\x1A\xC5\x04\x0A\x0EAllowedKeyType\x12b\x0A\x03rsa\x18\x01 \x01(\x0B2S.google.cloud.security.privateca.v1.CaPool.IssuancePolicy.AllowedKeyType.RsaKeyTypeH\x00\x12l\x0A\x0Eelliptic_curve\x18\x02 \x01(\x0B2R.google.cloud.security.privateca.v1.CaPool.IssuancePolicy.AllowedKeyType.EcKeyTypeH\x00\x1AJ\x0A\x0ARsaKeyType\x12\x1D\x0A\x10min_modulus_size\x18\x01 \x01(\x03B\x03\xE0A\x01\x12\x1D\x0A\x10max_modulus_size\x18\x02 \x01(\x03B\x03\xE0A\x01\x1A\x88\x02\x0A\x09EcKeyType\x12\x89\x01\x0A\x13signature_algorithm\x18\x01 \x01(\x0E2g.google.cloud.security.privateca.v1.CaPool.IssuancePolicy.AllowedKeyType.EcKeyType.EcSignatureAlgorithmB\x03\xE0A\x01\"o\x0A\x14EcSignatureAlgorithm\x12&\x0A\"EC_SIGNATURE_ALGORITHM_UNSPECIFIED\x10\x00\x12\x0E\x0A\x0AECDSA_P256\x10\x01\x12\x0E\x0A\x0AECDSA_P384\x10\x02\x12\x0F\x0A\x0BEDDSA_25519\x10\x03B\x0A\x0A\x08key_type\x1A`\x0A\x0DIssuanceModes\x12%\x0A\x18allow_csr_based_issuance\x18\x01 \x01(\x08B\x03\xE0A\x01\x12(\x0A\x1Ballow_config_based_issuance\x18\x02 \x01(\x08B\x03\xE0A\x01\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"8\x0A\x04Tier\x12\x14\x0A\x10TIER_UNSPECIFIED\x10\x00\x12\x0E\x0A\x0AENTERPRISE\x10\x01\x12\x0A\x0A\x06DEVOPS\x10\x02:_\xEAA\\\x0A\x1Fprivateca.googleapis.com/CaPool\x129projects/{project}/locations/{location}/caPools/{ca_pool}\"'\x0A\x0EEncryptionSpec\x12\x15\x0A\x0Dcloud_kms_key\x18\x01 \x01(\x09\"\xBC\x08\x0A\x19CertificateRevocationList\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12\x1C\x0A\x0Fsequence_number\x18\x02 \x01(\x03B\x03\xE0A\x03\x12s\x0A\x14revoked_certificates\x18\x03 \x03(\x0B2P.google.cloud.security.privateca.v1.CertificateRevocationList.RevokedCertificateB\x03\xE0A\x03\x12\x14\x0A\x07pem_crl\x18\x04 \x01(\x09B\x03\xE0A\x03\x12\x17\x0A\x0Aaccess_url\x18\x05 \x01(\x09B\x03\xE0A\x03\x12W\x0A\x05state\x18\x06 \x01(\x0E2C.google.cloud.security.privateca.v1.CertificateRevocationList.StateB\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x07 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x08 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x18\x0A\x0Brevision_id\x18\x09 \x01(\x09B\x03\xE0A\x03\x12^\x0A\x06labels\x18\x0A \x03(\x0B2I.google.cloud.security.privateca.v1.CertificateRevocationList.LabelsEntryB\x03\xE0A\x01\x1A\xC0\x01\x0A\x12RevokedCertificate\x12>\x0A\x0Bcertificate\x18\x01 \x01(\x09B)\xFAA&\x0A\$privateca.googleapis.com/Certificate\x12\x19\x0A\x11hex_serial_number\x18\x02 \x01(\x09\x12O\x0A\x11revocation_reason\x18\x03 \x01(\x0E24.google.cloud.security.privateca.v1.RevocationReason\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\":\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0A\x0A\x06ACTIVE\x10\x01\x12\x0E\x0A\x0ASUPERSEDED\x10\x02:\xDC\x01\xEAA\xD8\x01\x0A2privateca.googleapis.com/CertificateRevocationList\x12\xA1\x01projects/{project}/locations/{location}/caPools/{ca_pool}/certificateAuthorities/{certificate_authority}/certificateRevocationLists/{certificate_revocation_list}\"\xAA\x0A\x0A\x0BCertificate\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12\x16\x0A\x07pem_csr\x18\x02 \x01(\x09B\x03\xE0A\x05H\x00\x12L\x0A\x06config\x18\x03 \x01(\x0B25.google.cloud.security.privateca.v1.CertificateConfigB\x03\xE0A\x05H\x00\x12[\x0A\x1Cissuer_certificate_authority\x18\x04 \x01(\x09B5\xE0A\x03\xFAA/\x0A-privateca.googleapis.com/CertificateAuthority\x123\x0A\x08lifetime\x18\x05 \x01(\x0B2\x19.google.protobuf.DurationB\x06\xE0A\x02\xE0A\x05\x12R\x0A\x14certificate_template\x18\x06 \x01(\x09B4\xE0A\x05\xFAA.\x0A,privateca.googleapis.com/CertificateTemplate\x12Q\x0A\x0Csubject_mode\x18\x07 \x01(\x0E26.google.cloud.security.privateca.v1.SubjectRequestModeB\x03\xE0A\x05\x12b\x0A\x12revocation_details\x18\x08 \x01(\x0B2A.google.cloud.security.privateca.v1.Certificate.RevocationDetailsB\x03\xE0A\x03\x12\x1C\x0A\x0Fpem_certificate\x18\x09 \x01(\x09B\x03\xE0A\x03\x12`\x0A\x17certificate_description\x18\x0A \x01(\x0B2:.google.cloud.security.privateca.v1.CertificateDescriptionB\x03\xE0A\x03\x12\"\x0A\x15pem_certificate_chain\x18\x0B \x03(\x09B\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x0C \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x0D \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12P\x0A\x06labels\x18\x0E \x03(\x0B2;.google.cloud.security.privateca.v1.Certificate.LabelsEntryB\x03\xE0A\x01\x12B\x0A\x19requested_not_before_time\x18\x0F \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x01\x1A\x98\x01\x0A\x11RevocationDetails\x12N\x0A\x10revocation_state\x18\x01 \x01(\x0E24.google.cloud.security.privateca.v1.RevocationReason\x123\x0A\x0Frevocation_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.Timestamp\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:\x7F\xEAA|\x0A\$privateca.googleapis.com/Certificate\x12Tprojects/{project}/locations/{location}/caPools/{ca_pool}/certificates/{certificate}B\x14\x0A\x12certificate_config\"\xA0\x06\x0A\x13CertificateTemplate\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x128\x0A\x10maximum_lifetime\x18\x09 \x01(\x0B2\x19.google.protobuf.DurationB\x03\xE0A\x01\x12R\x0A\x11predefined_values\x18\x02 \x01(\x0B22.google.cloud.security.privateca.v1.X509ParametersB\x03\xE0A\x01\x12e\x0A\x14identity_constraints\x18\x03 \x01(\x0B2B.google.cloud.security.privateca.v1.CertificateIdentityConstraintsB\x03\xE0A\x01\x12h\x0A\x16passthrough_extensions\x18\x04 \x01(\x0B2C.google.cloud.security.privateca.v1.CertificateExtensionConstraintsB\x03\xE0A\x01\x12\x18\x0A\x0Bdescription\x18\x05 \x01(\x09B\x03\xE0A\x01\x124\x0A\x0Bcreate_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x07 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12X\x0A\x06labels\x18\x08 \x03(\x0B2C.google.cloud.security.privateca.v1.CertificateTemplate.LabelsEntryB\x03\xE0A\x01\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01:\x87\x01\xEAA\x83\x01\x0A,privateca.googleapis.com/CertificateTemplate\x12Sprojects/{project}/locations/{location}/certificateTemplates/{certificate_template}\"\xCE\x06\x0A\x0EX509Parameters\x12D\x0A\x09key_usage\x18\x01 \x01(\x0B2,.google.cloud.security.privateca.v1.KeyUsageB\x03\xE0A\x01\x12U\x0A\x0Aca_options\x18\x02 \x01(\x0B2<.google.cloud.security.privateca.v1.X509Parameters.CaOptionsB\x03\xE0A\x01\x12E\x0A\x0Apolicy_ids\x18\x03 \x03(\x0B2,.google.cloud.security.privateca.v1.ObjectIdB\x03\xE0A\x01\x12\x1D\x0A\x10aia_ocsp_servers\x18\x04 \x03(\x09B\x03\xE0A\x01\x12a\x0A\x10name_constraints\x18\x06 \x01(\x0B2B.google.cloud.security.privateca.v1.X509Parameters.NameConstraintsB\x03\xE0A\x01\x12U\x0A\x15additional_extensions\x18\x05 \x03(\x0B21.google.cloud.security.privateca.v1.X509ExtensionB\x03\xE0A\x01\x1As\x0A\x09CaOptions\x12\x17\x0A\x05is_ca\x18\x01 \x01(\x08B\x03\xE0A\x01H\x00\x88\x01\x01\x12(\x0A\x16max_issuer_path_length\x18\x02 \x01(\x05B\x03\xE0A\x01H\x01\x88\x01\x01B\x08\x0A\x06_is_caB\x19\x0A\x17_max_issuer_path_length\x1A\x89\x02\x0A\x0FNameConstraints\x12\x10\x0A\x08critical\x18\x01 \x01(\x08\x12\x1B\x0A\x13permitted_dns_names\x18\x02 \x03(\x09\x12\x1A\x0A\x12excluded_dns_names\x18\x03 \x03(\x09\x12\x1B\x0A\x13permitted_ip_ranges\x18\x04 \x03(\x09\x12\x1A\x0A\x12excluded_ip_ranges\x18\x05 \x03(\x09\x12!\x0A\x19permitted_email_addresses\x18\x06 \x03(\x09\x12 \x0A\x18excluded_email_addresses\x18\x07 \x03(\x09\x12\x16\x0A\x0Epermitted_uris\x18\x08 \x03(\x09\x12\x15\x0A\x0Dexcluded_uris\x18\x09 \x03(\x09\"\xA9\x02\x0A\x11SubordinateConfig\x12V\x0A\x15certificate_authority\x18\x01 \x01(\x09B5\xE0A\x02\xFAA/\x0A-privateca.googleapis.com/CertificateAuthorityH\x00\x12m\x0A\x10pem_issuer_chain\x18\x02 \x01(\x0B2L.google.cloud.security.privateca.v1.SubordinateConfig.SubordinateConfigChainB\x03\xE0A\x02H\x00\x1A7\x0A\x16SubordinateConfigChain\x12\x1D\x0A\x10pem_certificates\x18\x01 \x03(\x09B\x03\xE0A\x02B\x14\x0A\x12subordinate_config\"\x9D\x01\x0A\x09PublicKey\x12\x10\x0A\x03key\x18\x01 \x01(\x0CB\x03\xE0A\x02\x12L\x0A\x06format\x18\x02 \x01(\x0E27.google.cloud.security.privateca.v1.PublicKey.KeyFormatB\x03\xE0A\x02\"0\x0A\x09KeyFormat\x12\x1A\x0A\x16KEY_FORMAT_UNSPECIFIED\x10\x00\x12\x07\x0A\x03PEM\x10\x01\"\xAC\x04\x0A\x11CertificateConfig\x12`\x0A\x0Esubject_config\x18\x01 \x01(\x0B2C.google.cloud.security.privateca.v1.CertificateConfig.SubjectConfigB\x03\xE0A\x02\x12L\x0A\x0Bx509_config\x18\x02 \x01(\x0B22.google.cloud.security.privateca.v1.X509ParametersB\x03\xE0A\x02\x12F\x0A\x0Apublic_key\x18\x03 \x01(\x0B2-.google.cloud.security.privateca.v1.PublicKeyB\x03\xE0A\x01\x12X\x0A\x0Esubject_key_id\x18\x04 \x01(\x0B2;.google.cloud.security.privateca.v1.CertificateConfig.KeyIdB\x03\xE0A\x01\x1A\xA6\x01\x0A\x0DSubjectConfig\x12A\x0A\x07subject\x18\x01 \x01(\x0B2+.google.cloud.security.privateca.v1.SubjectB\x03\xE0A\x01\x12R\x0A\x10subject_alt_name\x18\x02 \x01(\x0B23.google.cloud.security.privateca.v1.SubjectAltNamesB\x03\xE0A\x01\x1A\x1C\x0A\x05KeyId\x12\x13\x0A\x06key_id\x18\x01 \x01(\x09B\x03\xE0A\x02\"\xC1\x08\x0A\x16CertificateDescription\x12j\x0A\x13subject_description\x18\x01 \x01(\x0B2M.google.cloud.security.privateca.v1.CertificateDescription.SubjectDescription\x12L\x0A\x10x509_description\x18\x02 \x01(\x0B22.google.cloud.security.privateca.v1.X509Parameters\x12A\x0A\x0Apublic_key\x18\x03 \x01(\x0B2-.google.cloud.security.privateca.v1.PublicKey\x12X\x0A\x0Esubject_key_id\x18\x04 \x01(\x0B2@.google.cloud.security.privateca.v1.CertificateDescription.KeyId\x12Z\x0A\x10authority_key_id\x18\x05 \x01(\x0B2@.google.cloud.security.privateca.v1.CertificateDescription.KeyId\x12\x1F\x0A\x17crl_distribution_points\x18\x06 \x03(\x09\x12\$\x0A\x1Caia_issuing_certificate_urls\x18\x07 \x03(\x09\x12k\x0A\x10cert_fingerprint\x18\x08 \x01(\x0B2Q.google.cloud.security.privateca.v1.CertificateDescription.CertificateFingerprint\x12\x1E\x0A\x16tbs_certificate_digest\x18\x09 \x01(\x09\x1A\xD2\x02\x0A\x12SubjectDescription\x12<\x0A\x07subject\x18\x01 \x01(\x0B2+.google.cloud.security.privateca.v1.Subject\x12M\x0A\x10subject_alt_name\x18\x02 \x01(\x0B23.google.cloud.security.privateca.v1.SubjectAltNames\x12\x19\x0A\x11hex_serial_number\x18\x03 \x01(\x09\x12+\x0A\x08lifetime\x18\x04 \x01(\x0B2\x19.google.protobuf.Duration\x123\x0A\x0Fnot_before_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.Timestamp\x122\x0A\x0Enot_after_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.Timestamp\x1A\x1C\x0A\x05KeyId\x12\x13\x0A\x06key_id\x18\x01 \x01(\x09B\x03\xE0A\x01\x1A-\x0A\x16CertificateFingerprint\x12\x13\x0A\x0Bsha256_hash\x18\x01 \x01(\x09\"'\x0A\x08ObjectId\x12\x1B\x0A\x0Eobject_id_path\x18\x01 \x03(\x05B\x03\xE0A\x02\"\x80\x01\x0A\x0DX509Extension\x12D\x0A\x09object_id\x18\x01 \x01(\x0B2,.google.cloud.security.privateca.v1.ObjectIdB\x03\xE0A\x02\x12\x15\x0A\x08critical\x18\x02 \x01(\x08B\x03\xE0A\x01\x12\x12\x0A\x05value\x18\x03 \x01(\x0CB\x03\xE0A\x02\"\xA2\x05\x0A\x08KeyUsage\x12T\x0A\x0Ebase_key_usage\x18\x01 \x01(\x0B2<.google.cloud.security.privateca.v1.KeyUsage.KeyUsageOptions\x12`\x0A\x12extended_key_usage\x18\x02 \x01(\x0B2D.google.cloud.security.privateca.v1.KeyUsage.ExtendedKeyUsageOptions\x12Q\x0A\x1Bunknown_extended_key_usages\x18\x03 \x03(\x0B2,.google.cloud.security.privateca.v1.ObjectId\x1A\xE7\x01\x0A\x0FKeyUsageOptions\x12\x19\x0A\x11digital_signature\x18\x01 \x01(\x08\x12\x1A\x0A\x12content_commitment\x18\x02 \x01(\x08\x12\x18\x0A\x10key_encipherment\x18\x03 \x01(\x08\x12\x19\x0A\x11data_encipherment\x18\x04 \x01(\x08\x12\x15\x0A\x0Dkey_agreement\x18\x05 \x01(\x08\x12\x11\x0A\x09cert_sign\x18\x06 \x01(\x08\x12\x10\x0A\x08crl_sign\x18\x07 \x01(\x08\x12\x15\x0A\x0Dencipher_only\x18\x08 \x01(\x08\x12\x15\x0A\x0Ddecipher_only\x18\x09 \x01(\x08\x1A\xA0\x01\x0A\x17ExtendedKeyUsageOptions\x12\x13\x0A\x0Bserver_auth\x18\x01 \x01(\x08\x12\x13\x0A\x0Bclient_auth\x18\x02 \x01(\x08\x12\x14\x0A\x0Ccode_signing\x18\x03 \x01(\x08\x12\x18\x0A\x10email_protection\x18\x04 \x01(\x08\x12\x15\x0A\x0Dtime_stamping\x18\x05 \x01(\x08\x12\x14\x0A\x0Cocsp_signing\x18\x06 \x01(\x08\"\xBE\x01\x0A\x15AttributeTypeAndValue\x12A\x0A\x04type\x18\x01 \x01(\x0E21.google.cloud.security.privateca.v1.AttributeTypeH\x00\x12A\x0A\x09object_id\x18\x02 \x01(\x0B2,.google.cloud.security.privateca.v1.ObjectIdH\x00\x12\x0D\x0A\x05value\x18\x03 \x01(\x09B\x10\x0A\x0Eattribute_type\"j\x0A\x19RelativeDistinguishedName\x12M\x0A\x0Aattributes\x18\x01 \x03(\x0B29.google.cloud.security.privateca.v1.AttributeTypeAndValue\"\x8D\x02\x0A\x07Subject\x12\x13\x0A\x0Bcommon_name\x18\x01 \x01(\x09\x12\x14\x0A\x0Ccountry_code\x18\x02 \x01(\x09\x12\x14\x0A\x0Corganization\x18\x03 \x01(\x09\x12\x1B\x0A\x13organizational_unit\x18\x04 \x01(\x09\x12\x10\x0A\x08locality\x18\x05 \x01(\x09\x12\x10\x0A\x08province\x18\x06 \x01(\x09\x12\x16\x0A\x0Estreet_address\x18\x07 \x01(\x09\x12\x13\x0A\x0Bpostal_code\x18\x08 \x01(\x09\x12S\x0A\x0Crdn_sequence\x18\x09 \x03(\x0B2=.google.cloud.security.privateca.v1.RelativeDistinguishedName\"\xA9\x01\x0A\x0FSubjectAltNames\x12\x11\x0A\x09dns_names\x18\x01 \x03(\x09\x12\x0C\x0A\x04uris\x18\x02 \x03(\x09\x12\x17\x0A\x0Femail_addresses\x18\x03 \x03(\x09\x12\x14\x0A\x0Cip_addresses\x18\x04 \x03(\x09\x12F\x0A\x0Bcustom_sans\x18\x05 \x03(\x0B21.google.cloud.security.privateca.v1.X509Extension\"\xFA\x01\x0A\x1ECertificateIdentityConstraints\x12.\x0A\x0Ecel_expression\x18\x01 \x01(\x0B2\x11.google.type.ExprB\x03\xE0A\x01\x12+\x0A\x19allow_subject_passthrough\x18\x02 \x01(\x08B\x03\xE0A\x02H\x00\x88\x01\x01\x125\x0A#allow_subject_alt_names_passthrough\x18\x03 \x01(\x08B\x03\xE0A\x02H\x01\x88\x01\x01B\x1C\x0A\x1A_allow_subject_passthroughB&\x0A\$_allow_subject_alt_names_passthrough\"\xB4\x03\x0A\x1FCertificateExtensionConstraints\x12|\x0A\x10known_extensions\x18\x01 \x03(\x0E2].google.cloud.security.privateca.v1.CertificateExtensionConstraints.KnownCertificateExtensionB\x03\xE0A\x01\x12P\x0A\x15additional_extensions\x18\x02 \x03(\x0B2,.google.cloud.security.privateca.v1.ObjectIdB\x03\xE0A\x01\"\xC0\x01\x0A\x19KnownCertificateExtension\x12+\x0A'KNOWN_CERTIFICATE_EXTENSION_UNSPECIFIED\x10\x00\x12\x12\x0A\x0EBASE_KEY_USAGE\x10\x01\x12\x16\x0A\x12EXTENDED_KEY_USAGE\x10\x02\x12\x0E\x0A\x0ACA_OPTIONS\x10\x03\x12\x0E\x0A\x0APOLICY_IDS\x10\x04\x12\x14\x0A\x10AIA_OCSP_SERVERS\x10\x05\x12\x14\x0A\x10NAME_CONSTRAINTS\x10\x06*\xBE\x01\x0A\x0DAttributeType\x12\x1E\x0A\x1AATTRIBUTE_TYPE_UNSPECIFIED\x10\x00\x12\x0F\x0A\x0BCOMMON_NAME\x10\x01\x12\x10\x0A\x0CCOUNTRY_CODE\x10\x02\x12\x10\x0A\x0CORGANIZATION\x10\x03\x12\x17\x0A\x13ORGANIZATIONAL_UNIT\x10\x04\x12\x0C\x0A\x08LOCALITY\x10\x05\x12\x0C\x0A\x08PROVINCE\x10\x06\x12\x12\x0A\x0ESTREET_ADDRESS\x10\x07\x12\x0F\x0A\x0BPOSTAL_CODE\x10\x08*\x87\x02\x0A\x10RevocationReason\x12!\x0A\x1DREVOCATION_REASON_UNSPECIFIED\x10\x00\x12\x12\x0A\x0EKEY_COMPROMISE\x10\x01\x12\$\x0A CERTIFICATE_AUTHORITY_COMPROMISE\x10\x02\x12\x17\x0A\x13AFFILIATION_CHANGED\x10\x03\x12\x0E\x0A\x0ASUPERSEDED\x10\x04\x12\x1A\x0A\x16CESSATION_OF_OPERATION\x10\x05\x12\x14\x0A\x10CERTIFICATE_HOLD\x10\x06\x12\x17\x0A\x13PRIVILEGE_WITHDRAWN\x10\x07\x12\"\x0A\x1EATTRIBUTE_AUTHORITY_COMPROMISE\x10\x08*o\x0A\x12SubjectRequestMode\x12\$\x0A SUBJECT_REQUEST_MODE_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07DEFAULT\x10\x01\x12\x10\x0A\x0CRDN_SEQUENCE\x10\x03\x12\x14\x0A\x10REFLECTED_SPIFFE\x10\x02B\xFC\x01\x0A&com.google.cloud.security.privateca.v1B\x17PrivateCaResourcesProtoP\x01ZDcloud.google.com/go/security/privateca/apiv1/privatecapb;privatecapb\xAA\x02\"Google.Cloud.Security.PrivateCA.V1\xCA\x02\"Google\\Cloud\\Security\\PrivateCA\\V1\xEA\x02&Google::Cloud::Security::PrivateCA::V1b\x06proto3" , true); static::$is_initialized = true; diff --git a/SecurityPrivateCa/samples/V1/CertificateAuthorityServiceClient/list_certificates.php b/SecurityPrivateCa/samples/V1/CertificateAuthorityServiceClient/list_certificates.php index 9164da83f6f1..10344c930e25 100644 --- a/SecurityPrivateCa/samples/V1/CertificateAuthorityServiceClient/list_certificates.php +++ b/SecurityPrivateCa/samples/V1/CertificateAuthorityServiceClient/list_certificates.php @@ -32,10 +32,19 @@ /** * Lists [Certificates][google.cloud.security.privateca.v1.Certificate]. * - * @param string $formattedParent The resource name of the location associated with the + * @param string $formattedParent The resource name of the parent associated with the * [Certificates][google.cloud.security.privateca.v1.Certificate], in the - * format `projects/*/locations/*/caPools/*`. Please see - * {@see CertificateAuthorityServiceClient::caPoolName()} for help formatting this field. + * format `projects/*/locations/*/caPools/*`. The parent resource name can be + * in one of two forms: + * + * 1. **Specific CA Pool:** To list certificates within a single CA Pool: + * `projects/*/locations/*/caPools/*` + * + * 2. **All CA Pools in a Location:** To list certificates across *all* CA + * Pools in a given project and location, use the wildcard character (`-`) + * in place of the CA Pool ID. + * Example: `projects/*/locations/*/caPools/-` + * Please see {@see CertificateAuthorityServiceClient::caPoolName()} for help formatting this field. */ function list_certificates_sample(string $formattedParent): void { diff --git a/SecurityPrivateCa/samples/V1/CertificateAuthorityServiceClient/list_locations.php b/SecurityPrivateCa/samples/V1/CertificateAuthorityServiceClient/list_locations.php index 6c8e2c66cdb0..2935ae88781d 100644 --- a/SecurityPrivateCa/samples/V1/CertificateAuthorityServiceClient/list_locations.php +++ b/SecurityPrivateCa/samples/V1/CertificateAuthorityServiceClient/list_locations.php @@ -31,6 +31,21 @@ /** * Lists information about the supported locations for this service. + +This method lists locations based on the resource scope provided in +the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: * +**Global locations**: If `name` is empty, the method lists the +public locations available to all projects. * **Project-specific +locations**: If `name` follows the format +`projects/{project}`, the method lists locations visible to that +specific project. This includes public, private, or other +project-specific locations enabled for the project. + +For gRPC and client library implementations, the resource name is +passed as the `name` field. For direct service calls, the resource +name is +incorporated into the request path based on the specific service +implementation and version. * * This sample has been automatically generated and should be regarded as a code * template only. It will require modifications to work: diff --git a/SecurityPrivateCa/src/V1/CaPool.php b/SecurityPrivateCa/src/V1/CaPool.php index fa9aa344a4ce..73c9ce2d9be6 100644 --- a/SecurityPrivateCa/src/V1/CaPool.php +++ b/SecurityPrivateCa/src/V1/CaPool.php @@ -58,6 +58,16 @@ class CaPool extends \Google\Protobuf\Internal\Message * Generated from protobuf field .google.cloud.security.privateca.v1.CaPool.PublishingOptions publishing_options = 4 [(.google.api.field_behavior) = OPTIONAL]; */ protected $publishing_options = null; + /** + * Optional. When + * [EncryptionSpec][google.cloud.security.privateca.v1.EncryptionSpec] is + * provided, the [Subject][google.cloud.security.privateca.v1.Subject], + * [SubjectAltNames][google.cloud.security.privateca.v1.SubjectAltNames], and + * the PEM-encoded certificate fields will be encrypted at rest. + * + * Generated from protobuf field .google.cloud.security.privateca.v1.EncryptionSpec encryption_spec = 8 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $encryption_spec = null; /** * Optional. Labels with user-defined metadata. * @@ -92,6 +102,12 @@ class CaPool extends \Google\Protobuf\Internal\Message * [Certificates][google.cloud.security.privateca.v1.Certificate] from any * [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority] * in this [CaPool][google.cloud.security.privateca.v1.CaPool]. + * @type \Google\Cloud\Security\PrivateCA\V1\EncryptionSpec $encryption_spec + * Optional. When + * [EncryptionSpec][google.cloud.security.privateca.v1.EncryptionSpec] is + * provided, the [Subject][google.cloud.security.privateca.v1.Subject], + * [SubjectAltNames][google.cloud.security.privateca.v1.SubjectAltNames], and + * the PEM-encoded certificate fields will be encrypted at rest. * @type array|\Google\Protobuf\Internal\MapField $labels * Optional. Labels with user-defined metadata. * } @@ -251,6 +267,50 @@ public function setPublishingOptions($var) return $this; } + /** + * Optional. When + * [EncryptionSpec][google.cloud.security.privateca.v1.EncryptionSpec] is + * provided, the [Subject][google.cloud.security.privateca.v1.Subject], + * [SubjectAltNames][google.cloud.security.privateca.v1.SubjectAltNames], and + * the PEM-encoded certificate fields will be encrypted at rest. + * + * Generated from protobuf field .google.cloud.security.privateca.v1.EncryptionSpec encryption_spec = 8 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Security\PrivateCA\V1\EncryptionSpec|null + */ + public function getEncryptionSpec() + { + return $this->encryption_spec; + } + + public function hasEncryptionSpec() + { + return isset($this->encryption_spec); + } + + public function clearEncryptionSpec() + { + unset($this->encryption_spec); + } + + /** + * Optional. When + * [EncryptionSpec][google.cloud.security.privateca.v1.EncryptionSpec] is + * provided, the [Subject][google.cloud.security.privateca.v1.Subject], + * [SubjectAltNames][google.cloud.security.privateca.v1.SubjectAltNames], and + * the PEM-encoded certificate fields will be encrypted at rest. + * + * Generated from protobuf field .google.cloud.security.privateca.v1.EncryptionSpec encryption_spec = 8 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Security\PrivateCA\V1\EncryptionSpec $var + * @return $this + */ + public function setEncryptionSpec($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Security\PrivateCA\V1\EncryptionSpec::class); + $this->encryption_spec = $var; + + return $this; + } + /** * Optional. Labels with user-defined metadata. * diff --git a/SecurityPrivateCa/src/V1/CaPool/IssuancePolicy.php b/SecurityPrivateCa/src/V1/CaPool/IssuancePolicy.php index 4825860c2a15..30739bffd916 100644 --- a/SecurityPrivateCa/src/V1/CaPool/IssuancePolicy.php +++ b/SecurityPrivateCa/src/V1/CaPool/IssuancePolicy.php @@ -26,17 +26,36 @@ class IssuancePolicy extends \Google\Protobuf\Internal\Message */ private $allowed_key_types; /** - * Optional. The duration to backdate all certificates issued from this - * [CaPool][google.cloud.security.privateca.v1.CaPool]. If not set, the - * certificates will be issued with a not_before_time of the issuance time - * (i.e. the current time). If set, the certificates will be issued with a - * not_before_time of the issuance time minus the backdate_duration. The - * not_after_time will be adjusted to preserve the requested lifetime. The - * backdate_duration must be less than or equal to 48 hours. + * Optional. If set, all certificates issued from this + * [CaPool][google.cloud.security.privateca.v1.CaPool] will be backdated by + * this duration. The 'not_before_time' will be the issuance time minus this + * [backdate_duration][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.backdate_duration], + * and the 'not_after_time' will be adjusted to preserve the requested + * lifetime. The maximum duration that a certificate can be backdated with + * these options is 48 hours in the past. + * This option cannot be set if + * [allow_requester_specified_not_before_time][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.allow_requester_specified_not_before_time] + * is set. * * Generated from protobuf field .google.protobuf.Duration backdate_duration = 7 [(.google.api.field_behavior) = OPTIONAL]; */ protected $backdate_duration = null; + /** + * Optional. If set to true, allows requesters to specify the + * [requested_not_before_time][google.cloud.security.privateca.v1.Certificate.requested_not_before_time] + * field when creating a + * [Certificate][google.cloud.security.privateca.v1.Certificate]. + * Certificates requested with this option enabled will have a + * 'not_before_time' equal to the value specified in the request. The + * 'not_after_time' will be adjusted to preserve the requested lifetime. The + * maximum time that a certificate can be backdated with these options is 48 + * hours in the past. This option cannot be set if + * [backdate_duration][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.backdate_duration] + * is set. + * + * Generated from protobuf field bool allow_requester_specified_not_before_time = 8 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $allow_requester_specified_not_before_time = false; /** * Optional. The maximum lifetime allowed for issued * [Certificates][google.cloud.security.privateca.v1.Certificate]. Note that @@ -117,13 +136,28 @@ class IssuancePolicy extends \Google\Protobuf\Internal\Message * is specified, then the certificate request's public key must match one of * the key types listed here. Otherwise, any key may be used. * @type \Google\Protobuf\Duration $backdate_duration - * Optional. The duration to backdate all certificates issued from this - * [CaPool][google.cloud.security.privateca.v1.CaPool]. If not set, the - * certificates will be issued with a not_before_time of the issuance time - * (i.e. the current time). If set, the certificates will be issued with a - * not_before_time of the issuance time minus the backdate_duration. The - * not_after_time will be adjusted to preserve the requested lifetime. The - * backdate_duration must be less than or equal to 48 hours. + * Optional. If set, all certificates issued from this + * [CaPool][google.cloud.security.privateca.v1.CaPool] will be backdated by + * this duration. The 'not_before_time' will be the issuance time minus this + * [backdate_duration][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.backdate_duration], + * and the 'not_after_time' will be adjusted to preserve the requested + * lifetime. The maximum duration that a certificate can be backdated with + * these options is 48 hours in the past. + * This option cannot be set if + * [allow_requester_specified_not_before_time][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.allow_requester_specified_not_before_time] + * is set. + * @type bool $allow_requester_specified_not_before_time + * Optional. If set to true, allows requesters to specify the + * [requested_not_before_time][google.cloud.security.privateca.v1.Certificate.requested_not_before_time] + * field when creating a + * [Certificate][google.cloud.security.privateca.v1.Certificate]. + * Certificates requested with this option enabled will have a + * 'not_before_time' equal to the value specified in the request. The + * 'not_after_time' will be adjusted to preserve the requested lifetime. The + * maximum time that a certificate can be backdated with these options is 48 + * hours in the past. This option cannot be set if + * [backdate_duration][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.backdate_duration] + * is set. * @type \Google\Protobuf\Duration $maximum_lifetime * Optional. The maximum lifetime allowed for issued * [Certificates][google.cloud.security.privateca.v1.Certificate]. Note that @@ -211,13 +245,16 @@ public function setAllowedKeyTypes($var) } /** - * Optional. The duration to backdate all certificates issued from this - * [CaPool][google.cloud.security.privateca.v1.CaPool]. If not set, the - * certificates will be issued with a not_before_time of the issuance time - * (i.e. the current time). If set, the certificates will be issued with a - * not_before_time of the issuance time minus the backdate_duration. The - * not_after_time will be adjusted to preserve the requested lifetime. The - * backdate_duration must be less than or equal to 48 hours. + * Optional. If set, all certificates issued from this + * [CaPool][google.cloud.security.privateca.v1.CaPool] will be backdated by + * this duration. The 'not_before_time' will be the issuance time minus this + * [backdate_duration][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.backdate_duration], + * and the 'not_after_time' will be adjusted to preserve the requested + * lifetime. The maximum duration that a certificate can be backdated with + * these options is 48 hours in the past. + * This option cannot be set if + * [allow_requester_specified_not_before_time][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.allow_requester_specified_not_before_time] + * is set. * * Generated from protobuf field .google.protobuf.Duration backdate_duration = 7 [(.google.api.field_behavior) = OPTIONAL]; * @return \Google\Protobuf\Duration|null @@ -238,13 +275,16 @@ public function clearBackdateDuration() } /** - * Optional. The duration to backdate all certificates issued from this - * [CaPool][google.cloud.security.privateca.v1.CaPool]. If not set, the - * certificates will be issued with a not_before_time of the issuance time - * (i.e. the current time). If set, the certificates will be issued with a - * not_before_time of the issuance time minus the backdate_duration. The - * not_after_time will be adjusted to preserve the requested lifetime. The - * backdate_duration must be less than or equal to 48 hours. + * Optional. If set, all certificates issued from this + * [CaPool][google.cloud.security.privateca.v1.CaPool] will be backdated by + * this duration. The 'not_before_time' will be the issuance time minus this + * [backdate_duration][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.backdate_duration], + * and the 'not_after_time' will be adjusted to preserve the requested + * lifetime. The maximum duration that a certificate can be backdated with + * these options is 48 hours in the past. + * This option cannot be set if + * [allow_requester_specified_not_before_time][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.allow_requester_specified_not_before_time] + * is set. * * Generated from protobuf field .google.protobuf.Duration backdate_duration = 7 [(.google.api.field_behavior) = OPTIONAL]; * @param \Google\Protobuf\Duration $var @@ -258,6 +298,52 @@ public function setBackdateDuration($var) return $this; } + /** + * Optional. If set to true, allows requesters to specify the + * [requested_not_before_time][google.cloud.security.privateca.v1.Certificate.requested_not_before_time] + * field when creating a + * [Certificate][google.cloud.security.privateca.v1.Certificate]. + * Certificates requested with this option enabled will have a + * 'not_before_time' equal to the value specified in the request. The + * 'not_after_time' will be adjusted to preserve the requested lifetime. The + * maximum time that a certificate can be backdated with these options is 48 + * hours in the past. This option cannot be set if + * [backdate_duration][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.backdate_duration] + * is set. + * + * Generated from protobuf field bool allow_requester_specified_not_before_time = 8 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getAllowRequesterSpecifiedNotBeforeTime() + { + return $this->allow_requester_specified_not_before_time; + } + + /** + * Optional. If set to true, allows requesters to specify the + * [requested_not_before_time][google.cloud.security.privateca.v1.Certificate.requested_not_before_time] + * field when creating a + * [Certificate][google.cloud.security.privateca.v1.Certificate]. + * Certificates requested with this option enabled will have a + * 'not_before_time' equal to the value specified in the request. The + * 'not_after_time' will be adjusted to preserve the requested lifetime. The + * maximum time that a certificate can be backdated with these options is 48 + * hours in the past. This option cannot be set if + * [backdate_duration][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.backdate_duration] + * is set. + * + * Generated from protobuf field bool allow_requester_specified_not_before_time = 8 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setAllowRequesterSpecifiedNotBeforeTime($var) + { + GPBUtil::checkBool($var); + $this->allow_requester_specified_not_before_time = $var; + + return $this; + } + /** * Optional. The maximum lifetime allowed for issued * [Certificates][google.cloud.security.privateca.v1.Certificate]. Note that diff --git a/SecurityPrivateCa/src/V1/Certificate.php b/SecurityPrivateCa/src/V1/Certificate.php index d2d879605b06..5ae97a2348a6 100644 --- a/SecurityPrivateCa/src/V1/Certificate.php +++ b/SecurityPrivateCa/src/V1/Certificate.php @@ -112,6 +112,24 @@ class Certificate extends \Google\Protobuf\Internal\Message * Generated from protobuf field map labels = 14 [(.google.api.field_behavior) = OPTIONAL]; */ private $labels; + /** + * Optional. The requested + * [not_before_time][google.cloud.security.privateca.v1.CertificateDescription.SubjectDescription.not_before_time] + * of this [Certificate][google.cloud.security.privateca.v1.Certificate]. This + * field may only be set if the + * [CaPool.IssuancePolicy.allow_requester_specified_not_before_time][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.allow_requester_specified_not_before_time] + * field is set to true for the issuing + * [CaPool][google.cloud.security.privateca.v1.CaPool]. + * If this field is specified, the certificate will be issued with this + * 'not_before_time'. If this is not specified, the 'not_before_time' will be + * set to the issuance time or issuance time minus + * [backdate_duration][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.backdate_duration] + * depending on the [CaPool][google.cloud.security.privateca.v1.CaPool] + * configuration. + * + * Generated from protobuf field .google.protobuf.Timestamp requested_not_before_time = 15 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $requested_not_before_time = null; protected $certificate_config; /** @@ -172,6 +190,20 @@ class Certificate extends \Google\Protobuf\Internal\Message * [Certificate][google.cloud.security.privateca.v1.Certificate] was updated. * @type array|\Google\Protobuf\Internal\MapField $labels * Optional. Labels with user-defined metadata. + * @type \Google\Protobuf\Timestamp $requested_not_before_time + * Optional. The requested + * [not_before_time][google.cloud.security.privateca.v1.CertificateDescription.SubjectDescription.not_before_time] + * of this [Certificate][google.cloud.security.privateca.v1.Certificate]. This + * field may only be set if the + * [CaPool.IssuancePolicy.allow_requester_specified_not_before_time][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.allow_requester_specified_not_before_time] + * field is set to true for the issuing + * [CaPool][google.cloud.security.privateca.v1.CaPool]. + * If this field is specified, the certificate will be issued with this + * 'not_before_time'. If this is not specified, the 'not_before_time' will be + * set to the issuance time or issuance time minus + * [backdate_duration][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.backdate_duration] + * depending on the [CaPool][google.cloud.security.privateca.v1.CaPool] + * configuration. * } */ public function __construct($data = NULL) { @@ -651,6 +683,66 @@ public function setLabels($var) return $this; } + /** + * Optional. The requested + * [not_before_time][google.cloud.security.privateca.v1.CertificateDescription.SubjectDescription.not_before_time] + * of this [Certificate][google.cloud.security.privateca.v1.Certificate]. This + * field may only be set if the + * [CaPool.IssuancePolicy.allow_requester_specified_not_before_time][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.allow_requester_specified_not_before_time] + * field is set to true for the issuing + * [CaPool][google.cloud.security.privateca.v1.CaPool]. + * If this field is specified, the certificate will be issued with this + * 'not_before_time'. If this is not specified, the 'not_before_time' will be + * set to the issuance time or issuance time minus + * [backdate_duration][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.backdate_duration] + * depending on the [CaPool][google.cloud.security.privateca.v1.CaPool] + * configuration. + * + * Generated from protobuf field .google.protobuf.Timestamp requested_not_before_time = 15 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getRequestedNotBeforeTime() + { + return $this->requested_not_before_time; + } + + public function hasRequestedNotBeforeTime() + { + return isset($this->requested_not_before_time); + } + + public function clearRequestedNotBeforeTime() + { + unset($this->requested_not_before_time); + } + + /** + * Optional. The requested + * [not_before_time][google.cloud.security.privateca.v1.CertificateDescription.SubjectDescription.not_before_time] + * of this [Certificate][google.cloud.security.privateca.v1.Certificate]. This + * field may only be set if the + * [CaPool.IssuancePolicy.allow_requester_specified_not_before_time][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.allow_requester_specified_not_before_time] + * field is set to true for the issuing + * [CaPool][google.cloud.security.privateca.v1.CaPool]. + * If this field is specified, the certificate will be issued with this + * 'not_before_time'. If this is not specified, the 'not_before_time' will be + * set to the issuance time or issuance time minus + * [backdate_duration][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.backdate_duration] + * depending on the [CaPool][google.cloud.security.privateca.v1.CaPool] + * configuration. + * + * Generated from protobuf field .google.protobuf.Timestamp requested_not_before_time = 15 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setRequestedNotBeforeTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->requested_not_before_time = $var; + + return $this; + } + /** * @return string */ diff --git a/SecurityPrivateCa/src/V1/Client/CertificateAuthorityServiceClient.php b/SecurityPrivateCa/src/V1/Client/CertificateAuthorityServiceClient.php index f8b7a5819a18..922eddae8f6e 100644 --- a/SecurityPrivateCa/src/V1/Client/CertificateAuthorityServiceClient.php +++ b/SecurityPrivateCa/src/V1/Client/CertificateAuthorityServiceClient.php @@ -1375,6 +1375,21 @@ public function getLocation(GetLocationRequest $request, array $callOptions = [] /** * Lists information about the supported locations for this service. + + This method lists locations based on the resource scope provided in + the [ListLocationsRequest.name][google.cloud.location.ListLocationsRequest.name] field: * + **Global locations**: If `name` is empty, the method lists the + public locations available to all projects. * **Project-specific + locations**: If `name` follows the format + `projects/{project}`, the method lists locations visible to that + specific project. This includes public, private, or other + project-specific locations enabled for the project. + + For gRPC and client library implementations, the resource name is + passed as the `name` field. For direct service calls, the resource + name is + incorporated into the request path based on the specific service + implementation and version. * * The async variant is * {@see CertificateAuthorityServiceClient::listLocationsAsync()} . diff --git a/SecurityPrivateCa/src/V1/EncryptionSpec.php b/SecurityPrivateCa/src/V1/EncryptionSpec.php new file mode 100644 index 000000000000..329f51897689 --- /dev/null +++ b/SecurityPrivateCa/src/V1/EncryptionSpec.php @@ -0,0 +1,71 @@ +google.cloud.security.privateca.v1.EncryptionSpec + */ +class EncryptionSpec extends \Google\Protobuf\Internal\Message +{ + /** + * The resource name for a Cloud KMS key in the format + * `projects/{@*}locations/{@*}keyRings/{@*}cryptoKeys/*`. + * + * Generated from protobuf field string cloud_kms_key = 1; + */ + protected $cloud_kms_key = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $cloud_kms_key + * The resource name for a Cloud KMS key in the format + * `projects/{@*}locations/{@*}keyRings/{@*}cryptoKeys/*`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Security\Privateca\V1\Resources::initOnce(); + parent::__construct($data); + } + + /** + * The resource name for a Cloud KMS key in the format + * `projects/{@*}locations/{@*}keyRings/{@*}cryptoKeys/*`. + * + * Generated from protobuf field string cloud_kms_key = 1; + * @return string + */ + public function getCloudKmsKey() + { + return $this->cloud_kms_key; + } + + /** + * The resource name for a Cloud KMS key in the format + * `projects/{@*}locations/{@*}keyRings/{@*}cryptoKeys/*`. + * + * Generated from protobuf field string cloud_kms_key = 1; + * @param string $var + * @return $this + */ + public function setCloudKmsKey($var) + { + GPBUtil::checkString($var, True); + $this->cloud_kms_key = $var; + + return $this; + } + +} + diff --git a/SecurityPrivateCa/src/V1/ListCertificatesRequest.php b/SecurityPrivateCa/src/V1/ListCertificatesRequest.php index 9c3f1b78bd1e..9313f4111e6e 100644 --- a/SecurityPrivateCa/src/V1/ListCertificatesRequest.php +++ b/SecurityPrivateCa/src/V1/ListCertificatesRequest.php @@ -17,9 +17,16 @@ class ListCertificatesRequest extends \Google\Protobuf\Internal\Message { /** - * Required. The resource name of the location associated with the + * Required. The resource name of the parent associated with the * [Certificates][google.cloud.security.privateca.v1.Certificate], in the - * format `projects/{@*}locations/{@*}caPools/*`. + * format `projects/{@*}locations/{@*}caPools/*`. The parent resource name can be + * in one of two forms: + * 1. **Specific CA Pool:** To list certificates within a single CA Pool: + * `projects/{@*}locations/{@*}caPools/*` + * 2. **All CA Pools in a Location:** To list certificates across *all* CA + * Pools in a given project and location, use the wildcard character (`-`) + * in place of the CA Pool ID. + * Example: `projects/{@*}locations/{@*}caPools/-` * * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { */ @@ -62,10 +69,19 @@ class ListCertificatesRequest extends \Google\Protobuf\Internal\Message protected $order_by = ''; /** - * @param string $parent Required. The resource name of the location associated with the + * @param string $parent Required. The resource name of the parent associated with the * [Certificates][google.cloud.security.privateca.v1.Certificate], in the - * format `projects/*/locations/*/caPools/*`. Please see - * {@see CertificateAuthorityServiceClient::caPoolName()} for help formatting this field. + * format `projects/*/locations/*/caPools/*`. The parent resource name can be + * in one of two forms: + * + * 1. **Specific CA Pool:** To list certificates within a single CA Pool: + * `projects/*/locations/*/caPools/*` + * + * 2. **All CA Pools in a Location:** To list certificates across *all* CA + * Pools in a given project and location, use the wildcard character (`-`) + * in place of the CA Pool ID. + * Example: `projects/*/locations/*/caPools/-` + * Please see {@see CertificateAuthorityServiceClient::caPoolName()} for help formatting this field. * * @return \Google\Cloud\Security\PrivateCA\V1\ListCertificatesRequest * @@ -84,9 +100,16 @@ public static function build(string $parent): self * Optional. Data for populating the Message object. * * @type string $parent - * Required. The resource name of the location associated with the + * Required. The resource name of the parent associated with the * [Certificates][google.cloud.security.privateca.v1.Certificate], in the - * format `projects/{@*}locations/{@*}caPools/*`. + * format `projects/{@*}locations/{@*}caPools/*`. The parent resource name can be + * in one of two forms: + * 1. **Specific CA Pool:** To list certificates within a single CA Pool: + * `projects/{@*}locations/{@*}caPools/*` + * 2. **All CA Pools in a Location:** To list certificates across *all* CA + * Pools in a given project and location, use the wildcard character (`-`) + * in place of the CA Pool ID. + * Example: `projects/{@*}locations/{@*}caPools/-` * @type int $page_size * Optional. Limit on the number of * [Certificates][google.cloud.security.privateca.v1.Certificate] to include @@ -115,9 +138,16 @@ public function __construct($data = NULL) { } /** - * Required. The resource name of the location associated with the + * Required. The resource name of the parent associated with the * [Certificates][google.cloud.security.privateca.v1.Certificate], in the - * format `projects/{@*}locations/{@*}caPools/*`. + * format `projects/{@*}locations/{@*}caPools/*`. The parent resource name can be + * in one of two forms: + * 1. **Specific CA Pool:** To list certificates within a single CA Pool: + * `projects/{@*}locations/{@*}caPools/*` + * 2. **All CA Pools in a Location:** To list certificates across *all* CA + * Pools in a given project and location, use the wildcard character (`-`) + * in place of the CA Pool ID. + * Example: `projects/{@*}locations/{@*}caPools/-` * * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { * @return string @@ -128,9 +158,16 @@ public function getParent() } /** - * Required. The resource name of the location associated with the + * Required. The resource name of the parent associated with the * [Certificates][google.cloud.security.privateca.v1.Certificate], in the - * format `projects/{@*}locations/{@*}caPools/*`. + * format `projects/{@*}locations/{@*}caPools/*`. The parent resource name can be + * in one of two forms: + * 1. **Specific CA Pool:** To list certificates within a single CA Pool: + * `projects/{@*}locations/{@*}caPools/*` + * 2. **All CA Pools in a Location:** To list certificates across *all* CA + * Pools in a given project and location, use the wildcard character (`-`) + * in place of the CA Pool ID. + * Example: `projects/{@*}locations/{@*}caPools/-` * * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { * @param string $var From 474203ee9e73c69b94c9f8217fa290ef9cc08371 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 27 May 2026 18:30:45 -0400 Subject: [PATCH 5/7] feat: [BigQueryMigration] add support for assessment tasks in BigQuery Migration API (#9204) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add support for assessment tasks in BigQuery Migration API feat: add suggestion config to translation tasks docs: update comments for various fields in MigrationWorkflow, MigrationTask, and MigrationSubtask docs: Add comment that field `create_time` in message `.google.cloud.bigquery.migration.v2.MigrationWorkflow` is output only docs: Add comment that field `last_update_time` in message `.google.cloud.bigquery.migration.v2.MigrationWorkflow` is output only docs: Fixed typo in comment for enum value `PAUSED` in enum `State` is changed docs: Link to relevant documentation in comment for field `type` in message `.google.cloud.bigquery.migration.v2.MigrationTask` is changed docs: Add comment that field `create_time` in message `.google.cloud.bigquery.migration.v2.MigrationTask` is output only docs: Add comment that field `last_update_time` in message `.google.cloud.bigquery.migration.v2.MigrationTask` is output only docs: Add comment that field `resource_error_count` in message `.google.cloud.bigquery.migration.v2.MigrationTask` is output only docs: Add comment that field `metrics` in message `.google.cloud.bigquery.migration.v2.MigrationTask` is output only docs: Add comment that field `total_processing_error_count` in message `.google.cloud.bigquery.migration.v2.MigrationTask` is output only docs: Add comment that field `total_resource_error_count` in message `.google.cloud.bigquery.migration.v2.MigrationTask` is output only docs: Add comment that field `resource_error_count` in message `.google.cloud.bigquery.migration.v2.MigrationSubtask` is output only docs: Add comment that field `create_time` in message `.google.cloud.bigquery.migration.v2.MigrationSubtask` is output only docs: Add comment that field `last_update_time` in message `.google.cloud.bigquery.migration.v2.MigrationSubtask` is output only docs: Add comment for field `metrics` in message `.google.cloud.bigquery.migration.v2.MigrationSubtask` is output only PiperOrigin-RevId: 918496010 Source-Link: https://github.com/googleapis/googleapis/commit/43731d5d22f8e3526ba7aa708da9d5de26043d0f Source-Link: https://github.com/googleapis/googleapis-gen/commit/1a8cf1fa69363ffbfca334d355c8a453d6eb5665 Copy-Tag: eyJwIjoiQmlnUXVlcnlNaWdyYXRpb24vLk93bEJvdC55YW1sIiwiaCI6IjFhOGNmMWZhNjkzNjNmZmJmY2EzMzRkMzU1YzhhNDUzZDZlYjU2NjUifQ== * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .../metadata/V2/AssessmentTask.php | 25 ++ .../metadata/V2/MigrationEntities.php | 3 +- .../metadata/V2/TranslationDetails.php | 2 +- .../src/V2/AssessmentFeatureHandle.php | 81 +++++++ .../src/V2/AssessmentTaskDetails.php | 221 +++++++++++++++++ BigQueryMigration/src/V2/MigrationSubtask.php | 80 +++--- BigQueryMigration/src/V2/MigrationTask.php | 229 +++++++++++------- .../src/V2/MigrationTask/State.php | 2 +- .../src/V2/MigrationWorkflow.php | 28 +-- BigQueryMigration/src/V2/SourceSpec.php | 33 +++ BigQueryMigration/src/V2/SuggestionConfig.php | 67 +++++ BigQueryMigration/src/V2/SuggestionStep.php | 101 ++++++++ .../src/V2/SuggestionStep/RewriteTarget.php | 61 +++++ .../src/V2/SuggestionStep/SuggestionType.php | 61 +++++ .../src/V2/TranslationDetails.php | 44 ++++ .../src/V2/TranslationTaskResult.php | 34 +++ 16 files changed, 933 insertions(+), 139 deletions(-) create mode 100644 BigQueryMigration/metadata/V2/AssessmentTask.php create mode 100644 BigQueryMigration/src/V2/AssessmentFeatureHandle.php create mode 100644 BigQueryMigration/src/V2/AssessmentTaskDetails.php create mode 100644 BigQueryMigration/src/V2/SuggestionConfig.php create mode 100644 BigQueryMigration/src/V2/SuggestionStep.php create mode 100644 BigQueryMigration/src/V2/SuggestionStep/RewriteTarget.php create mode 100644 BigQueryMigration/src/V2/SuggestionStep/SuggestionType.php diff --git a/BigQueryMigration/metadata/V2/AssessmentTask.php b/BigQueryMigration/metadata/V2/AssessmentTask.php new file mode 100644 index 000000000000..89869a069794 --- /dev/null +++ b/BigQueryMigration/metadata/V2/AssessmentTask.php @@ -0,0 +1,25 @@ +internalAddGeneratedFile( + "\x0A\x8F\x05\x0A8google/cloud/bigquery/migration/v2/assessment_task.proto\x12\"google.cloud.bigquery.migration.v2\"\xF6\x01\x0A\x15AssessmentTaskDetails\x12\x17\x0A\x0Ainput_path\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x1B\x0A\x0Eoutput_dataset\x18\x02 \x01(\x09B\x03\xE0A\x02\x12\x1B\x0A\x0Equerylogs_path\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x18\x0A\x0Bdata_source\x18\x04 \x01(\x09B\x03\xE0A\x02\x12]\x0A\x0Efeature_handle\x18\x06 \x01(\x0B2;.google.cloud.bigquery.migration.v2.AssessmentFeatureHandleB\x03\xE0A\x01H\x00\x88\x01\x01B\x11\x0A\x0F_feature_handle\"\\\x0A\x17AssessmentFeatureHandle\x12'\x0A\x15add_shareable_dataset\x18\x01 \x01(\x08B\x03\xE0A\x01H\x00\x88\x01\x01B\x18\x0A\x16_add_shareable_datasetB\xCF\x01\x0A&com.google.cloud.bigquery.migration.v2B\x13AssessmentTaskProtoP\x01ZDcloud.google.com/go/bigquery/migration/apiv2/migrationpb;migrationpb\xAA\x02\"Google.Cloud.BigQuery.Migration.V2\xCA\x02\"Google\\Cloud\\BigQuery\\Migration\\V2b\x06proto3" + , true); + + static::$is_initialized = true; + } +} + diff --git a/BigQueryMigration/metadata/V2/MigrationEntities.php b/BigQueryMigration/metadata/V2/MigrationEntities.php index d31661535e94..94a42b94cfce 100644 --- a/BigQueryMigration/metadata/V2/MigrationEntities.php +++ b/BigQueryMigration/metadata/V2/MigrationEntities.php @@ -16,6 +16,7 @@ public static function initOnce() { } \GPBMetadata\Google\Api\FieldBehavior::initOnce(); \GPBMetadata\Google\Api\Resource::initOnce(); + \GPBMetadata\Google\Cloud\Bigquery\Migration\V2\AssessmentTask::initOnce(); \GPBMetadata\Google\Cloud\Bigquery\Migration\V2\MigrationErrorDetails::initOnce(); \GPBMetadata\Google\Cloud\Bigquery\Migration\V2\MigrationMetrics::initOnce(); \GPBMetadata\Google\Cloud\Bigquery\Migration\V2\TranslationConfig::initOnce(); @@ -24,7 +25,7 @@ public static function initOnce() { \GPBMetadata\Google\Protobuf\Timestamp::initOnce(); \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); $pool->internalAddGeneratedFile( - "\x0A\xB4\x1A\x0A;google/cloud/bigquery/migration/v2/migration_entities.proto\x12\"google.cloud.bigquery.migration.v2\x1A\x19google/api/resource.proto\x1A@google/cloud/bigquery/migration/v2/migration_error_details.proto\x1A:google/cloud/bigquery/migration/v2/migration_metrics.proto\x1A;google/cloud/bigquery/migration/v2/translation_config.proto\x1Agoogle/cloud/bigquery/migration/v2/translation_usability.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\x1A\x1Egoogle/rpc/error_details.proto\"\xF6\x04\x0A\x11MigrationWorkflow\x12\x17\x0A\x04name\x18\x01 \x01(\x09B\x09\xE0A\x03\xE0A\x05\xE0A\x08\x12\x14\x0A\x0Cdisplay_name\x18\x06 \x01(\x09\x12O\x0A\x05tasks\x18\x02 \x03(\x0B2@.google.cloud.bigquery.migration.v2.MigrationWorkflow.TasksEntry\x12O\x0A\x05state\x18\x03 \x01(\x0E2;.google.cloud.bigquery.migration.v2.MigrationWorkflow.StateB\x03\xE0A\x03\x12/\x0A\x0Bcreate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.Timestamp\x124\x0A\x10last_update_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.Timestamp\x1A_\x0A\x0ATasksEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12@\x0A\x05value\x18\x02 \x01(\x0B21.google.cloud.bigquery.migration.v2.MigrationTask:\x028\x01\"Q\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x09\x0A\x05DRAFT\x10\x01\x12\x0B\x0A\x07RUNNING\x10\x02\x12\x0A\x0A\x06PAUSED\x10\x03\x12\x0D\x0A\x09COMPLETED\x10\x04:u\xEAAr\x0A2bigquerymigration.googleapis.com/MigrationWorkflow\x12google/cloud/bigquery/migration/v2/translation_usability.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\x1A\x1Egoogle/rpc/error_details.proto\"\x80\x05\x0A\x11MigrationWorkflow\x12\x17\x0A\x04name\x18\x01 \x01(\x09B\x09\xE0A\x03\xE0A\x05\xE0A\x08\x12\x14\x0A\x0Cdisplay_name\x18\x06 \x01(\x09\x12O\x0A\x05tasks\x18\x02 \x03(\x0B2@.google.cloud.bigquery.migration.v2.MigrationWorkflow.TasksEntry\x12O\x0A\x05state\x18\x03 \x01(\x0E2;.google.cloud.bigquery.migration.v2.MigrationWorkflow.StateB\x03\xE0A\x03\x124\x0A\x0Bcreate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x129\x0A\x10last_update_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x1A_\x0A\x0ATasksEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12@\x0A\x05value\x18\x02 \x01(\x0B21.google.cloud.bigquery.migration.v2.MigrationTask:\x028\x01\"Q\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x09\x0A\x05DRAFT\x10\x01\x12\x0B\x0A\x07RUNNING\x10\x02\x12\x0A\x0A\x06PAUSED\x10\x03\x12\x0D\x0A\x09COMPLETED\x10\x04:u\xEAAr\x0A2bigquerymigration.googleapis.com/MigrationWorkflow\x12internalAddGeneratedFile( - "\x0A\xF6\x08\x0A\x0A\x07literal\x18\x02 \x01(\x0B2+.google.cloud.bigquery.migration.v2.LiteralH\x00\x12\x15\x0A\x08encoding\x18\x03 \x01(\x09B\x03\xE0A\x01B\x08\x0A\x06source\"#\x0A\x0ATargetSpec\x12\x15\x0A\x0Drelative_path\x18\x01 \x01(\x09\"h\x0A\x07Literal\x12\x18\x0A\x0Eliteral_string\x18\x02 \x01(\x09H\x00\x12\x17\x0A\x0Dliteral_bytes\x18\x03 \x01(\x0CH\x00\x12\x1A\x0A\x0Drelative_path\x18\x01 \x01(\x09B\x03\xE0A\x02B\x0E\x0A\x0Cliteral_data\"n\x0A\x11SourceEnvironment\x12\x18\x0A\x10default_database\x18\x01 \x01(\x09\x12\x1A\x0A\x12schema_search_path\x18\x02 \x03(\x09\x12#\x0A\x16metadata_store_dataset\x18\x03 \x01(\x09B\x03\xE0A\x01B\xD3\x01\x0A&com.google.cloud.bigquery.migration.v2B\x17TranslationDetailsProtoP\x01ZDcloud.google.com/go/bigquery/migration/apiv2/migrationpb;migrationpb\xAA\x02\"Google.Cloud.BigQuery.Migration.V2\xCA\x02\"Google\\Cloud\\BigQuery\\Migration\\V2b\x06proto3" + "\x0A\xCA\x0D\x0A\x0A\x07literal\x18\x02 \x01(\x0B2+.google.cloud.bigquery.migration.v2.LiteralH\x00\x12\x17\x0A\x0Dgcs_file_path\x18\x04 \x01(\x09H\x00\x12\x15\x0A\x08encoding\x18\x03 \x01(\x09B\x03\xE0A\x01B\x08\x0A\x06source\"#\x0A\x0ATargetSpec\x12\x15\x0A\x0Drelative_path\x18\x01 \x01(\x09\"h\x0A\x07Literal\x12\x18\x0A\x0Eliteral_string\x18\x02 \x01(\x09H\x00\x12\x17\x0A\x0Dliteral_bytes\x18\x03 \x01(\x0CH\x00\x12\x1A\x0A\x0Drelative_path\x18\x01 \x01(\x09B\x03\xE0A\x02B\x0E\x0A\x0Cliteral_data\"n\x0A\x11SourceEnvironment\x12\x18\x0A\x10default_database\x18\x01 \x01(\x09\x12\x1A\x0A\x12schema_search_path\x18\x02 \x03(\x09\x12#\x0A\x16metadata_store_dataset\x18\x03 \x01(\x09B\x03\xE0A\x01B\xD3\x01\x0A&com.google.cloud.bigquery.migration.v2B\x17TranslationDetailsProtoP\x01ZDcloud.google.com/go/bigquery/migration/apiv2/migrationpb;migrationpb\xAA\x02\"Google.Cloud.BigQuery.Migration.V2\xCA\x02\"Google\\Cloud\\BigQuery\\Migration\\V2b\x06proto3" , true); static::$is_initialized = true; diff --git a/BigQueryMigration/src/V2/AssessmentFeatureHandle.php b/BigQueryMigration/src/V2/AssessmentFeatureHandle.php new file mode 100644 index 000000000000..74b25babd9ff --- /dev/null +++ b/BigQueryMigration/src/V2/AssessmentFeatureHandle.php @@ -0,0 +1,81 @@ +google.cloud.bigquery.migration.v2.AssessmentFeatureHandle + */ +class AssessmentFeatureHandle extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. Whether to create a dataset containing non-PII data in addition + * to the output dataset. + * + * Generated from protobuf field optional bool add_shareable_dataset = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $add_shareable_dataset = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type bool $add_shareable_dataset + * Optional. Whether to create a dataset containing non-PII data in addition + * to the output dataset. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Bigquery\Migration\V2\AssessmentTask::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Whether to create a dataset containing non-PII data in addition + * to the output dataset. + * + * Generated from protobuf field optional bool add_shareable_dataset = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getAddShareableDataset() + { + return isset($this->add_shareable_dataset) ? $this->add_shareable_dataset : false; + } + + public function hasAddShareableDataset() + { + return isset($this->add_shareable_dataset); + } + + public function clearAddShareableDataset() + { + unset($this->add_shareable_dataset); + } + + /** + * Optional. Whether to create a dataset containing non-PII data in addition + * to the output dataset. + * + * Generated from protobuf field optional bool add_shareable_dataset = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setAddShareableDataset($var) + { + GPBUtil::checkBool($var); + $this->add_shareable_dataset = $var; + + return $this; + } + +} + diff --git a/BigQueryMigration/src/V2/AssessmentTaskDetails.php b/BigQueryMigration/src/V2/AssessmentTaskDetails.php new file mode 100644 index 000000000000..b8398f99ccbc --- /dev/null +++ b/BigQueryMigration/src/V2/AssessmentTaskDetails.php @@ -0,0 +1,221 @@ +google.cloud.bigquery.migration.v2.AssessmentTaskDetails + */ +class AssessmentTaskDetails extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The Cloud Storage path for assessment input files. + * + * Generated from protobuf field string input_path = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $input_path = ''; + /** + * Required. The BigQuery dataset for output. + * + * Generated from protobuf field string output_dataset = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $output_dataset = ''; + /** + * Optional. An optional Cloud Storage path to write the query logs (which is + * then used as an input path on the translation task) + * + * Generated from protobuf field string querylogs_path = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $querylogs_path = ''; + /** + * Required. The data source or data warehouse type (eg: TERADATA/REDSHIFT) + * from which the input data is extracted. + * + * Generated from protobuf field string data_source = 4 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $data_source = ''; + /** + * Optional. A collection of additional feature flags for this assessment. + * + * Generated from protobuf field optional .google.cloud.bigquery.migration.v2.AssessmentFeatureHandle feature_handle = 6 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $feature_handle = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $input_path + * Required. The Cloud Storage path for assessment input files. + * @type string $output_dataset + * Required. The BigQuery dataset for output. + * @type string $querylogs_path + * Optional. An optional Cloud Storage path to write the query logs (which is + * then used as an input path on the translation task) + * @type string $data_source + * Required. The data source or data warehouse type (eg: TERADATA/REDSHIFT) + * from which the input data is extracted. + * @type \Google\Cloud\BigQuery\Migration\V2\AssessmentFeatureHandle $feature_handle + * Optional. A collection of additional feature flags for this assessment. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Bigquery\Migration\V2\AssessmentTask::initOnce(); + parent::__construct($data); + } + + /** + * Required. The Cloud Storage path for assessment input files. + * + * Generated from protobuf field string input_path = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getInputPath() + { + return $this->input_path; + } + + /** + * Required. The Cloud Storage path for assessment input files. + * + * Generated from protobuf field string input_path = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setInputPath($var) + { + GPBUtil::checkString($var, True); + $this->input_path = $var; + + return $this; + } + + /** + * Required. The BigQuery dataset for output. + * + * Generated from protobuf field string output_dataset = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getOutputDataset() + { + return $this->output_dataset; + } + + /** + * Required. The BigQuery dataset for output. + * + * Generated from protobuf field string output_dataset = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setOutputDataset($var) + { + GPBUtil::checkString($var, True); + $this->output_dataset = $var; + + return $this; + } + + /** + * Optional. An optional Cloud Storage path to write the query logs (which is + * then used as an input path on the translation task) + * + * Generated from protobuf field string querylogs_path = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getQuerylogsPath() + { + return $this->querylogs_path; + } + + /** + * Optional. An optional Cloud Storage path to write the query logs (which is + * then used as an input path on the translation task) + * + * Generated from protobuf field string querylogs_path = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setQuerylogsPath($var) + { + GPBUtil::checkString($var, True); + $this->querylogs_path = $var; + + return $this; + } + + /** + * Required. The data source or data warehouse type (eg: TERADATA/REDSHIFT) + * from which the input data is extracted. + * + * Generated from protobuf field string data_source = 4 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getDataSource() + { + return $this->data_source; + } + + /** + * Required. The data source or data warehouse type (eg: TERADATA/REDSHIFT) + * from which the input data is extracted. + * + * Generated from protobuf field string data_source = 4 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setDataSource($var) + { + GPBUtil::checkString($var, True); + $this->data_source = $var; + + return $this; + } + + /** + * Optional. A collection of additional feature flags for this assessment. + * + * Generated from protobuf field optional .google.cloud.bigquery.migration.v2.AssessmentFeatureHandle feature_handle = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\BigQuery\Migration\V2\AssessmentFeatureHandle|null + */ + public function getFeatureHandle() + { + return $this->feature_handle; + } + + public function hasFeatureHandle() + { + return isset($this->feature_handle); + } + + public function clearFeatureHandle() + { + unset($this->feature_handle); + } + + /** + * Optional. A collection of additional feature flags for this assessment. + * + * Generated from protobuf field optional .google.cloud.bigquery.migration.v2.AssessmentFeatureHandle feature_handle = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\BigQuery\Migration\V2\AssessmentFeatureHandle $var + * @return $this + */ + public function setFeatureHandle($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\BigQuery\Migration\V2\AssessmentFeatureHandle::class); + $this->feature_handle = $var; + + return $this; + } + +} + diff --git a/BigQueryMigration/src/V2/MigrationSubtask.php b/BigQueryMigration/src/V2/MigrationSubtask.php index f7d0f5f056fe..d633f8f24317 100644 --- a/BigQueryMigration/src/V2/MigrationSubtask.php +++ b/BigQueryMigration/src/V2/MigrationSubtask.php @@ -62,30 +62,30 @@ class MigrationSubtask extends \Google\Protobuf\Internal\Message */ private $resource_error_details; /** - * The number or resources with errors. Note: This is not the total - * number of errors as each resource can have more than one error. - * This is used to indicate truncation by having a `resource_error_count` - * that is higher than the size of `resource_error_details`. + * Output only. The number or resources with errors. Note: This is not the + * total number of errors as each resource can have more than one error. This + * is used to indicate truncation by having a `resource_error_count` that is + * higher than the size of `resource_error_details`. * - * Generated from protobuf field int32 resource_error_count = 13; + * Generated from protobuf field int32 resource_error_count = 13 [(.google.api.field_behavior) = OUTPUT_ONLY]; */ protected $resource_error_count = 0; /** - * Time when the subtask was created. + * Output only. Time when the subtask was created. * - * Generated from protobuf field .google.protobuf.Timestamp create_time = 7; + * Generated from protobuf field .google.protobuf.Timestamp create_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; */ protected $create_time = null; /** - * Time when the subtask was last updated. + * Output only. Time when the subtask was last updated. * - * Generated from protobuf field .google.protobuf.Timestamp last_update_time = 8; + * Generated from protobuf field .google.protobuf.Timestamp last_update_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; */ protected $last_update_time = null; /** - * The metrics for the subtask. + * Output only. The metrics for the subtask. * - * Generated from protobuf field repeated .google.cloud.bigquery.migration.v2.TimeSeries metrics = 11; + * Generated from protobuf field repeated .google.cloud.bigquery.migration.v2.TimeSeries metrics = 11 [(.google.api.field_behavior) = OUTPUT_ONLY]; */ private $metrics; @@ -116,16 +116,16 @@ class MigrationSubtask extends \Google\Protobuf\Internal\Message * processing the subtask. Presence of error details does not mean that the * subtask failed. * @type int $resource_error_count - * The number or resources with errors. Note: This is not the total - * number of errors as each resource can have more than one error. - * This is used to indicate truncation by having a `resource_error_count` - * that is higher than the size of `resource_error_details`. + * Output only. The number or resources with errors. Note: This is not the + * total number of errors as each resource can have more than one error. This + * is used to indicate truncation by having a `resource_error_count` that is + * higher than the size of `resource_error_details`. * @type \Google\Protobuf\Timestamp $create_time - * Time when the subtask was created. + * Output only. Time when the subtask was created. * @type \Google\Protobuf\Timestamp $last_update_time - * Time when the subtask was last updated. + * Output only. Time when the subtask was last updated. * @type \Google\Cloud\BigQuery\Migration\V2\TimeSeries[] $metrics - * The metrics for the subtask. + * Output only. The metrics for the subtask. * } */ public function __construct($data = NULL) { @@ -316,12 +316,12 @@ public function setResourceErrorDetails($var) } /** - * The number or resources with errors. Note: This is not the total - * number of errors as each resource can have more than one error. - * This is used to indicate truncation by having a `resource_error_count` - * that is higher than the size of `resource_error_details`. + * Output only. The number or resources with errors. Note: This is not the + * total number of errors as each resource can have more than one error. This + * is used to indicate truncation by having a `resource_error_count` that is + * higher than the size of `resource_error_details`. * - * Generated from protobuf field int32 resource_error_count = 13; + * Generated from protobuf field int32 resource_error_count = 13 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @return int */ public function getResourceErrorCount() @@ -330,12 +330,12 @@ public function getResourceErrorCount() } /** - * The number or resources with errors. Note: This is not the total - * number of errors as each resource can have more than one error. - * This is used to indicate truncation by having a `resource_error_count` - * that is higher than the size of `resource_error_details`. + * Output only. The number or resources with errors. Note: This is not the + * total number of errors as each resource can have more than one error. This + * is used to indicate truncation by having a `resource_error_count` that is + * higher than the size of `resource_error_details`. * - * Generated from protobuf field int32 resource_error_count = 13; + * Generated from protobuf field int32 resource_error_count = 13 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @param int $var * @return $this */ @@ -348,9 +348,9 @@ public function setResourceErrorCount($var) } /** - * Time when the subtask was created. + * Output only. Time when the subtask was created. * - * Generated from protobuf field .google.protobuf.Timestamp create_time = 7; + * Generated from protobuf field .google.protobuf.Timestamp create_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @return \Google\Protobuf\Timestamp|null */ public function getCreateTime() @@ -369,9 +369,9 @@ public function clearCreateTime() } /** - * Time when the subtask was created. + * Output only. Time when the subtask was created. * - * Generated from protobuf field .google.protobuf.Timestamp create_time = 7; + * Generated from protobuf field .google.protobuf.Timestamp create_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @param \Google\Protobuf\Timestamp $var * @return $this */ @@ -384,9 +384,9 @@ public function setCreateTime($var) } /** - * Time when the subtask was last updated. + * Output only. Time when the subtask was last updated. * - * Generated from protobuf field .google.protobuf.Timestamp last_update_time = 8; + * Generated from protobuf field .google.protobuf.Timestamp last_update_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @return \Google\Protobuf\Timestamp|null */ public function getLastUpdateTime() @@ -405,9 +405,9 @@ public function clearLastUpdateTime() } /** - * Time when the subtask was last updated. + * Output only. Time when the subtask was last updated. * - * Generated from protobuf field .google.protobuf.Timestamp last_update_time = 8; + * Generated from protobuf field .google.protobuf.Timestamp last_update_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @param \Google\Protobuf\Timestamp $var * @return $this */ @@ -420,9 +420,9 @@ public function setLastUpdateTime($var) } /** - * The metrics for the subtask. + * Output only. The metrics for the subtask. * - * Generated from protobuf field repeated .google.cloud.bigquery.migration.v2.TimeSeries metrics = 11; + * Generated from protobuf field repeated .google.cloud.bigquery.migration.v2.TimeSeries metrics = 11 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @return RepeatedField<\Google\Cloud\BigQuery\Migration\V2\TimeSeries> */ public function getMetrics() @@ -431,9 +431,9 @@ public function getMetrics() } /** - * The metrics for the subtask. + * Output only. The metrics for the subtask. * - * Generated from protobuf field repeated .google.cloud.bigquery.migration.v2.TimeSeries metrics = 11; + * Generated from protobuf field repeated .google.cloud.bigquery.migration.v2.TimeSeries metrics = 11 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @param \Google\Cloud\BigQuery\Migration\V2\TimeSeries[] $var * @return $this */ diff --git a/BigQueryMigration/src/V2/MigrationTask.php b/BigQueryMigration/src/V2/MigrationTask.php index 3706c78bb408..70dbf6fb2156 100644 --- a/BigQueryMigration/src/V2/MigrationTask.php +++ b/BigQueryMigration/src/V2/MigrationTask.php @@ -24,13 +24,19 @@ class MigrationTask extends \Google\Protobuf\Internal\Message */ protected $id = ''; /** - * The type of the task. This must be one of the supported task types: - * Translation_Teradata2BQ, Translation_Redshift2BQ, Translation_Bteq2BQ, - * Translation_Oracle2BQ, Translation_HiveQL2BQ, Translation_SparkSQL2BQ, - * Translation_Snowflake2BQ, Translation_Netezza2BQ, - * Translation_AzureSynapse2BQ, Translation_Vertica2BQ, - * Translation_SQLServer2BQ, Translation_Presto2BQ, Translation_MySQL2BQ, - * Translation_Postgresql2BQ, Translation_SQLite2BQ, Translation_Greenplum2BQ. + * The type of the task. This must be one of the supported task types. + * Assessment: + * - `Assessment_Hive` - Assessment for Hive. + * - `Assessment_Redshift` - Assessment for Redshift. + * - `Assessment_Snowflake` - Assessment for Snowflake. + * - `Assessment_Teradata_v2` - Assessment for Teradata. + * - `Assessment_Oracle` - Assessment for Oracle. + * - `Assessment_Hadoop` - Assessment for Hadoop. + * - `Assessment_Informatica` - Assessment for Informatica. + * Translation: + * See [Supported Task + * Types](https://docs.cloud.google.com/bigquery/docs/api-sql-translator#supported_task_types) + * for a list of supported task types. * * Generated from protobuf field string type = 2; */ @@ -49,15 +55,15 @@ class MigrationTask extends \Google\Protobuf\Internal\Message */ protected $processing_error = null; /** - * Time when the task was created. + * Output only. Time when the task was created. * - * Generated from protobuf field .google.protobuf.Timestamp create_time = 6; + * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; */ protected $create_time = null; /** - * Time when the task was last updated. + * Output only. Time when the task was last updated. * - * Generated from protobuf field .google.protobuf.Timestamp last_update_time = 7; + * Generated from protobuf field .google.protobuf.Timestamp last_update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; */ protected $last_update_time = null; /** @@ -69,18 +75,18 @@ class MigrationTask extends \Google\Protobuf\Internal\Message */ private $resource_error_details; /** - * The number or resources with errors. Note: This is not the total - * number of errors as each resource can have more than one error. - * This is used to indicate truncation by having a `resource_error_count` - * that is higher than the size of `resource_error_details`. + * Output only. The number or resources with errors. Note: This is not the + * total number of errors as each resource can have more than one error. This + * is used to indicate truncation by having a `resource_error_count` that is + * higher than the size of `resource_error_details`. * - * Generated from protobuf field int32 resource_error_count = 18; + * Generated from protobuf field int32 resource_error_count = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; */ protected $resource_error_count = 0; /** - * The metrics for the task. + * Output only. The metrics for the task. * - * Generated from protobuf field repeated .google.cloud.bigquery.migration.v2.TimeSeries metrics = 19; + * Generated from protobuf field repeated .google.cloud.bigquery.migration.v2.TimeSeries metrics = 19 [(.google.api.field_behavior) = OUTPUT_ONLY]; */ private $metrics; /** @@ -90,15 +96,17 @@ class MigrationTask extends \Google\Protobuf\Internal\Message */ protected $task_result = null; /** - * Count of all the processing errors in this task and its subtasks. + * Output only. Count of all the processing errors in this task and its + * subtasks. * - * Generated from protobuf field int32 total_processing_error_count = 21; + * Generated from protobuf field int32 total_processing_error_count = 21 [(.google.api.field_behavior) = OUTPUT_ONLY]; */ protected $total_processing_error_count = 0; /** - * Count of all the resource errors in this task and its subtasks. + * Output only. Count of all the resource errors in this task and its + * subtasks. * - * Generated from protobuf field int32 total_resource_error_count = 22; + * Generated from protobuf field int32 total_resource_error_count = 22 [(.google.api.field_behavior) = OUTPUT_ONLY]; */ protected $total_resource_error_count = 0; protected $task_details; @@ -109,6 +117,8 @@ class MigrationTask extends \Google\Protobuf\Internal\Message * @param array $data { * Optional. Data for populating the Message object. * + * @type \Google\Cloud\BigQuery\Migration\V2\AssessmentTaskDetails $assessment_task_details + * Task configuration for Assessment. * @type \Google\Cloud\BigQuery\Migration\V2\TranslationConfigDetails $translation_config_details * Task configuration for CW Batch/Offline SQL Translation. * @type \Google\Cloud\BigQuery\Migration\V2\TranslationDetails $translation_details @@ -117,39 +127,47 @@ class MigrationTask extends \Google\Protobuf\Internal\Message * Output only. Immutable. The unique identifier for the migration task. The * ID is server-generated. * @type string $type - * The type of the task. This must be one of the supported task types: - * Translation_Teradata2BQ, Translation_Redshift2BQ, Translation_Bteq2BQ, - * Translation_Oracle2BQ, Translation_HiveQL2BQ, Translation_SparkSQL2BQ, - * Translation_Snowflake2BQ, Translation_Netezza2BQ, - * Translation_AzureSynapse2BQ, Translation_Vertica2BQ, - * Translation_SQLServer2BQ, Translation_Presto2BQ, Translation_MySQL2BQ, - * Translation_Postgresql2BQ, Translation_SQLite2BQ, Translation_Greenplum2BQ. + * The type of the task. This must be one of the supported task types. + * Assessment: + * - `Assessment_Hive` - Assessment for Hive. + * - `Assessment_Redshift` - Assessment for Redshift. + * - `Assessment_Snowflake` - Assessment for Snowflake. + * - `Assessment_Teradata_v2` - Assessment for Teradata. + * - `Assessment_Oracle` - Assessment for Oracle. + * - `Assessment_Hadoop` - Assessment for Hadoop. + * - `Assessment_Informatica` - Assessment for Informatica. + * Translation: + * See [Supported Task + * Types](https://docs.cloud.google.com/bigquery/docs/api-sql-translator#supported_task_types) + * for a list of supported task types. * @type int $state * Output only. The current state of the task. * @type \Google\Rpc\ErrorInfo $processing_error * Output only. An explanation that may be populated when the task is in * FAILED state. * @type \Google\Protobuf\Timestamp $create_time - * Time when the task was created. + * Output only. Time when the task was created. * @type \Google\Protobuf\Timestamp $last_update_time - * Time when the task was last updated. + * Output only. Time when the task was last updated. * @type \Google\Cloud\BigQuery\Migration\V2\ResourceErrorDetail[] $resource_error_details * Output only. Provides details to errors and issues encountered while * processing the task. Presence of error details does not mean that the task * failed. * @type int $resource_error_count - * The number or resources with errors. Note: This is not the total - * number of errors as each resource can have more than one error. - * This is used to indicate truncation by having a `resource_error_count` - * that is higher than the size of `resource_error_details`. + * Output only. The number or resources with errors. Note: This is not the + * total number of errors as each resource can have more than one error. This + * is used to indicate truncation by having a `resource_error_count` that is + * higher than the size of `resource_error_details`. * @type \Google\Cloud\BigQuery\Migration\V2\TimeSeries[] $metrics - * The metrics for the task. + * Output only. The metrics for the task. * @type \Google\Cloud\BigQuery\Migration\V2\MigrationTaskResult $task_result * Output only. The result of the task. * @type int $total_processing_error_count - * Count of all the processing errors in this task and its subtasks. + * Output only. Count of all the processing errors in this task and its + * subtasks. * @type int $total_resource_error_count - * Count of all the resource errors in this task and its subtasks. + * Output only. Count of all the resource errors in this task and its + * subtasks. * } */ public function __construct($data = NULL) { @@ -157,6 +175,37 @@ public function __construct($data = NULL) { parent::__construct($data); } + /** + * Task configuration for Assessment. + * + * Generated from protobuf field .google.cloud.bigquery.migration.v2.AssessmentTaskDetails assessment_task_details = 12; + * @return \Google\Cloud\BigQuery\Migration\V2\AssessmentTaskDetails|null + */ + public function getAssessmentTaskDetails() + { + return $this->readOneof(12); + } + + public function hasAssessmentTaskDetails() + { + return $this->hasOneof(12); + } + + /** + * Task configuration for Assessment. + * + * Generated from protobuf field .google.cloud.bigquery.migration.v2.AssessmentTaskDetails assessment_task_details = 12; + * @param \Google\Cloud\BigQuery\Migration\V2\AssessmentTaskDetails $var + * @return $this + */ + public function setAssessmentTaskDetails($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\BigQuery\Migration\V2\AssessmentTaskDetails::class); + $this->writeOneof(12, $var); + + return $this; + } + /** * Task configuration for CW Batch/Offline SQL Translation. * @@ -248,13 +297,19 @@ public function setId($var) } /** - * The type of the task. This must be one of the supported task types: - * Translation_Teradata2BQ, Translation_Redshift2BQ, Translation_Bteq2BQ, - * Translation_Oracle2BQ, Translation_HiveQL2BQ, Translation_SparkSQL2BQ, - * Translation_Snowflake2BQ, Translation_Netezza2BQ, - * Translation_AzureSynapse2BQ, Translation_Vertica2BQ, - * Translation_SQLServer2BQ, Translation_Presto2BQ, Translation_MySQL2BQ, - * Translation_Postgresql2BQ, Translation_SQLite2BQ, Translation_Greenplum2BQ. + * The type of the task. This must be one of the supported task types. + * Assessment: + * - `Assessment_Hive` - Assessment for Hive. + * - `Assessment_Redshift` - Assessment for Redshift. + * - `Assessment_Snowflake` - Assessment for Snowflake. + * - `Assessment_Teradata_v2` - Assessment for Teradata. + * - `Assessment_Oracle` - Assessment for Oracle. + * - `Assessment_Hadoop` - Assessment for Hadoop. + * - `Assessment_Informatica` - Assessment for Informatica. + * Translation: + * See [Supported Task + * Types](https://docs.cloud.google.com/bigquery/docs/api-sql-translator#supported_task_types) + * for a list of supported task types. * * Generated from protobuf field string type = 2; * @return string @@ -265,13 +320,19 @@ public function getType() } /** - * The type of the task. This must be one of the supported task types: - * Translation_Teradata2BQ, Translation_Redshift2BQ, Translation_Bteq2BQ, - * Translation_Oracle2BQ, Translation_HiveQL2BQ, Translation_SparkSQL2BQ, - * Translation_Snowflake2BQ, Translation_Netezza2BQ, - * Translation_AzureSynapse2BQ, Translation_Vertica2BQ, - * Translation_SQLServer2BQ, Translation_Presto2BQ, Translation_MySQL2BQ, - * Translation_Postgresql2BQ, Translation_SQLite2BQ, Translation_Greenplum2BQ. + * The type of the task. This must be one of the supported task types. + * Assessment: + * - `Assessment_Hive` - Assessment for Hive. + * - `Assessment_Redshift` - Assessment for Redshift. + * - `Assessment_Snowflake` - Assessment for Snowflake. + * - `Assessment_Teradata_v2` - Assessment for Teradata. + * - `Assessment_Oracle` - Assessment for Oracle. + * - `Assessment_Hadoop` - Assessment for Hadoop. + * - `Assessment_Informatica` - Assessment for Informatica. + * Translation: + * See [Supported Task + * Types](https://docs.cloud.google.com/bigquery/docs/api-sql-translator#supported_task_types) + * for a list of supported task types. * * Generated from protobuf field string type = 2; * @param string $var @@ -350,9 +411,9 @@ public function setProcessingError($var) } /** - * Time when the task was created. + * Output only. Time when the task was created. * - * Generated from protobuf field .google.protobuf.Timestamp create_time = 6; + * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @return \Google\Protobuf\Timestamp|null */ public function getCreateTime() @@ -371,9 +432,9 @@ public function clearCreateTime() } /** - * Time when the task was created. + * Output only. Time when the task was created. * - * Generated from protobuf field .google.protobuf.Timestamp create_time = 6; + * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @param \Google\Protobuf\Timestamp $var * @return $this */ @@ -386,9 +447,9 @@ public function setCreateTime($var) } /** - * Time when the task was last updated. + * Output only. Time when the task was last updated. * - * Generated from protobuf field .google.protobuf.Timestamp last_update_time = 7; + * Generated from protobuf field .google.protobuf.Timestamp last_update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @return \Google\Protobuf\Timestamp|null */ public function getLastUpdateTime() @@ -407,9 +468,9 @@ public function clearLastUpdateTime() } /** - * Time when the task was last updated. + * Output only. Time when the task was last updated. * - * Generated from protobuf field .google.protobuf.Timestamp last_update_time = 7; + * Generated from protobuf field .google.protobuf.Timestamp last_update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @param \Google\Protobuf\Timestamp $var * @return $this */ @@ -452,12 +513,12 @@ public function setResourceErrorDetails($var) } /** - * The number or resources with errors. Note: This is not the total - * number of errors as each resource can have more than one error. - * This is used to indicate truncation by having a `resource_error_count` - * that is higher than the size of `resource_error_details`. + * Output only. The number or resources with errors. Note: This is not the + * total number of errors as each resource can have more than one error. This + * is used to indicate truncation by having a `resource_error_count` that is + * higher than the size of `resource_error_details`. * - * Generated from protobuf field int32 resource_error_count = 18; + * Generated from protobuf field int32 resource_error_count = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @return int */ public function getResourceErrorCount() @@ -466,12 +527,12 @@ public function getResourceErrorCount() } /** - * The number or resources with errors. Note: This is not the total - * number of errors as each resource can have more than one error. - * This is used to indicate truncation by having a `resource_error_count` - * that is higher than the size of `resource_error_details`. + * Output only. The number or resources with errors. Note: This is not the + * total number of errors as each resource can have more than one error. This + * is used to indicate truncation by having a `resource_error_count` that is + * higher than the size of `resource_error_details`. * - * Generated from protobuf field int32 resource_error_count = 18; + * Generated from protobuf field int32 resource_error_count = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @param int $var * @return $this */ @@ -484,9 +545,9 @@ public function setResourceErrorCount($var) } /** - * The metrics for the task. + * Output only. The metrics for the task. * - * Generated from protobuf field repeated .google.cloud.bigquery.migration.v2.TimeSeries metrics = 19; + * Generated from protobuf field repeated .google.cloud.bigquery.migration.v2.TimeSeries metrics = 19 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @return RepeatedField<\Google\Cloud\BigQuery\Migration\V2\TimeSeries> */ public function getMetrics() @@ -495,9 +556,9 @@ public function getMetrics() } /** - * The metrics for the task. + * Output only. The metrics for the task. * - * Generated from protobuf field repeated .google.cloud.bigquery.migration.v2.TimeSeries metrics = 19; + * Generated from protobuf field repeated .google.cloud.bigquery.migration.v2.TimeSeries metrics = 19 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @param \Google\Cloud\BigQuery\Migration\V2\TimeSeries[] $var * @return $this */ @@ -546,9 +607,10 @@ public function setTaskResult($var) } /** - * Count of all the processing errors in this task and its subtasks. + * Output only. Count of all the processing errors in this task and its + * subtasks. * - * Generated from protobuf field int32 total_processing_error_count = 21; + * Generated from protobuf field int32 total_processing_error_count = 21 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @return int */ public function getTotalProcessingErrorCount() @@ -557,9 +619,10 @@ public function getTotalProcessingErrorCount() } /** - * Count of all the processing errors in this task and its subtasks. + * Output only. Count of all the processing errors in this task and its + * subtasks. * - * Generated from protobuf field int32 total_processing_error_count = 21; + * Generated from protobuf field int32 total_processing_error_count = 21 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @param int $var * @return $this */ @@ -572,9 +635,10 @@ public function setTotalProcessingErrorCount($var) } /** - * Count of all the resource errors in this task and its subtasks. + * Output only. Count of all the resource errors in this task and its + * subtasks. * - * Generated from protobuf field int32 total_resource_error_count = 22; + * Generated from protobuf field int32 total_resource_error_count = 22 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @return int */ public function getTotalResourceErrorCount() @@ -583,9 +647,10 @@ public function getTotalResourceErrorCount() } /** - * Count of all the resource errors in this task and its subtasks. + * Output only. Count of all the resource errors in this task and its + * subtasks. * - * Generated from protobuf field int32 total_resource_error_count = 22; + * Generated from protobuf field int32 total_resource_error_count = 22 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @param int $var * @return $this */ diff --git a/BigQueryMigration/src/V2/MigrationTask/State.php b/BigQueryMigration/src/V2/MigrationTask/State.php index 79a22dfebe03..6aa47c9b9b81 100644 --- a/BigQueryMigration/src/V2/MigrationTask/State.php +++ b/BigQueryMigration/src/V2/MigrationTask/State.php @@ -38,7 +38,7 @@ class State */ const RUNNING = 3; /** - * Tha task is paused. Assigned subtasks can continue, but no new subtasks + * The task is paused. Assigned subtasks can continue, but no new subtasks * will be scheduled. * * Generated from protobuf enum PAUSED = 4; diff --git a/BigQueryMigration/src/V2/MigrationWorkflow.php b/BigQueryMigration/src/V2/MigrationWorkflow.php index 31090616ed27..89111264b873 100644 --- a/BigQueryMigration/src/V2/MigrationWorkflow.php +++ b/BigQueryMigration/src/V2/MigrationWorkflow.php @@ -46,15 +46,15 @@ class MigrationWorkflow extends \Google\Protobuf\Internal\Message */ protected $state = 0; /** - * Time when the workflow was created. + * Output only. Time when the workflow was created. * - * Generated from protobuf field .google.protobuf.Timestamp create_time = 4; + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; */ protected $create_time = null; /** - * Time when the workflow was last updated. + * Output only. Time when the workflow was last updated. * - * Generated from protobuf field .google.protobuf.Timestamp last_update_time = 5; + * Generated from protobuf field .google.protobuf.Timestamp last_update_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; */ protected $last_update_time = null; @@ -78,9 +78,9 @@ class MigrationWorkflow extends \Google\Protobuf\Internal\Message * @type int $state * Output only. That status of the workflow. * @type \Google\Protobuf\Timestamp $create_time - * Time when the workflow was created. + * Output only. Time when the workflow was created. * @type \Google\Protobuf\Timestamp $last_update_time - * Time when the workflow was last updated. + * Output only. Time when the workflow was last updated. * } */ public function __construct($data = NULL) { @@ -203,9 +203,9 @@ public function setState($var) } /** - * Time when the workflow was created. + * Output only. Time when the workflow was created. * - * Generated from protobuf field .google.protobuf.Timestamp create_time = 4; + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @return \Google\Protobuf\Timestamp|null */ public function getCreateTime() @@ -224,9 +224,9 @@ public function clearCreateTime() } /** - * Time when the workflow was created. + * Output only. Time when the workflow was created. * - * Generated from protobuf field .google.protobuf.Timestamp create_time = 4; + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @param \Google\Protobuf\Timestamp $var * @return $this */ @@ -239,9 +239,9 @@ public function setCreateTime($var) } /** - * Time when the workflow was last updated. + * Output only. Time when the workflow was last updated. * - * Generated from protobuf field .google.protobuf.Timestamp last_update_time = 5; + * Generated from protobuf field .google.protobuf.Timestamp last_update_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @return \Google\Protobuf\Timestamp|null */ public function getLastUpdateTime() @@ -260,9 +260,9 @@ public function clearLastUpdateTime() } /** - * Time when the workflow was last updated. + * Output only. Time when the workflow was last updated. * - * Generated from protobuf field .google.protobuf.Timestamp last_update_time = 5; + * Generated from protobuf field .google.protobuf.Timestamp last_update_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; * @param \Google\Protobuf\Timestamp $var * @return $this */ diff --git a/BigQueryMigration/src/V2/SourceSpec.php b/BigQueryMigration/src/V2/SourceSpec.php index f4f281f2a7d7..522af4edaa58 100644 --- a/BigQueryMigration/src/V2/SourceSpec.php +++ b/BigQueryMigration/src/V2/SourceSpec.php @@ -33,6 +33,8 @@ class SourceSpec extends \Google\Protobuf\Internal\Message * The base URI for all files to be read in as sources for translation. * @type \Google\Cloud\BigQuery\Migration\V2\Literal $literal * Source literal. + * @type string $gcs_file_path + * The path to a single source file in Cloud Storage. * @type string $encoding * Optional. The optional field to specify the encoding of the sql bytes. * } @@ -104,6 +106,37 @@ public function setLiteral($var) return $this; } + /** + * The path to a single source file in Cloud Storage. + * + * Generated from protobuf field string gcs_file_path = 4; + * @return string + */ + public function getGcsFilePath() + { + return $this->readOneof(4); + } + + public function hasGcsFilePath() + { + return $this->hasOneof(4); + } + + /** + * The path to a single source file in Cloud Storage. + * + * Generated from protobuf field string gcs_file_path = 4; + * @param string $var + * @return $this + */ + public function setGcsFilePath($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(4, $var); + + return $this; + } + /** * Optional. The optional field to specify the encoding of the sql bytes. * diff --git a/BigQueryMigration/src/V2/SuggestionConfig.php b/BigQueryMigration/src/V2/SuggestionConfig.php new file mode 100644 index 000000000000..477085e215c3 --- /dev/null +++ b/BigQueryMigration/src/V2/SuggestionConfig.php @@ -0,0 +1,67 @@ +google.cloud.bigquery.migration.v2.SuggestionConfig + */ +class SuggestionConfig extends \Google\Protobuf\Internal\Message +{ + /** + * The list of suggestion steps to skip. + * + * Generated from protobuf field repeated .google.cloud.bigquery.migration.v2.SuggestionStep skip_suggestion_steps = 1; + */ + private $skip_suggestion_steps; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\BigQuery\Migration\V2\SuggestionStep[] $skip_suggestion_steps + * The list of suggestion steps to skip. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Bigquery\Migration\V2\TranslationDetails::initOnce(); + parent::__construct($data); + } + + /** + * The list of suggestion steps to skip. + * + * Generated from protobuf field repeated .google.cloud.bigquery.migration.v2.SuggestionStep skip_suggestion_steps = 1; + * @return RepeatedField<\Google\Cloud\BigQuery\Migration\V2\SuggestionStep> + */ + public function getSkipSuggestionSteps() + { + return $this->skip_suggestion_steps; + } + + /** + * The list of suggestion steps to skip. + * + * Generated from protobuf field repeated .google.cloud.bigquery.migration.v2.SuggestionStep skip_suggestion_steps = 1; + * @param \Google\Cloud\BigQuery\Migration\V2\SuggestionStep[] $var + * @return $this + */ + public function setSkipSuggestionSteps($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\BigQuery\Migration\V2\SuggestionStep::class); + $this->skip_suggestion_steps = $arr; + + return $this; + } + +} + diff --git a/BigQueryMigration/src/V2/SuggestionStep.php b/BigQueryMigration/src/V2/SuggestionStep.php new file mode 100644 index 000000000000..1e0883831ffd --- /dev/null +++ b/BigQueryMigration/src/V2/SuggestionStep.php @@ -0,0 +1,101 @@ +google.cloud.bigquery.migration.v2.SuggestionStep + */ +class SuggestionStep extends \Google\Protobuf\Internal\Message +{ + /** + * The type of suggestion. + * + * Generated from protobuf field .google.cloud.bigquery.migration.v2.SuggestionStep.SuggestionType suggestion_type = 1; + */ + protected $suggestion_type = 0; + /** + * The rewrite target. + * + * Generated from protobuf field .google.cloud.bigquery.migration.v2.SuggestionStep.RewriteTarget rewrite_target = 2; + */ + protected $rewrite_target = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $suggestion_type + * The type of suggestion. + * @type int $rewrite_target + * The rewrite target. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Bigquery\Migration\V2\TranslationDetails::initOnce(); + parent::__construct($data); + } + + /** + * The type of suggestion. + * + * Generated from protobuf field .google.cloud.bigquery.migration.v2.SuggestionStep.SuggestionType suggestion_type = 1; + * @return int + */ + public function getSuggestionType() + { + return $this->suggestion_type; + } + + /** + * The type of suggestion. + * + * Generated from protobuf field .google.cloud.bigquery.migration.v2.SuggestionStep.SuggestionType suggestion_type = 1; + * @param int $var + * @return $this + */ + public function setSuggestionType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\BigQuery\Migration\V2\SuggestionStep\SuggestionType::class); + $this->suggestion_type = $var; + + return $this; + } + + /** + * The rewrite target. + * + * Generated from protobuf field .google.cloud.bigquery.migration.v2.SuggestionStep.RewriteTarget rewrite_target = 2; + * @return int + */ + public function getRewriteTarget() + { + return $this->rewrite_target; + } + + /** + * The rewrite target. + * + * Generated from protobuf field .google.cloud.bigquery.migration.v2.SuggestionStep.RewriteTarget rewrite_target = 2; + * @param int $var + * @return $this + */ + public function setRewriteTarget($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\BigQuery\Migration\V2\SuggestionStep\RewriteTarget::class); + $this->rewrite_target = $var; + + return $this; + } + +} + diff --git a/BigQueryMigration/src/V2/SuggestionStep/RewriteTarget.php b/BigQueryMigration/src/V2/SuggestionStep/RewriteTarget.php new file mode 100644 index 000000000000..e14cf0108be8 --- /dev/null +++ b/BigQueryMigration/src/V2/SuggestionStep/RewriteTarget.php @@ -0,0 +1,61 @@ +google.cloud.bigquery.migration.v2.SuggestionStep.RewriteTarget + */ +class RewriteTarget +{ + /** + * Rewrite target unspecified. + * + * Generated from protobuf enum REWRITE_TARGET_UNSPECIFIED = 0; + */ + const REWRITE_TARGET_UNSPECIFIED = 0; + /** + * Source SQL. + * + * Generated from protobuf enum SOURCE_SQL = 1; + */ + const SOURCE_SQL = 1; + /** + * Target SQL. + * + * Generated from protobuf enum TARGET_SQL = 2; + */ + const TARGET_SQL = 2; + + private static $valueToName = [ + self::REWRITE_TARGET_UNSPECIFIED => 'REWRITE_TARGET_UNSPECIFIED', + self::SOURCE_SQL => 'SOURCE_SQL', + self::TARGET_SQL => 'TARGET_SQL', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/BigQueryMigration/src/V2/SuggestionStep/SuggestionType.php b/BigQueryMigration/src/V2/SuggestionStep/SuggestionType.php new file mode 100644 index 000000000000..171e9355aba1 --- /dev/null +++ b/BigQueryMigration/src/V2/SuggestionStep/SuggestionType.php @@ -0,0 +1,61 @@ +google.cloud.bigquery.migration.v2.SuggestionStep.SuggestionType + */ +class SuggestionType +{ + /** + * Suggestion type unspecified. + * + * Generated from protobuf enum SUGGESTION_TYPE_UNSPECIFIED = 0; + */ + const SUGGESTION_TYPE_UNSPECIFIED = 0; + /** + * Query customization. + * + * Generated from protobuf enum QUERY_CUSTOMIZATION = 1; + */ + const QUERY_CUSTOMIZATION = 1; + /** + * Translation explanation. + * + * Generated from protobuf enum TRANSLATION_EXPLANATION = 2; + */ + const TRANSLATION_EXPLANATION = 2; + + private static $valueToName = [ + self::SUGGESTION_TYPE_UNSPECIFIED => 'SUGGESTION_TYPE_UNSPECIFIED', + self::QUERY_CUSTOMIZATION => 'QUERY_CUSTOMIZATION', + self::TRANSLATION_EXPLANATION => 'TRANSLATION_EXPLANATION', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/BigQueryMigration/src/V2/TranslationDetails.php b/BigQueryMigration/src/V2/TranslationDetails.php index ae4332d69204..adc0f676f7da 100644 --- a/BigQueryMigration/src/V2/TranslationDetails.php +++ b/BigQueryMigration/src/V2/TranslationDetails.php @@ -51,6 +51,12 @@ class TranslationDetails extends \Google\Protobuf\Internal\Message * Generated from protobuf field repeated string target_types = 5; */ private $target_types; + /** + * The configuration for the suggestion if requested as a target type. + * + * Generated from protobuf field .google.cloud.bigquery.migration.v2.SuggestionConfig suggestion_config = 6; + */ + protected $suggestion_config = null; /** * Constructor. @@ -73,6 +79,8 @@ class TranslationDetails extends \Google\Protobuf\Internal\Message * lineage_from_sql_scripts, etc. If not specified, a default set of * targets will be generated. Some additional target types may be slower to * generate. See the documentation for the set of available target types. + * @type \Google\Cloud\BigQuery\Migration\V2\SuggestionConfig $suggestion_config + * The configuration for the suggestion if requested as a target type. * } */ public function __construct($data = NULL) { @@ -230,5 +238,41 @@ public function setTargetTypes($var) return $this; } + /** + * The configuration for the suggestion if requested as a target type. + * + * Generated from protobuf field .google.cloud.bigquery.migration.v2.SuggestionConfig suggestion_config = 6; + * @return \Google\Cloud\BigQuery\Migration\V2\SuggestionConfig|null + */ + public function getSuggestionConfig() + { + return $this->suggestion_config; + } + + public function hasSuggestionConfig() + { + return isset($this->suggestion_config); + } + + public function clearSuggestionConfig() + { + unset($this->suggestion_config); + } + + /** + * The configuration for the suggestion if requested as a target type. + * + * Generated from protobuf field .google.cloud.bigquery.migration.v2.SuggestionConfig suggestion_config = 6; + * @param \Google\Cloud\BigQuery\Migration\V2\SuggestionConfig $var + * @return $this + */ + public function setSuggestionConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\BigQuery\Migration\V2\SuggestionConfig::class); + $this->suggestion_config = $var; + + return $this; + } + } diff --git a/BigQueryMigration/src/V2/TranslationTaskResult.php b/BigQueryMigration/src/V2/TranslationTaskResult.php index 421b2b4905bd..765b346ef975 100644 --- a/BigQueryMigration/src/V2/TranslationTaskResult.php +++ b/BigQueryMigration/src/V2/TranslationTaskResult.php @@ -27,6 +27,12 @@ class TranslationTaskResult extends \Google\Protobuf\Internal\Message * Generated from protobuf field repeated .google.cloud.bigquery.migration.v2.GcsReportLogMessage report_log_messages = 2; */ private $report_log_messages; + /** + * The Cloud Console URI for the migration workflow. + * + * Generated from protobuf field string console_uri = 3; + */ + protected $console_uri = ''; /** * Constructor. @@ -38,6 +44,8 @@ class TranslationTaskResult extends \Google\Protobuf\Internal\Message * The list of the translated literals. * @type \Google\Cloud\BigQuery\Migration\V2\GcsReportLogMessage[] $report_log_messages * The records from the aggregate CSV report for a migration workflow. + * @type string $console_uri + * The Cloud Console URI for the migration workflow. * } */ public function __construct($data = NULL) { @@ -97,5 +105,31 @@ public function setReportLogMessages($var) return $this; } + /** + * The Cloud Console URI for the migration workflow. + * + * Generated from protobuf field string console_uri = 3; + * @return string + */ + public function getConsoleUri() + { + return $this->console_uri; + } + + /** + * The Cloud Console URI for the migration workflow. + * + * Generated from protobuf field string console_uri = 3; + * @param string $var + * @return $this + */ + public function setConsoleUri($var) + { + GPBUtil::checkString($var, True); + $this->console_uri = $var; + + return $this; + } + } From 3c277b6aff86a28350af1466cff1b457ec32ab4a Mon Sep 17 00:00:00 2001 From: Salil Gulati Date: Fri, 29 May 2026 07:33:18 +0000 Subject: [PATCH 6/7] feat(storage): implement backend-integrated auto-deletion of source objects on compose --- Storage/src/Bucket.php | 2 + .../ServiceDefinition/storage-v1.json | 4 + Storage/tests/System/ManageObjectsTest.php | 78 ++++++++++++++++++ Storage/tests/Unit/BucketTest.php | 81 +++++++++++++++++++ 4 files changed, 165 insertions(+) diff --git a/Storage/src/Bucket.php b/Storage/src/Bucket.php index 887cffd4f84d..c15b50d07b32 100644 --- a/Storage/src/Bucket.php +++ b/Storage/src/Bucket.php @@ -1145,6 +1145,8 @@ public function update(array $options = []) * matches the given value. * @type string $ifMetagenerationMatch Makes the operation conditional on whether the object's current * metageneration matches the given value. + * @type bool $deleteSourceObjects If true, the source objects will be + * deleted after a successful compose operation. * } * @return StorageObject * @throws \InvalidArgumentException diff --git a/Storage/src/Connection/ServiceDefinition/storage-v1.json b/Storage/src/Connection/ServiceDefinition/storage-v1.json index dcce6fbecb50..55ebe63e52ba 100644 --- a/Storage/src/Connection/ServiceDefinition/storage-v1.json +++ b/Storage/src/Connection/ServiceDefinition/storage-v1.json @@ -897,6 +897,10 @@ "$ref": "Object", "description": "Properties of the resulting object." }, + "deleteSourceObjects": { + "type": "boolean", + "description": "If true, the source objects will be deleted after a successful compose operation." + }, "kind": { "type": "string", "description": "The kind of item this is.", diff --git a/Storage/tests/System/ManageObjectsTest.php b/Storage/tests/System/ManageObjectsTest.php index 847ad64cc0be..abdca16cfbe3 100644 --- a/Storage/tests/System/ManageObjectsTest.php +++ b/Storage/tests/System/ManageObjectsTest.php @@ -597,6 +597,84 @@ public function testComposeObjects($object) return $composedObject; } + public function testComposeObjectsWithDeleteSourceObjects() + { + $source1 = self::$bucket->upload('content1', ['name' => uniqid(self::TESTING_PREFIX) . '-s1.txt']); + $source2 = self::$bucket->upload('content2', ['name' => uniqid(self::TESTING_PREFIX) . '-s2.txt']); + + $this->assertTrue($source1->exists()); + $this->assertTrue($source2->exists()); + + $name = uniqid(self::TESTING_PREFIX) . '-composed.txt'; + $composedObject = self::$bucket->compose( + [$source1, $source2], + $name, + ['deleteSourceObjects' => true] + ); + + $this->assertEquals($name, $composedObject->name()); + $this->assertEquals('content1content2', $composedObject->downloadAsString()); + + $this->assertFalse($source1->exists()); + $this->assertFalse($source2->exists()); + + $composedObject->delete(); + } + + public function testComposeObjectsWithDeleteSourceObjectsFalse() + { + $source1 = self::$bucket->upload('content1', ['name' => uniqid(self::TESTING_PREFIX) . '-s1.txt']); + $source2 = self::$bucket->upload('content2', ['name' => uniqid(self::TESTING_PREFIX) . '-s2.txt']); + + $this->assertTrue($source1->exists()); + $this->assertTrue($source2->exists()); + + $name = uniqid(self::TESTING_PREFIX) . '-composed.txt'; + $composedObject = self::$bucket->compose( + [$source1, $source2], + $name, + ['deleteSourceObjects' => false] + ); + + $this->assertEquals($name, $composedObject->name()); + $this->assertEquals('content1content2', $composedObject->downloadAsString()); + + // Source objects should still exist because deleteSourceObjects is false + $this->assertTrue($source1->exists()); + $this->assertTrue($source2->exists()); + + $source1->delete(); + $source2->delete(); + $composedObject->delete(); + } + + public function testComposeObjectsWithDeleteSourceObjectsNull() + { + $source1 = self::$bucket->upload('content1', ['name' => uniqid(self::TESTING_PREFIX) . '-s1.txt']); + $source2 = self::$bucket->upload('content2', ['name' => uniqid(self::TESTING_PREFIX) . '-s2.txt']); + + $this->assertTrue($source1->exists()); + $this->assertTrue($source2->exists()); + + $name = uniqid(self::TESTING_PREFIX) . '-composed.txt'; + $composedObject = self::$bucket->compose( + [$source1, $source2], + $name, + ['deleteSourceObjects' => null] + ); + + $this->assertEquals($name, $composedObject->name()); + $this->assertEquals('content1content2', $composedObject->downloadAsString()); + + // Source objects should still exist because deleteSourceObjects is null + $this->assertTrue($source1->exists()); + $this->assertTrue($source2->exists()); + + $source1->delete(); + $source2->delete(); + $composedObject->delete(); + } + public function testSoftDeleteObject() { $softDeleteBucketName = "soft-delete-bucket-" . uniqid(); diff --git a/Storage/tests/Unit/BucketTest.php b/Storage/tests/Unit/BucketTest.php index 23618a7c68d8..7d1a47c1a434 100644 --- a/Storage/tests/Unit/BucketTest.php +++ b/Storage/tests/Unit/BucketTest.php @@ -387,6 +387,7 @@ public function testComposeThrowsExceptionWithUnknownContentType() $bucket->compose(['file1.txt', 'file2.txt'], 'combined-files.abc'); } + /** * @dataProvider composeProvider */ @@ -419,6 +420,86 @@ public function testComposesObjects( $this->assertEquals($destinationObject, $object->name()); } + public function testComposeWithDeleteSourceObjects() + { + $acl = 'private'; + $destinationObject = 'combined-files.txt'; + $this->connection->composeObject([ + 'destinationBucket' => self::BUCKET_NAME, + 'destinationObject' => $destinationObject, + 'destinationPredefinedAcl' => $acl, + 'destination' => ['contentType' => 'text/plain'], + 'sourceObjects' => [['name' => 'file1.txt'], ['name' => 'file2.txt']], + 'deleteSourceObjects' => true, + ]) + ->willReturn([ + 'name' => $destinationObject, + 'generation' => 1 + ]) + ->shouldBeCalledTimes(1); + + $bucket = $this->getBucket(); + + $object = $bucket->compose(['file1.txt', 'file2.txt'], $destinationObject, [ + 'predefinedAcl' => $acl, + 'deleteSourceObjects' => true + ]); + + $this->assertEquals($destinationObject, $object->name()); + } + + public function testComposeWithDeleteSourceObjectsFalse() + { + $acl = 'private'; + $destinationObject = 'combined-files.txt'; + $this->connection->composeObject([ + 'destinationBucket' => self::BUCKET_NAME, + 'destinationObject' => $destinationObject, + 'destinationPredefinedAcl' => $acl, + 'destination' => ['contentType' => 'text/plain'], + 'sourceObjects' => [['name' => 'file1.txt'], ['name' => 'file2.txt']], + ]) + ->willReturn([ + 'name' => $destinationObject, + 'generation' => 1 + ]) + ->shouldBeCalledTimes(1); + $bucket = $this->getBucket(); + + $object = $bucket->compose(['file1.txt', 'file2.txt'], $destinationObject, [ + 'predefinedAcl' => $acl, + 'deleteSourceObjects' => false + ]); + + $this->assertEquals($destinationObject, $object->name()); + } + + public function testComposeWithDeleteSourceObjectsNull() + { + $acl = 'private'; + $destinationObject = 'combined-files.txt'; + $this->connection->composeObject([ + 'destinationBucket' => self::BUCKET_NAME, + 'destinationObject' => $destinationObject, + 'destinationPredefinedAcl' => $acl, + 'destination' => ['contentType' => 'text/plain'], + 'sourceObjects' => [['name' => 'file1.txt'], ['name' => 'file2.txt']], + ]) + ->willReturn([ + 'name' => $destinationObject, + 'generation' => 1 + ]) + ->shouldBeCalledTimes(1); + $bucket = $this->getBucket(); + + $object = $bucket->compose(['file1.txt', 'file2.txt'], $destinationObject, [ + 'predefinedAcl' => $acl, + 'deleteSourceObjects' => null + ]); + + $this->assertEquals($destinationObject, $object->name()); + } + public function composeProvider() { $object1 = $this->prophesize(StorageObject::class); From 31c981e625518015a52585d26275a49d53843447 Mon Sep 17 00:00:00 2001 From: Salil Gulati Date: Fri, 29 May 2026 09:32:34 +0000 Subject: [PATCH 7/7] Removed extra space --- Storage/tests/Unit/BucketTest.php | 1 - 1 file changed, 1 deletion(-) diff --git a/Storage/tests/Unit/BucketTest.php b/Storage/tests/Unit/BucketTest.php index 7d1a47c1a434..4f70471fdb21 100644 --- a/Storage/tests/Unit/BucketTest.php +++ b/Storage/tests/Unit/BucketTest.php @@ -387,7 +387,6 @@ public function testComposeThrowsExceptionWithUnknownContentType() $bucket->compose(['file1.txt', 'file2.txt'], 'combined-files.abc'); } - /** * @dataProvider composeProvider */