tree 55f296a7af76ae7a2eb7a30b74c82f7de98237db
parent 1c4cfdb76560f757cec9dbc56a290ee748a07ef0
author yoshi-code-bot <70984784+yoshi-code-bot@users.noreply.github.com> 1639481570 -0800
committer GitHub <noreply@github.com> 1639481570 -0500
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJhuIDiCRBK7hj4Ov3rIwAAqkQIAIWFPEu57XIp2yWrh26bAB/M
 a5UFGLRVfSQg7uB5IBooXi0H9L0QuuW2h2ktG2OWr1oPPxVJY8gQarO07pjizTgV
 ifGNLIAgPJMRA3pc9lRsQ4InkwHMbgvsM3hDRKfW1EVkdYO+uk42gyLV4YoB5Jgr
 qTAwhxV6xZqcr7IAdMta/luInxsbMSDIO8jOrDSv2585A/TaAxYAEnlLoMTiqmQA
 X6Oz2CEhRWmtbcXKoeUX6R4XhGWUt5Acr/TCFDZrpWEJ851bPAhXdTn65/+sPNM6
 Jw5UYU+IsQpEY6fW9+x/AQKMjYzkr0MF9w9aCYTP93aoe0+ixjMWJZN7UNvsiDk=
 =EnAO
 -----END PGP SIGNATURE-----
 

chore: Update discovery artifacts (#1635)

* chore: update docs/dyn/index.md

* chore(acceleratedmobilepageurl): update the api

* chore(accessapproval): update the api

* feat(accesscontextmanager): update the api

#### accesscontextmanager:v1

The following keys were added:
- resources.accessPolicies.methods.getIamPolicy (Total Keys: 12)
- resources.accessPolicies.methods.setIamPolicy (Total Keys: 12)
- resources.accessPolicies.methods.testIamPermissions (Total Keys: 12)
- resources.accessPolicies.resources.accessLevels.methods.testIamPermissions (Total Keys: 12)
- resources.accessPolicies.resources.servicePerimeters.methods.testIamPermissions (Total Keys: 12)
- schemas.AccessPolicy.properties.scopes (Total Keys: 2)
- schemas.AuditConfig (Total Keys: 5)
- schemas.AuditLogConfig (Total Keys: 5)
- schemas.Binding (Total Keys: 6)
- schemas.GetIamPolicyRequest (Total Keys: 3)
- schemas.GetPolicyOptions (Total Keys: 4)
- schemas.Policy (Total Keys: 8)
- schemas.SetIamPolicyRequest (Total Keys: 5)
- schemas.TestIamPermissionsRequest (Total Keys: 4)
- schemas.TestIamPermissionsResponse (Total Keys: 4)

* chore(adexchangebuyer2): update the api

* feat(admin): update the api

#### admin:directory_v1

The following keys were added:
- schemas.ChromeOsDevice.properties.orgUnitId.type (Total Keys: 1)
- schemas.UserLanguage.properties.preference.type (Total Keys: 1)

* chore(admob): update the api

* chore(adsense): update the api

* feat(analyticsadmin): update the api

#### analyticsadmin:v1alpha

The following keys were added:
- schemas.GoogleAnalyticsAdminV1alphaCustomMetric.properties.restrictedMetricType (Total Keys: 2)

* chore(analyticsdata): update the api

* chore(androiddeviceprovisioning): update the api

* chore(androidenterprise): update the api

* chore(androidpublisher): update the api

* chore(apigateway): update the api

* feat(apigee): update the api

#### apigee:v1

The following keys were added:
- resources.organizations.resources.developers.resources.balance.methods.adjust (Total Keys: 12)
- schemas.GoogleCloudApigeeV1AdjustDeveloperBalanceRequest (Total Keys: 3)

* chore(apikeys): update the api

* chore(area120tables): update the api

* chore(artifactregistry): update the api

* feat(assuredworkloads): update the api

#### assuredworkloads:v1

The following keys were added:
- schemas.GoogleCloudAssuredworkloadsV1Workload.properties.enableSovereignControls.type (Total Keys: 1)
- schemas.GoogleCloudAssuredworkloadsV1Workload.properties.kajEnrollmentState (Total Keys: 2)
- schemas.GoogleCloudAssuredworkloadsV1Workload.properties.saaEnrollmentResponse (Total Keys: 2)
- schemas.GoogleCloudAssuredworkloadsV1WorkloadSaaEnrollmentResponse (Total Keys: 5)
- schemas.GoogleCloudAssuredworkloadsV1beta1Workload.properties.enableSovereignControls.type (Total Keys: 1)
- schemas.GoogleCloudAssuredworkloadsV1beta1Workload.properties.kajEnrollmentState (Total Keys: 2)
- schemas.GoogleCloudAssuredworkloadsV1beta1Workload.properties.saaEnrollmentResponse (Total Keys: 2)
- schemas.GoogleCloudAssuredworkloadsV1beta1WorkloadSaaEnrollmentResponse (Total Keys: 5)
- schemas.GoogleCloudAssuredworkloadsVersioningV1mainWorkload.properties.enableSovereignControls.type (Total Keys: 1)
- schemas.GoogleCloudAssuredworkloadsVersioningV1mainWorkload.properties.kajEnrollmentState (Total Keys: 2)
- schemas.GoogleCloudAssuredworkloadsVersioningV1mainWorkload.properties.saaEnrollmentResponse (Total Keys: 2)
- schemas.GoogleCloudAssuredworkloadsVersioningV1mainWorkloadSaaEnrollmentResponse (Total Keys: 5)

* chore(authorizedbuyersmarketplace): update the api

* chore(baremetalsolution): update the api

* chore(bigqueryreservation): update the api

* feat(bigtableadmin): update the api

#### bigtableadmin:v1

The following keys were added:
- schemas.UndeleteTableMetadata (Total Keys: 7)

#### bigtableadmin:v2

The following keys were added:
- schemas.UndeleteTableMetadata (Total Keys: 7)

* chore(billingbudgets): update the api

* chore(binaryauthorization): update the api

* chore(blogger): update the api

* chore(books): update the api

* chore(chat): update the api

* chore(chromemanagement): update the api

* chore(chromepolicy): update the api

* chore(chromeuxreport): update the api

* feat(civicinfo): update the api

#### civicinfo:v2

The following keys were added:
- schemas.FeatureIdProto (Total Keys: 7)
- schemas.GeocodingSummary (Total Keys: 8)
- schemas.MessageSet (Total Keys: 2)
- schemas.Official.properties.geocodingSummaries (Total Keys: 2)

* chore(classroom): update the api

* chore(cloudasset): update the api

* chore(cloudbilling): update the api

* chore(cloudchannel): update the api

* chore(clouderrorreporting): update the api

* chore(cloudfunctions): update the api

* feat(cloudidentity): update the api

#### cloudidentity:v1

The following keys were added:
- resources.groups.methods.getSecuritySettings (Total Keys: 14)
- resources.groups.methods.updateSecuritySettings (Total Keys: 15)
- schemas.MemberRestriction (Total Keys: 4)
- schemas.MembershipRole.properties.restrictionEvaluations.$ref (Total Keys: 1)
- schemas.MembershipRoleRestrictionEvaluation (Total Keys: 4)
- schemas.RestrictionEvaluation (Total Keys: 7)
- schemas.SecuritySettings (Total Keys: 5)

#### cloudidentity:v1beta1

The following keys were deleted:
- schemas.CertificateInfo (Total Keys: 13)
- schemas.EndpointVerificationSpecificAttributes.properties.certificateInfo (Total Keys: 2)

The following keys were added:
- schemas.CertificateAttributes (Total Keys: 13)
- schemas.EndpointVerificationSpecificAttributes.properties.certificateAttributes (Total Keys: 2)

* chore(cloudkms): update the api

* chore(cloudprofiler): update the api

* chore(cloudresourcemanager): update the api

* chore(cloudscheduler): update the api

* chore(cloudsupport): update the api

* chore(cloudtasks): update the api

* chore(cloudtrace): update the api

* chore(composer): update the api

* chore(container): update the api

* feat(containeranalysis): update the api

#### containeranalysis:v1

The following keys were deleted:
- resources.operations.methods.cancel (Total Keys: 12)
- resources.operations.methods.delete (Total Keys: 11)
- resources.operations.methods.get (Total Keys: 11)
- resources.operations.methods.list (Total Keys: 18)
- schemas.CancelOperationRequest (Total Keys: 2)
- schemas.ListOperationsResponse (Total Keys: 5)
- schemas.Operation (Total Keys: 9)

The following keys were added:
- schemas.CVSS (Total Keys: 17)
- schemas.VulnerabilityOccurrence.properties.cvssv3.$ref (Total Keys: 1)

* chore(customsearch): update the api

* feat(datacatalog): update the api

#### datacatalog:v1

The following keys were added:
- resources.projects.resources.locations.resources.entryGroups.resources.entries.methods.star (Total Keys: 12)
- resources.projects.resources.locations.resources.entryGroups.resources.entries.methods.unstar (Total Keys: 12)
- schemas.GoogleCloudDatacatalogV1Entry.properties.personalDetails (Total Keys: 2)
- schemas.GoogleCloudDatacatalogV1PersonalDetails (Total Keys: 5)
- schemas.GoogleCloudDatacatalogV1SearchCatalogRequestScope.properties.starredOnly.type (Total Keys: 1)
- schemas.GoogleCloudDatacatalogV1StarEntryRequest (Total Keys: 2)
- schemas.GoogleCloudDatacatalogV1StarEntryResponse (Total Keys: 2)
- schemas.GoogleCloudDatacatalogV1UnstarEntryRequest (Total Keys: 2)
- schemas.GoogleCloudDatacatalogV1UnstarEntryResponse (Total Keys: 2)

* chore(dataflow): update the api

* chore(datalabeling): update the api

* feat(datamigration): update the api

#### datamigration:v1

The following keys were added:
- schemas.CloudSqlSettings.properties.cmekKeyName.type (Total Keys: 1)

* chore(datapipelines): update the api

* chore(dataproc): update the api

* chore(datastore): update the api

* chore(deploymentmanager): update the api

* chore(dialogflow): update the api

* chore(digitalassetlinks): update the api

* chore(displayvideo): update the api

* feat(dlp): update the api

#### dlp:v2

The following keys were added:
- schemas.GooglePrivacyDlpV2BigQueryOptions.properties.includedFields (Total Keys: 2)

* chore(docs): update the api

* chore(documentai): update the api

* chore(domainsrdap): update the api

* chore(drive): update the api

* chore(driveactivity): update the api

* chore(essentialcontacts): update the api

* chore(eventarc): update the api

* chore(factchecktools): update the api

* chore(fcm): update the api

* chore(fcmdata): update the api

* chore(firebase): update the api

* chore(firebasedatabase): update the api

* chore(firebasedynamiclinks): update the api

* chore(firebasehosting): update the api

* chore(firestore): update the api

* chore(fitness): update the api

* chore(games): update the api

* chore(gamesConfiguration): update the api

* chore(gamesManagement): update the api

* chore(gameservices): update the api

* feat(gkehub): update the api

#### gkehub:v1

The following keys were added:
- schemas.ResourceOptions.properties.k8sVersion.type (Total Keys: 1)

#### gkehub:v1alpha

The following keys were added:
- schemas.AnthosObservabilityMembershipSpec (Total Keys: 4)
- schemas.MembershipFeatureSpec.properties.anthosobservability.$ref (Total Keys: 1)
- schemas.ResourceOptions.properties.k8sVersion.type (Total Keys: 1)

#### gkehub:v1alpha2

The following keys were added:
- schemas.ResourceOptions.properties.k8sVersion.type (Total Keys: 1)

#### gkehub:v1beta1

The following keys were added:
- schemas.ResourceOptions.properties.k8sVersion.type (Total Keys: 1)

* chore(gmail): update the api

* chore(gmailpostmastertools): update the api

* chore(groupsmigration): update the api

* chore(groupssettings): update the api

* chore(homegraph): update the api

* chore(iam): update the api

* chore(iamcredentials): update the api

* chore(iap): update the api

* chore(ideahub): update the api

* chore(indexing): update the api

* chore(keep): update the api

* chore(kgsearch): update the api

* chore(libraryagent): update the api

* chore(licensing): update the api

* chore(localservices): update the api

* chore(logging): update the api

* chore(metastore): update the api

* chore(monitoring): update the api

* chore(mybusinessaccountmanagement): update the api

* chore(mybusinessbusinessinformation): update the api

* chore(mybusinesslodging): update the api

* chore(mybusinessnotifications): update the api

* chore(mybusinessplaceactions): update the api

* chore(mybusinessverifications): update the api

* feat(networkservices): update the api

#### networkservices:v1beta1

The following keys were added:
- resources.projects.resources.locations.resources.serviceBindings.methods.getIamPolicy (Total Keys: 14)
- resources.projects.resources.locations.resources.serviceBindings.methods.setIamPolicy (Total Keys: 12)
- resources.projects.resources.locations.resources.serviceBindings.methods.testIamPermissions (Total Keys: 12)

* feat(ondemandscanning): update the api

#### ondemandscanning:v1

The following keys were added:
- schemas.CVSS (Total Keys: 17)
- schemas.VulnerabilityOccurrence.properties.cvssv3.$ref (Total Keys: 1)

#### ondemandscanning:v1beta1

The following keys were added:
- schemas.CVSS (Total Keys: 17)
- schemas.VulnerabilityOccurrence.properties.cvssv3.$ref (Total Keys: 1)

* chore(orgpolicy): update the api

* feat(osconfig): update the api

#### osconfig:v1

The following keys were added:
- resources.projects.resources.patchDeployments.methods.pause (Total Keys: 12)
- resources.projects.resources.patchDeployments.methods.resume (Total Keys: 12)
- schemas.PatchDeployment.properties.state (Total Keys: 2)
- schemas.PausePatchDeploymentRequest (Total Keys: 2)
- schemas.ResumePatchDeploymentRequest (Total Keys: 2)

#### osconfig:v1beta

The following keys were added:
- resources.projects.resources.patchDeployments.methods.pause (Total Keys: 12)
- resources.projects.resources.patchDeployments.methods.resume (Total Keys: 12)
- schemas.PatchDeployment.properties.state (Total Keys: 2)
- schemas.PausePatchDeploymentRequest (Total Keys: 2)
- schemas.ResumePatchDeploymentRequest (Total Keys: 2)

* feat(oslogin): update the api

#### oslogin:v1

The following keys were deleted:
- resources.users.resources.sshPublicKey.methods.create (Total Keys: 12)

The following keys were added:
- resources.users.resources.sshPublicKeys.methods.create (Total Keys: 12)

#### oslogin:v1alpha

The following keys were deleted:
- resources.users.resources.sshPublicKey.methods.create (Total Keys: 12)

The following keys were added:
- resources.users.resources.sshPublicKeys.methods.create (Total Keys: 12)

#### oslogin:v1beta

The following keys were deleted:
- resources.users.resources.sshPublicKey.methods.create (Total Keys: 12)

The following keys were added:
- resources.users.resources.sshPublicKeys.methods.create (Total Keys: 12)

* chore(pagespeedonline): update the api

* chore(paymentsresellersubscription): update the api

* chore(people): update the api

* chore(playcustomapp): update the api

* chore(policyanalyzer): update the api

* chore(policysimulator): update the api

* chore(policytroubleshooter): update the api

* chore(prod_tt_sasportal): update the api

* feat(pubsub): update the api

#### pubsub:v1

The following keys were added:
- schemas.Subscription.properties.state (Total Keys: 2)

* chore(pubsublite): update the api

* chore(realtimebidding): update the api

* chore(recaptchaenterprise): update the api

* chore(recommendationengine): update the api

* chore(recommender): update the api

* feat(redis): update the api

#### redis:v1

The following keys were added:
- schemas.Cluster (Total Keys: 39)
- schemas.Endpoint (Total Keys: 7)
- schemas.PrivateServiceConnect (Total Keys: 5)

#### redis:v1beta1

The following keys were added:
- schemas.Cluster (Total Keys: 39)
- schemas.Endpoint (Total Keys: 7)
- schemas.PrivateServiceConnect (Total Keys: 5)

* chore(reseller): update the api

* chore(resourcesettings): update the api

* chore(retail): update the api

* chore(run): update the api

* chore(runtimeconfig): update the api

* chore(safebrowsing): update the api

* chore(script): update the api

* chore(searchconsole): update the api

* feat(securitycenter): update the api

#### securitycenter:v1

The following keys were added:
- schemas.Access (Total Keys: 8)
- schemas.Finding.properties.access.$ref (Total Keys: 1)
- schemas.Finding.properties.mitreAttack.$ref (Total Keys: 1)
- schemas.Geolocation (Total Keys: 3)
- schemas.GoogleCloudSecuritycenterV1BulkMuteFindingsResponse (Total Keys: 2)
- schemas.MitreAttack (Total Keys: 10)

#### securitycenter:v1beta1

The following keys were added:
- schemas.Access (Total Keys: 8)
- schemas.Finding.properties.access.$ref (Total Keys: 1)
- schemas.Finding.properties.mitreAttack.$ref (Total Keys: 1)
- schemas.Geolocation (Total Keys: 3)
- schemas.GoogleCloudSecuritycenterV1BulkMuteFindingsResponse (Total Keys: 2)
- schemas.MitreAttack (Total Keys: 10)

#### securitycenter:v1beta2

The following keys were added:
- schemas.Access (Total Keys: 8)
- schemas.Finding.properties.access.$ref (Total Keys: 1)
- schemas.Finding.properties.mitreAttack.$ref (Total Keys: 1)
- schemas.Geolocation (Total Keys: 3)
- schemas.GoogleCloudSecuritycenterV1BulkMuteFindingsResponse (Total Keys: 2)
- schemas.MitreAttack (Total Keys: 10)

* chore(serviceconsumermanagement): update the api

* chore(servicedirectory): update the api

* chore(servicemanagement): update the api

* chore(servicenetworking): update the api

* chore(serviceusage): update the api

* chore(sheets): update the api

* chore(smartdevicemanagement): update the api

* chore(sourcerepo): update the api

* chore(speech): update the api

* chore(sqladmin): update the api

* chore(storage): update the api

* feat(storagetransfer): update the api

#### storagetransfer:v1

The following keys were added:
- schemas.MetadataOptions (Total Keys: 6)
- schemas.TransferOptions.properties.metadataOptions.$ref (Total Keys: 1)
- schemas.TransferSpec.properties.gcsIntermediateDataLocation.$ref (Total Keys: 1)

* chore(streetviewpublish): update the api

* chore(sts): update the api

* chore(tasks): update the api

* chore(testing): update the api

* chore(texttospeech): update the api

* chore(toolresults): update the api

* chore(trafficdirector): update the api

* chore(verifiedaccess): update the api

* chore(versionhistory): update the api

* feat(vmmigration): update the api

#### vmmigration:v1

The following keys were added:
- schemas.ComputeEngineTargetDefaults.properties.additionalLicenses (Total Keys: 2)
- schemas.ComputeEngineTargetDetails.properties.additionalLicenses (Total Keys: 2)

#### vmmigration:v1alpha1

The following keys were added:
- schemas.ComputeEngineTargetDefaults.properties.additionalLicenses (Total Keys: 2)
- schemas.ComputeEngineTargetDetails.properties.additionalLicenses (Total Keys: 2)

* chore(websecurityscanner): update the api

* chore(workflowexecutions): update the api

* chore(workflows): update the api

* chore(youtube): update the api

* chore(youtubeAnalytics): update the api

* chore(youtubereporting): update the api

* chore(docs): Add new discovery artifacts and reference documents

Co-authored-by: Yoshi Automation <yoshi-automation@google.com>